Mercurial > public > sg101
annotate custom_search/indexes.py @ 628:c6292e46e617
For local testing, set wiki cookie domain to None.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 12 Nov 2012 16:40:54 -0600 |
parents | ee87ea74d46b |
children | 858ce870c854 |
rev | line source |
---|---|
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) |