Mercurial > public > sg101
view gpp/custom_search/indexes.py @ 479:32cec6cd8808
Refactor RateLimiter so that if Redis is not running, everything still runs normally (minus the rate limiting protection). My assumption that creating a Redis connection would throw an exception if Redis wasn't running was wrong. The exceptions actually occur when you issue a command. This is for #224.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 25 Sep 2011 00:49:05 +0000 |
parents | 3b30286adba5 |
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)