src/p4l/search/signals.py
changeset 119 ece69ca3ac24
parent 114 93b45b4f423c
child 126 a345f1a67bf1
equal deleted inserted replaced
118:d33a072d974b 119:ece69ca3ac24
     2 '''
     2 '''
     3 Created on Feb 22, 2013
     3 Created on Feb 22, 2013
     4 
     4 
     5 @author: ymh
     5 @author: ymh
     6 '''
     6 '''
       
     7 from django.conf import settings
     7 from django.db import models
     8 from django.db import models
     8 from haystack import signals
     9 from haystack import signals
       
    10 
       
    11 import p4l.models.signals
     9 
    12 
    10 
    13 
    11 class P4lSignalProcessor(signals.BaseSignalProcessor):
    14 class P4lSignalProcessor(signals.BaseSignalProcessor):
    12     
    15     
    13     def __connect_signals(self, klass):
    16     def handle_delete(self, sender, instance, **kwargs):
    14         models.signals.post_save.connect(self.handle_save, sender=klass)
    17         if getattr(settings, "REALTIME_INDEXING", True):
       
    18             signals.BaseSignalProcessor.handle_delete(self, sender, instance, **kwargs)
       
    19     
       
    20     def handle_save(self, sender, instance, **kwargs):
       
    21         if getattr(settings, "REALTIME_INDEXING", True):
       
    22             signals.BaseSignalProcessor.handle_save(self, sender, instance, **kwargs)
       
    23     
       
    24     def __connect_signals(self, klass):        
       
    25         p4l.models.signals.record_saved.connect(self.handle_save, sender=klass)
    15         models.signals.post_delete.connect(self.handle_delete, sender=klass)        
    26         models.signals.post_delete.connect(self.handle_delete, sender=klass)        
    16 
    27 
    17     def __disconnect_signals(self, klass):
    28     def __disconnect_signals(self, klass):
    18         models.signals.post_save.disconnect(self.handle_save, sender=klass)
    29         p4l.models.signals.record_saved.disconnect(self.handle_save, sender=klass)
    19         models.signals.post_delete.disconnect(self.handle_delete, sender=klass)
    30         models.signals.post_delete.disconnect(self.handle_delete, sender=klass)
    20 
    31 
    21     
    32     
    22     def setup(self):
    33     def setup(self):
    23         #put import here to avoid circular         
    34         #put import here to avoid circular