annotate custom_search/indexes.py @ 661:15dbe0ccda95

Prevent exceptions when viewing downloads in the admin when the file doesn't exist on the filesystem. This is usually seen in development but can also happen in production if the file is missing.
author Brian Neal <bgneal@gmail.com>
date Tue, 14 May 2013 21:02:47 -0500
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)