src/ldt/ldt/indexation/signals.py
author ymh <ymh.work@gmail.com>
Thu, 02 Jan 2014 17:09:42 +0100
changeset 1275 38c396f3ced8
parent 1191 b6e0b1811723
child 1276 d4f1dd0eb8bf
permissions -rw-r--r--
Add indexation to content
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Feb 22, 2013
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.db import models
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from haystack import signals
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
1275
38c396f3ced8 Add indexation to content
ymh <ymh.work@gmail.com>
parents: 1191
diff changeset
    10
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class LdtSignalProcessor(signals.BaseSignalProcessor):
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    def __connect_signals(self, klass):
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        models.signals.post_save.connect(self.handle_save, sender=klass)
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        models.signals.post_delete.connect(self.handle_delete, sender=klass)        
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    def __disconnect_signals(self, klass):
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        models.signals.post_save.disconnect(self.handle_save, sender=klass)
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        models.signals.post_delete.disconnect(self.handle_delete, sender=klass)
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    
1191
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    22
    def setup(self):
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    23
        #put import here to avoid circular 
1275
38c396f3ced8 Add indexation to content
ymh <ymh.work@gmail.com>
parents: 1191
diff changeset
    24
        from ldt.ldt_utils.models import Segment, Content
1191
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    25
        from ldt.text.models import Annotation
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    26
        
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        self.__connect_signals(Segment)
1275
38c396f3ced8 Add indexation to content
ymh <ymh.work@gmail.com>
parents: 1191
diff changeset
    28
        self.__connect_signals(Content)
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        self.__connect_signals(Annotation)
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    def teardown(self):
1275
38c396f3ced8 Add indexation to content
ymh <ymh.work@gmail.com>
parents: 1191
diff changeset
    34
        from ldt.ldt_utils.models import Segment, Content
1191
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    35
        from ldt.text.models import Annotation
b6e0b1811723 Migrate to django 1.5 :
ymh <ymh.work@gmail.com>
parents: 1117
diff changeset
    36
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        self.__disconnect_signals(Annotation)
1275
38c396f3ced8 Add indexation to content
ymh <ymh.work@gmail.com>
parents: 1191
diff changeset
    38
        self.__connect_signals(Content)
1117
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        self.__disconnect_signals(Segment)
3bab1e42acfa - update haystack
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40