--- a/ckanext/example/theme/templates/forms/dataset_form.html +++ b/ckanext/example/theme/templates/forms/dataset_form.html @@ -41,7 +41,7 @@ <dt class="name-label"><label class="field_req" for="name">Url</label></dt> <dd class="name-field"> - <span class="js-url-text url-text">${url(controller='package', action='index')+'/'}<span class="js-url-viewmode js-url-suffix"> </span><a href="#" style="display: none;" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span> + <span class="js-url-text url-text">${h.url(controller='package', action='index')+'/'}<span class="js-url-viewmode js-url-suffix"> </span><a href="#" style="display: none;" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span> <input style="display: none;" id="name" maxlength="100" name="name" type="text" class="url-input js-url-editmode js-url-input" value="${data.get('name', '')}" /> <p class="js-url-is-valid"> </p> </dd> @@ -137,22 +137,45 @@ <dt class="tags-label"><label class="field_opt" for="tags">Tags</label></dt> <dd class="tags-field"> <input class="long autocomplete-tag" id="tag_string" name="tag_string" size="60" type="text" - value="${data.get('tag_string') or ', '.join([tag['name'] for tag in data.get('tags', [])])}" /> + value="${data.get('tag_string') or ', '.join([tag['name'] for tag in data.get('tags', []) if not tag.get('vocabulary_id')])}" /> </dd> <dd class="tags-instructions instructions basic" i18n:msg="">Comma-separated terms that may link this dataset to similar ones. For more information on conventions, see <a href="http://wiki.okfn.org/ckan/doc/faq#TagConventions">this wiki page</a>.</dd> <dd class="tags-instructions hints">e.g. pollution, rivers, water quality</dd> <dd class="tags-instructions field_error" py:if="errors.get('tag_string', '')">${errors.get('tag_string', '')}</dd> </dl> - <h3>Tags with Vocabulary</h3> - <dl> + + <h3 py:if="c.genre_tags">Musical Genre</h3> + <dl py:if="c.genre_tags"> <dt class="tags-label"><label class="field_opt" for="tags_vocab">Tags</label></dt> <dd class="tags-field"> - <input class="long autocomplete-tag" id="vocab_tag_string" name="vocab_tag_string" size="60" type="text" - value="${data.get('vocab_tag_string') or ', '.join([tag['name'] for tag in data.get('vocab_tags', [])])}" /> - </dd> - <dd class="tags-instructions instructions basic" i18n:msg="">Similar to standard CKAN tags, but these use a fixed vocabulary.</dd> - <dd class="tags-instructions field_error" py:if="errors.get('vocab_tag_string', '')">${errors.get('vocab_tag_string', '')}</dd> - </dl> + <select id="genre_tags" class="chzn-select" name="genre_tags" size="60" multiple="multiple"> + <py:for each="tag in c.genre_tags"> + <py:choose test=""> + <option py:when="tag in data.get('genre_tags_selected', [])" selected="selected" value="${tag}">${tag}</option> + <option py:otherwise="" value="${tag}">${tag}</option> + </py:choose> + </py:for> + </select> + </dd> + <dd class="tags-instructions field_error" py:if="errors.get('genre_tag_string', '')">${errors.get('genre_tag_string', '')}</dd> + </dl> + + <h3 py:if="c.composer_tags">Composer</h3> + <dl py:if="c.composer_tags"> + <dt class="tags-label"><label class="field_opt" for="tags_vocab">Tags</label></dt> + <dd class="tags-field"> + <select id="composer_tags" class="chzn-select" name="composer_tags" size="60" multiple="multiple"> + <py:for each="tag in c.composer_tags"> + <py:choose test=""> + <option py:when="tag in data.get('composer_tags_selected', [])" selected="selected" value="${tag}">${tag}</option> + <option py:otherwise="" value="${tag}">${tag}</option> + </py:choose> + </py:for> + </select> + </dd> + <dd class="tags-instructions field_error" py:if="errors.get('composer_tag_string', '')">${errors.get('composer_tag_string', '')}</dd> + </dl> + </fieldset> <fieldset id='further-information'> <dl>