Mercurial > public > sg101
view custom_search/indexes.py @ 752:95f4e7f352fd
For Django 1.6: contrib auth password reset confirm view signature changed.
The uidb64 parameter was previously base 36 encoded and named uidb36.
Had to update urls.py. While I was in there I decided to make the
password reset email use the {% url %} tag to be more resilient if the
url changes.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 01 Jan 2014 19:52:07 -0600 |
parents | 858ce870c854 |
children |
line wrap: on
line source
""" This module contains custom search indexes to tailor the Haystack search application to our needs. """ from queued_search.indexes import QueuedSearchIndex class CondQueuedSearchIndex(QueuedSearchIndex): """ This customized version of QueuedSearchIndex conditionally enqueues items to be indexed by calling the can_index() method. """ def can_index(self, instance): """ The default is to index all instances. Override this method to customize the behavior. This will be called on all update operations. """ return True def enqueue(self, action, instance): """ This method enqueues the instance only if the can_index() method returns True. """ if (action == 'update' and self.can_index(instance) or action == 'delete'): super(CondQueuedSearchIndex, self).enqueue(action, instance) class PublicQueuedSearchIndex(QueuedSearchIndex): """QueuedSearchIndex for models with is_public attributes.""" def enqueue(self, action, instance): """Conditionally enqueue actions as follows. For update actions: if is_public is True, enqueue the update. If is_public is False, enqueue a delete action. Delete actions are always enqueued. """ if action == 'update' and instance.is_public: super(PublicQueuedSearchIndex, self).enqueue(action, instance) elif (action == 'update' and not instance.is_public) or action == 'delete': super(PublicQueuedSearchIndex, self).enqueue('delete', instance)