# -*- coding: utf-8 -*-
'''
Created on Feb 22, 2013

@author: ymh
'''
from django.db import models
from haystack import signals


class LdtSignalProcessor(signals.BaseSignalProcessor):
    
    def __connect_signals(self, klass):
        models.signals.post_save.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)
        models.signals.post_delete.disconnect(self.handle_delete, sender=klass)

    
    def setup(self):
        #put import here to avoid circular 
        from ldt.ldt_utils.models import Segment, Content
        from ldt.text.models import Annotation
        
        self.__connect_signals(Segment)
        self.__connect_signals(Content)
        self.__connect_signals(Annotation)



    def teardown(self):
        from ldt.ldt_utils.models import Segment, Content
        from ldt.text.models import Annotation

        self.__disconnect_signals(Annotation)
        self.__disconnect_signals(Content)
        self.__disconnect_signals(Segment)
        