diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-24 13:40:45 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-24 13:40:45 -0400 |
commit | 142840d6eadd1257ea5517f2c51cffb2b64c819e (patch) | |
tree | df01599b99d4485681ad86f89a1a0933d977da67 | |
parent | 39c4bb7e8192d28d146f4ba694e0f60d674f208b (diff) | |
download | askbot-142840d6eadd1257ea5517f2c51cffb2b64c819e.tar.gz askbot-142840d6eadd1257ea5517f2c51cffb2b64c819e.tar.bz2 askbot-142840d6eadd1257ea5517f2c51cffb2b64c819e.zip |
made tag search case insensitive when sidebar tag search input is enabled
-rw-r--r-- | askbot/models/question.py | 23 | ||||
-rw-r--r-- | askbot/templates/main_page/tag_search.html | 1 |
2 files changed, 13 insertions, 11 deletions
diff --git a/askbot/models/question.py b/askbot/models/question.py index a4b3233a..0b389bfa 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -246,16 +246,19 @@ class ThreadManager(BaseQuerySetManager): if askbot_settings.TAG_SEARCH_INPUT_ENABLED: #todo: this may be gone or disabled per option #"tag_search_box_enabled" - existing_tags = set( - Tag.objects.filter( - name__in = tags - ).values_list( - 'name', - flat = True - ) - ) - - non_existing_tags = set(tags) - existing_tags + existing_tags = set() + non_existing_tags = set() + #we're using a one-by-one tag retreival, b/c + #we want to take advantage of case-insensitive search indexes + #in postgresql, plus it is most likely that there will be + #only one or two search tags anyway + for tag in tags: + try: + tag_record = Tag.objects.get(name__iexact=tag) + existing_tags.add(tag_record.name) + except Tag.DoesNotExist: + non_existing_tags.add(tag) + meta_data['non_existing_tags'] = list(non_existing_tags) tags = existing_tags else: diff --git a/askbot/templates/main_page/tag_search.html b/askbot/templates/main_page/tag_search.html index 0d81bf4e..45f12b2f 100644 --- a/askbot/templates/main_page/tag_search.html +++ b/askbot/templates/main_page/tag_search.html @@ -1,6 +1,5 @@ <div id="tagSearch" class="box"> <h2>{% trans %}Tag search{% endtrans %}</h2> - <label for="ab-tag-search">{% trans %}Please note that tag search is case sensitive!{% endtrans %}</label> <div class="inputs"> <input id="ab-tag-search" autocomplete="off" type="text"/> <input id="ab-tag-search-add" type="submit" value="{% trans %}search{% endtrans %}"/> |