server/hooksmanager.py
branchtls-sprint
changeset 672 bfd01026ada8
parent 237 3df2e0ae2eba
child 692 800592b8d39b
equal deleted inserted replaced
671:4ae56cfd530d 672:bfd01026ada8
    21   before_delete_relation (session, fromeid, rtype, toeid)
    21   before_delete_relation (session, fromeid, rtype, toeid)
    22   after_delete_relation  (session, fromeid, rtype, toeid)
    22   after_delete_relation  (session, fromeid, rtype, toeid)
    23 
    23 
    24 
    24 
    25 :organization: Logilab
    25 :organization: Logilab
    26 :copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
    26 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
    27 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
    27 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
    28 """
    28 """
    29 __docformat__ = "restructuredtext en"
    29 __docformat__ = "restructuredtext en"
    30 
    30 
    31 ENTITIES_HOOKS = ('before_add_entity',    'after_add_entity', 
    31 ENTITIES_HOOKS = ('before_add_entity',    'after_add_entity', 
   180 #         self.register_hook(tidy_html_fields('before_add_entity'), 'before_add_entity', '')
   180 #         self.register_hook(tidy_html_fields('before_add_entity'), 'before_add_entity', '')
   181 #         self.register_hook(tidy_html_fields('before_update_entity'), 'before_update_entity', '')
   181 #         self.register_hook(tidy_html_fields('before_update_entity'), 'before_update_entity', '')
   182             
   182             
   183 from cubicweb.vregistry import autoselectors
   183 from cubicweb.vregistry import autoselectors
   184 from cubicweb.common.appobject import AppObject
   184 from cubicweb.common.appobject import AppObject
   185 from cubicweb.common.registerers import accepts_registerer, yes_registerer
   185 from cubicweb.common.registerers import yes_registerer
   186 from cubicweb.common.selectors import yes
   186 from cubicweb.common.selectors import yes
   187 
   187 
   188 class autoid(autoselectors):
   188 class autoid(autoselectors):
   189     """metaclass to create an unique 'id' attribute on the class using it"""
   189     """metaclass to create an unique 'id' attribute on the class using it"""
   190     def __new__(mcs, name, bases, classdict):
   190     def __new__(mcs, name, bases, classdict):
   193         return cls
   193         return cls
   194 
   194 
   195 class Hook(AppObject):
   195 class Hook(AppObject):
   196     __metaclass__ = autoid
   196     __metaclass__ = autoid
   197     __registry__ = 'hooks'
   197     __registry__ = 'hooks'
   198     __registerer__ = accepts_registerer
   198     __registerer__ = yes_registerer
   199     __selectors__ = (yes,)
   199     __selectors__ = (yes,)
   200     # set this in derivated classes
   200     # set this in derivated classes
   201     events = None
   201     events = None
   202     accepts = None
   202     accepts = None
   203     enabled = True
   203     enabled = True
   243 
   243 
   244     def call(self):
   244     def call(self):
   245         raise NotImplementedError
   245         raise NotImplementedError
   246     
   246     
   247 class SystemHook(Hook):
   247 class SystemHook(Hook):
   248     __registerer__ = yes_registerer
       
   249     accepts = ('',)
   248     accepts = ('',)
   250 
   249 
   251 from logging import getLogger
   250 from logging import getLogger
   252 from cubicweb import set_log_methods
   251 from cubicweb import set_log_methods
   253 set_log_methods(HooksManager, getLogger('cubicweb.hooksmanager'))
   252 set_log_methods(HooksManager, getLogger('cubicweb.hooksmanager'))