diff forums/search_indexes.py @ 753:ad53d929281a

For issue #62, upgrade Haystack from 1.2.7 to 2.1.0.
author Brian Neal <bgneal@gmail.com>
date Fri, 03 Jan 2014 19:01:18 -0600
parents ee87ea74d46b
children cf9918328c64
line wrap: on
line diff
--- a/forums/search_indexes.py	Wed Jan 01 19:52:07 2014 -0600
+++ b/forums/search_indexes.py	Fri Jan 03 19:01:18 2014 -0600
@@ -1,60 +1,35 @@
 """Haystack search index for the weblinks application."""
-from haystack.indexes import *
-from haystack import site
-from custom_search.indexes import CondQueuedSearchIndex
+from haystack import indexes
 
 from forums.models import Forum, Topic, Post
-from forums.signals import topic_content_update, post_content_update
 
 
-class TopicIndex(CondQueuedSearchIndex):
-    text = CharField(document=True, use_template=True)
-    author = CharField(model_attr='user')
-    pub_date = DateTimeField(model_attr='creation_date')
+class TopicIndex(indexes.SearchIndex, indexes.Indexable):
+    text = indexes.CharField(document=True, use_template=True)
+    author = indexes.CharField(model_attr='user')
+    pub_date = indexes.DateTimeField(model_attr='creation_date')
 
-    def index_queryset(self):
+    def get_model(self):
+        return Topic
+
+    def index_queryset(self, using=None):
         return Topic.objects.filter(forum__in=Forum.objects.public_forum_ids())
 
     def get_updated_field(self):
         return 'update_date'
 
-    def _setup_save(self, model):
-        topic_content_update.connect(self.enqueue_save)
 
-    def _teardown_save(self, model):
-        topic_content_update.disconnect(self.enqueue_save)
+class PostIndex(indexes.SearchIndex, indexes.Indexable):
+    text = indexes.CharField(document=True, use_template=True)
+    author = indexes.CharField(model_attr='user')
+    pub_date = indexes.DateTimeField(model_attr='creation_date')
 
-    def enqueue_save(self, sender, **kwargs):
-        return self.enqueue('update', sender)
+    def get_model(self):
+        return Post
 
-    def can_index(self, instance):
-        return instance.forum.id in Forum.objects.public_forum_ids()
-
-
-class PostIndex(CondQueuedSearchIndex):
-    text = CharField(document=True, use_template=True)
-    author = CharField(model_attr='user')
-    pub_date = DateTimeField(model_attr='creation_date')
-
-    def index_queryset(self):
+    def index_queryset(self, using=None):
         return Post.objects.filter(
                 topic__forum__in=Forum.objects.public_forum_ids())
 
     def get_updated_field(self):
         return 'update_date'
-
-    def _setup_save(self, model):
-        post_content_update.connect(self.enqueue_save)
-
-    def _teardown_save(self, model):
-        post_content_update.disconnect(self.enqueue_save)
-
-    def enqueue_save(self, sender, **kwargs):
-        return self.enqueue('update', sender)
-
-    def can_index(self, instance):
-        return instance.topic.forum.id in Forum.objects.public_forum_ids()
-
-
-site.register(Topic, TopicIndex)
-site.register(Post, PostIndex)