summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--askbot/models/__init__.py3
-rw-r--r--askbot/search/haystack/__init__.py31
-rw-r--r--askbot/search_indexes.py4
-rw-r--r--askbot/startup_procedures.py6
4 files changed, 23 insertions, 21 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py
index 7f27e130..325f06d6 100644
--- a/askbot/models/__init__.py
+++ b/askbot/models/__init__.py
@@ -70,9 +70,6 @@ from askbot import mail
from django import VERSION
-if django_settings.ENABLE_HAYSTACK_SEARCH:
- from askbot.search import haystack as askbot_haystack
-
#stores the 1.X version not the security release numbers
DJANGO_VERSION = VERSION[:2]
diff --git a/askbot/search/haystack/__init__.py b/askbot/search/haystack/__init__.py
index 1852d30c..e4563fa2 100644
--- a/askbot/search/haystack/__init__.py
+++ b/askbot/search/haystack/__init__.py
@@ -1,40 +1,45 @@
from django.conf import settings
from django.utils.translation import get_language
-from haystack import indexes, site
+from haystack import indexes
from haystack.query import SearchQuerySet
from askbot.models import Post, Thread, User
-class ThreadIndex(indexes.SearchIndex):
+class ThreadIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField()
tags = indexes.MultiValueField()
- def index_queryset(self):
- return Thread.objects.filter(posts__deleted=False)
+ def get_model(self):
+ return Thread
+
+ def index_queryset(self, using=None):
+ return self.get_model().objects.filter(posts__deleted=False)
def prepare_tags(self, obj):
return [tag.name for tag in obj.tags.all()]
-class PostIndex(indexes.SearchIndex):
+class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
post_text = indexes.CharField(model_attr='text')
author = indexes.CharField()
thread_id = indexes.IntegerField(model_attr='thread__pk')
- def index_queryset(self):
- return Post.objects.filter(deleted=False)
+ def get_model(self):
+ return Post
+
+ def index_queryset(self, using=None):
+ return self.get_model().objects.filter(deleted=False)
-class UserIndex(indexes.SearchIndex):
+class UserIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
- def index_queryset(self):
- return User.objects.all()
+ def get_model(self):
+ return User
-site.register(Thread, ThreadIndex)
-site.register(Post, PostIndex)
-site.register(User, UserIndex)
+ def index_queryset(self, using=None):
+ return self.get_model().objects.all()
class AskbotSearchQuerySet(SearchQuerySet):
diff --git a/askbot/search_indexes.py b/askbot/search_indexes.py
new file mode 100644
index 00000000..a5b9c253
--- /dev/null
+++ b/askbot/search_indexes.py
@@ -0,0 +1,4 @@
+from django.conf import settings
+
+if getattr(settings, 'ENABLE_HAYSTACK_SEARCH'):
+ from askbot.search.haystack import *
diff --git a/askbot/startup_procedures.py b/askbot/startup_procedures.py
index a9c58cb5..8f4ea2ac 100644
--- a/askbot/startup_procedures.py
+++ b/askbot/startup_procedures.py
@@ -925,7 +925,7 @@ def run_startup_tests():
test_compressor()
test_custom_user_profile_tab()
test_group_messaging()
- test_haystack()
+ #test_haystack()
test_jinja2()
test_longerusername()
test_new_skins()
@@ -971,10 +971,6 @@ def run_startup_tests():
'value': True,
'message': 'Please add: RECAPTCHA_USE_SSL = True'
},
- 'HAYSTACK_SITECONF': {
- 'value': 'askbot.search.haystack',
- 'message': 'Please add: HAYSTACK_SITECONF = "askbot.search.haystack"'
- }
})
settings_tester.run()
if 'manage.py test' in ' '.join(sys.argv):