Ticket #1453 (closed enhancement: fixed)
Flexible tag names
Reported by: | icmurray | Owned by: | icmurray |
---|---|---|---|
Priority: | major | Milestone: | ckan-sprint-2011-12-05 |
Component: | ckan | Keywords: | tags tag |
Cc: | dread | Repository: | ckan |
Theme: | none |
Description (last modified by icmurray) (diff)
Allowing more flexible tag names:
- allowing spaces
- allow capital letters (search is case in-sensitive)
- allow all punctuation except for commas and double-quotes '"'
- allow unicode
- commas delimit tag names in the package create/edit form
Effects:
- package creation/edit form.
- /tag/{tagname} uri
- search action
- api controller (search/package-create/edit)
- web controller (search/package-create/edit)
- search api documentation
- autocomplete for tag names
Change History
comment:3 Changed 2 years ago by icmurray
Added the restriction of not allowing the double quote character, '"', as well as commas as this simplifies any use of quoting multiple words to mean a single tag name.
For example, this simplifies the use of quotes in identifying tags in internal markdown links:
tag:"multiple word tag name"
A possible solution is to allowing escaping, such as:
tag:"something about \"Ian\""
But I think the compromise is a better solution than allowing the escaping as it's simpler, and this may crop up elsewhere.
comment:4 Changed 2 years ago by icmurray
- Status changed from new to accepted
The allowable characters in a tagname has changed to "unicode alphanmeric plus simple punctuation". This means:
- alphanumeric (inc. foreign characters)
- [ .-_]
The completed feature is in the feature-1453-flexible-tag-names branch.
Awaiting a code review.
comment:6 Changed 2 years ago by dread
Code review:
- basically - really excellent code and very thorough :-)
- links should have %20 rather than spaces (tests/misc/test_format_text.py:61)
- also check unicode chars encoding in urls (tests/misc/test_format_text.py:115)
- also check searching for the tag with this encoding (ckan/tests/functional/api/model/test_tag.py:35)
- we follow the PEP8 coding style which I interpret to mean not having blank lines after a function definition. But whichever, we're not consistent from file to file, but we should be within each file. e.g. ckan/tests/forms/test_package.py:12.
- moo package problem - need to ensure test works on its own and when run as part of the suite, so independent of whether moo exists. tests/functional/api/test_action.py:
- best to make tag search case insensitive - see ckan/tests/functional/api/model
- It's worth keeping the old test in addition to your modified one - because query for just {q:} will return both packages too. ckan/tests/functional/api/test_package_search.py:203
- Let's add an example of tag search with quotes in /doc/api.rst:337
- Please put imports at the top of the file, unless there's a good reason ckan/tests/functional/api/test_package_search.py:296
- Can you not the old test any more? It seems sufficiently to the test you changed it to, so can we include both? ckan/tests/functional/api/test_package_search.py:295
comment:7 Changed 2 years ago by icmurray
- Milestone changed from current-ckan-sprint-2011-11-21 to ckan-sprint-2011-12-05
comment:8 Changed 2 years ago by icmurray
Updated code now in feature-1453-flexible-tag-names branch.
(Also, deleted the ian-review branch.)
comment:9 Changed 2 years ago by dread
- Status changed from accepted to closed
- Resolution set to fixed
I believe this is finished now. This was merged into master in cset:c0aaa31c4b7ded54d and headed for release 1.5.2.
comment:10 Changed 2 years ago by dread
This has gone into release 1.6.