server/hooksmanager.py
changeset 237 3df2e0ae2eba
parent 0 b97547f5f1fa
child 672 bfd01026ada8
equal deleted inserted replaced
236:8ab9e72dd8f1 237:3df2e0ae2eba
   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 accepts_registerer, yes_registerer
   186 from cubicweb.common.selectors import yes_selector
   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):
   191         cls = super(autoid, mcs).__new__(mcs, name, bases, classdict)
   191         cls = super(autoid, mcs).__new__(mcs, name, bases, classdict)
   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__ = accepts_registerer
   199     __selectors__ = (yes_selector,)
   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
   204     
   204