# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1234908571 -3600 # Node ID 54b873918b48921221e65b64a915b03680a896ae # Parent 83228d379cbeb536c6fe48ac72f5a0ee2588f3d6 kill id_registerer diff -r 83228d379cbe -r 54b873918b48 common/registerers.py --- a/common/registerers.py Tue Feb 17 23:08:21 2009 +0100 +++ b/common/registerers.py Tue Feb 17 23:09:31 2009 +0100 @@ -97,28 +97,6 @@ return False -class id_registerer(priority_registerer): - """register according to the "id" attribute of the wrapped class, - refering to an entity type. - - * if the type is not Any and is not defined the application'schema, - skip the wrapped class - * if an object previously registered has the same .id attribute, - kick it out - * register - """ - def do_it_yourself(self, registered): - etype = self.vobject.id - if etype != 'Any' and not self.schema.has_entity(etype): - self.skip() - return - self.remove_equivalents(registered) - return self.vobject - - def equivalent(self, other): - return other.id == self.vobject.id - - __all__ = [cls.__name__ for cls in globals().values() if isinstance(cls, type) and issubclass(cls, registerer) and not cls is registerer] diff -r 83228d379cbe -r 54b873918b48 cwvreg.py --- a/cwvreg.py Tue Feb 17 23:08:21 2009 +0100 +++ b/cwvreg.py Tue Feb 17 23:09:31 2009 +0100 @@ -87,6 +87,8 @@ self.register(obj, **kwargs) def register(self, obj, **kwargs): + if kwargs.get('registryname', obj.__registry__) == 'etypes': + kwargs['clear'] = True super(CubicWebRegistry, self).register(obj, **kwargs) # XXX bw compat ifaces = getattr(obj, 'accepts_interfaces', None) diff -r 83228d379cbe -r 54b873918b48 entity.py --- a/entity.py Tue Feb 17 23:08:21 2009 +0100 +++ b/entity.py Tue Feb 17 23:09:31 2009 +0100 @@ -18,7 +18,6 @@ from cubicweb.selectors import yes from cubicweb.appobject import AppRsetObject from cubicweb.schema import RQLVocabularyConstraint, RQLConstraint, bw_normalize_etype -from cubicweb.common.registerers import id_registerer try: from cubicweb.common.uilib import printable_value, soup2xhtml @@ -222,8 +221,7 @@ """ __metaclass__ = metaentity __registry__ = 'etypes' - __registerer__ = id_registerer - __selectors__ = (yes,) + __select__ = yes() widgets = {} id = None e_schema = None