bgneal@469
|
1 """
|
bgneal@469
|
2 This module contains custom search indexes to tailor the Haystack search
|
bgneal@469
|
3 application to our needs.
|
bgneal@469
|
4
|
bgneal@469
|
5 """
|
bgneal@469
|
6 from queued_search.indexes import QueuedSearchIndex
|
bgneal@469
|
7
|
bgneal@469
|
8
|
bgneal@469
|
9 class CondQueuedSearchIndex(QueuedSearchIndex):
|
bgneal@469
|
10 """
|
bgneal@469
|
11 This customized version of QueuedSearchIndex conditionally enqueues items
|
bgneal@469
|
12 to be indexed by calling the can_index() method.
|
bgneal@469
|
13
|
bgneal@469
|
14 """
|
bgneal@469
|
15 def can_index(self, instance):
|
bgneal@469
|
16 """
|
bgneal@469
|
17 The default is to index all instances. Override this method to
|
bgneal@469
|
18 customize the behavior. This will be called on all update operations.
|
bgneal@469
|
19
|
bgneal@469
|
20 """
|
bgneal@469
|
21 return True
|
bgneal@469
|
22
|
bgneal@469
|
23 def enqueue(self, action, instance):
|
bgneal@469
|
24 """
|
bgneal@469
|
25 This method enqueues the instance only if the can_index() method
|
bgneal@469
|
26 returns True.
|
bgneal@469
|
27
|
bgneal@469
|
28 """
|
bgneal@469
|
29 if (action == 'update' and self.can_index(instance) or
|
bgneal@469
|
30 action == 'delete'):
|
bgneal@469
|
31 super(CondQueuedSearchIndex, self).enqueue(action, instance)
|