summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-24 13:40:45 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-24 13:40:45 -0400
commit142840d6eadd1257ea5517f2c51cffb2b64c819e (patch)
treedf01599b99d4485681ad86f89a1a0933d977da67
parent39c4bb7e8192d28d146f4ba694e0f60d674f208b (diff)
downloadaskbot-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.py23
-rw-r--r--askbot/templates/main_page/tag_search.html1
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 %}"/>