diff options
author | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2012-06-20 15:07:53 -0600 |
---|---|---|
committer | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2012-06-20 15:07:53 -0600 |
commit | d237df28f59bf7753e1ab370a7e5bd4628add81d (patch) | |
tree | eb1df3ad34ab6889d441bdeb89d8f1ed45cffeaa /askbot/search | |
parent | ea4b1eb15de0d382a99ebcfe70e3c11ac83d49e4 (diff) | |
download | askbot-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__.py | 26 |
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)) |