summaryrefslogtreecommitdiffstats
path: root/askbot/search
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-06-20 15:07:53 -0600
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-06-20 15:07:53 -0600
commitd237df28f59bf7753e1ab370a7e5bd4628add81d (patch)
treeeb1df3ad34ab6889d441bdeb89d8f1ed45cffeaa /askbot/search
parentea4b1eb15de0d382a99ebcfe70e3c11ac83d49e4 (diff)
downloadaskbot-d237df28f59bf7753e1ab370a7e5bd4628add81d.tar.gz
askbot-d237df28f59bf7753e1ab370a7e5bd4628add81d.tar.bz2
askbot-d237df28f59bf7753e1ab370a7e5bd4628add81d.zip
added haystack user index
Diffstat (limited to 'askbot/search')
-rw-r--r--askbot/search/haystack/__init__.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/askbot/search/haystack/__init__.py b/askbot/search/haystack/__init__.py
index 62965645..ad48fad5 100644
--- a/askbot/search/haystack/__init__.py
+++ b/askbot/search/haystack/__init__.py
@@ -4,7 +4,7 @@ try:
except ImportError:
pass
-from askbot.models import Post, Thread, Tag, User
+from askbot.models import Post, Thread, User
class ThreadIndex(indexes.SearchIndex):
text = indexes.CharField(document=True, use_template=True)
@@ -28,18 +28,30 @@ class PostIndex(indexes.SearchIndex):
def index_queryset(self):
return Post.objects.filter(deleted=False)
+class UserIndex(indexes.SearchIndex):
+ text = indexes.CharField(document=True, use_template=True)
+
+ def index_queryset(self):
+ return User.objects.all()
+
site.register(Post, PostIndex)
site.register(Thread, ThreadIndex)
+site.register(User, UserIndex)
class AskbotSearchQuerySet(SearchQuerySet):
- #def get_django_queryset(self, model_klass=Thread):
- def get_django_queryset(self):
+ def get_django_queryset(self, model_klass=Thread):
+ '''dirty hack because models() method from the
+ SearchQuerySet does not work </3'''
id_list = []
for r in self:
- if getattr(r, 'thread_id'):
- id_list.append(r.thread_id)
- else:
+ if r.model_name in ['thread','post'] \
+ and model_klass._meta.object_name.lower() == 'thread':
+ if getattr(r, 'thread_id'):
+ id_list.append(r.thread_id)
+ else:
+ id_list.append(r.pk)
+ elif r.model_name == model_klass._meta.object_name.lower():
id_list.append(r.pk)
- return Thread.objects.filter(id__in=set(id_list))
+ return model_klass.objects.filter(id__in=set(id_list))