--- a/ckanext/example/theme/templates/forms/dataset_form.html +++ b/ckanext/example/theme/templates/forms/dataset_form.html @@ -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> + + <h3>Musical Genre</h3> <dl> <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>Composer</h3> + <dl> + <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>