615 'interface among %s)', obj, ifaces) |
615 'interface among %s)', obj, ifaces) |
616 self.unregister(obj) |
616 self.unregister(obj) |
617 # since 3.9: remove appobjects which depending on other, unexistant |
617 # since 3.9: remove appobjects which depending on other, unexistant |
618 # appobjects |
618 # appobjects |
619 for obj, (regname, regids) in self._needs_appobject.items(): |
619 for obj, (regname, regids) in self._needs_appobject.items(): |
620 registry = self[regname] |
620 try: |
|
621 registry = self[regname] |
|
622 except RegistryNotFound: |
|
623 self.debug('kicking %s (no registry %s)', obj, regname) |
|
624 self.unregister(obj) |
|
625 continue |
621 for regid in regids: |
626 for regid in regids: |
622 if registry.get(regid): |
627 if registry.get(regid): |
623 break |
628 break |
624 else: |
629 else: |
625 self.debug('kicking %s (no %s object in registry %s)', |
630 self.debug('kicking %s (no %s object in registry %s)', |
626 obj, ' or '.join(regids), registry) |
631 obj, ' or '.join(regids), regname) |
627 self.unregister(obj) |
632 self.unregister(obj) |
628 super(CubicWebVRegistry, self).initialization_completed() |
633 super(CubicWebVRegistry, self).initialization_completed() |
629 for rtag in RTAGS: |
634 for rtag in RTAGS: |
630 # don't check rtags if we don't want to cleanup_interface_sobjects |
635 # don't check rtags if we don't want to cleanup_interface_sobjects |
631 rtag.init(self.schema, check=self.config.cleanup_interface_sobjects) |
636 rtag.init(self.schema, check=self.config.cleanup_interface_sobjects) |