src/p4l/search/signals.py
author ymh <ymh.work@gmail.com>
Sat, 21 Sep 2013 23:49:04 +0200
changeset 114 93b45b4f423c
child 119 ece69ca3ac24
permissions -rw-r--r--
add corporate authors and small adjustments
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
114
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Feb 22, 2013
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.db import models
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from haystack import signals
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class P4lSignalProcessor(signals.BaseSignalProcessor):
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    def __connect_signals(self, klass):
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        models.signals.post_save.connect(self.handle_save, sender=klass)
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        models.signals.post_delete.connect(self.handle_delete, sender=klass)        
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    def __disconnect_signals(self, klass):
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        models.signals.post_save.disconnect(self.handle_save, sender=klass)
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        models.signals.post_delete.disconnect(self.handle_delete, sender=klass)
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    def setup(self):
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        #put import here to avoid circular         
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        from p4l.models.data import Record
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        self.__connect_signals(Record)
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    def teardown(self):
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        from p4l.models.data import Record
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        self.__disconnect_signals(Record)
93b45b4f423c add corporate authors and small adjustments
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33