diff -r d33a072d974b -r ece69ca3ac24 src/p4l/search/signals.py --- a/src/p4l/search/signals.py Wed Sep 25 23:22:29 2013 +0200 +++ b/src/p4l/search/signals.py Thu Sep 26 15:24:41 2013 +0200 @@ -4,18 +4,29 @@ @author: ymh ''' +from django.conf import settings from django.db import models from haystack import signals +import p4l.models.signals + class P4lSignalProcessor(signals.BaseSignalProcessor): - def __connect_signals(self, klass): - models.signals.post_save.connect(self.handle_save, sender=klass) + def handle_delete(self, sender, instance, **kwargs): + if getattr(settings, "REALTIME_INDEXING", True): + signals.BaseSignalProcessor.handle_delete(self, sender, instance, **kwargs) + + def handle_save(self, sender, instance, **kwargs): + if getattr(settings, "REALTIME_INDEXING", True): + signals.BaseSignalProcessor.handle_save(self, sender, instance, **kwargs) + + def __connect_signals(self, klass): + p4l.models.signals.record_saved.connect(self.handle_save, sender=klass) models.signals.post_delete.connect(self.handle_delete, sender=klass) def __disconnect_signals(self, klass): - models.signals.post_save.disconnect(self.handle_save, sender=klass) + p4l.models.signals.record_saved.disconnect(self.handle_save, sender=klass) models.signals.post_delete.disconnect(self.handle_delete, sender=klass)