common/registerers.py
branchtls-sprint
changeset 631 99f5852f8604
parent 0 b97547f5f1fa
child 664 04154a2b238d
equal deleted inserted replaced
630:66ff0b2f7d03 631:99f5852f8604
     3 
     3 
     4 A registerer is responsible to tell if an object should be registered according
     4 A registerer is responsible to tell if an object should be registered according
     5 to the application's schema or to already registered object
     5 to the application's schema or to already registered object
     6 
     6 
     7 :organization: Logilab
     7 :organization: Logilab
     8 :copyright: 2006-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     8 :copyright: 2006-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     9 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     9 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
    10 """
    10 """
    11 __docformat__ = "restructuredtext en"
    11 __docformat__ = "restructuredtext en"
    12 
    12 
    13 from cubicweb.vregistry import registerer
    13 from cubicweb.vregistry import registerer
    82     def do_it_yourself(self, registered):
    82     def do_it_yourself(self, registered):
    83         # if object is accepting interface, we have register it now and
    83         # if object is accepting interface, we have register it now and
    84         # remove it latter if no object is implementing accepted interfaces
    84         # remove it latter if no object is implementing accepted interfaces
    85         if _accepts_interfaces(self.vobject):
    85         if _accepts_interfaces(self.vobject):
    86             return self.vobject
    86             return self.vobject
    87         if not 'Any' in self.vobject.accepts:
    87 # XXX no more .accepts attribute    
    88             for ertype in self.vobject.accepts:
    88 #         if not 'Any' in self.vobject.accepts:
    89                 if ertype in self.schema:
    89 #             for ertype in self.vobject.accepts:
    90                     break
    90 #                 if ertype in self.schema:
    91             else:
    91 #                     break
    92                 self.skip()
    92 #             else:
    93                 return None
    93 #                 self.skip()
       
    94 #                 return None
    94         for required in getattr(self.vobject, 'requires', ()):
    95         for required in getattr(self.vobject, 'requires', ()):
    95             if required not in self.schema:
    96             if required not in self.schema:
    96                 self.skip()
    97                 self.skip()
    97                 return
    98                 return
    98         self.remove_equivalents(registered)
    99         self.remove_equivalents(registered)