bgneal@222
|
1 """Haystack search index for the weblinks application."""
|
bgneal@753
|
2 from haystack import indexes
|
bgneal@222
|
3
|
bgneal@943
|
4 from custom_search.fields import MaxTermSizeCharField
|
bgneal@414
|
5 from forums.models import Forum, Topic, Post
|
bgneal@414
|
6
|
bgneal@414
|
7
|
bgneal@753
|
8 class TopicIndex(indexes.SearchIndex, indexes.Indexable):
|
bgneal@753
|
9 text = indexes.CharField(document=True, use_template=True)
|
bgneal@753
|
10 author = indexes.CharField(model_attr='user')
|
bgneal@753
|
11 pub_date = indexes.DateTimeField(model_attr='creation_date')
|
bgneal@414
|
12
|
bgneal@753
|
13 def get_model(self):
|
bgneal@753
|
14 return Topic
|
bgneal@753
|
15
|
bgneal@753
|
16 def index_queryset(self, using=None):
|
bgneal@414
|
17 return Topic.objects.filter(forum__in=Forum.objects.public_forum_ids())
|
bgneal@414
|
18
|
bgneal@414
|
19 def get_updated_field(self):
|
bgneal@414
|
20 return 'update_date'
|
bgneal@222
|
21
|
bgneal@469
|
22
|
bgneal@753
|
23 class PostIndex(indexes.SearchIndex, indexes.Indexable):
|
bgneal@943
|
24 text = MaxTermSizeCharField(document=True, use_template=True)
|
bgneal@753
|
25 author = indexes.CharField(model_attr='user')
|
bgneal@753
|
26 pub_date = indexes.DateTimeField(model_attr='creation_date')
|
bgneal@469
|
27
|
bgneal@753
|
28 def get_model(self):
|
bgneal@753
|
29 return Post
|
bgneal@470
|
30
|
bgneal@753
|
31 def index_queryset(self, using=None):
|
bgneal@222
|
32 return Post.objects.filter(
|
bgneal@414
|
33 topic__forum__in=Forum.objects.public_forum_ids())
|
bgneal@222
|
34
|
bgneal@277
|
35 def get_updated_field(self):
|
bgneal@277
|
36 return 'update_date'
|