# HG changeset patch # User Adrien Di Mascio # Date 1269023153 -3600 # Node ID e968e0a7776bc996cb74d43b5104635d49478c06 # Parent 04543ed0bbdc03a65f952fba926cb658bce31df3 [registry] trigger reload events on set_schema() diff -r 04543ed0bbdc -r e968e0a7776b cwvreg.py --- a/cwvreg.py Fri Mar 19 19:24:34 2010 +0100 +++ b/cwvreg.py Fri Mar 19 19:25:53 2010 +0100 @@ -312,9 +312,7 @@ """set instance'schema and load application objects""" self._set_schema(schema) # now we can load application's web objects - searchpath = self.config.vregistry_path() - self.reset(searchpath, force_reload=False) - self.register_objects(searchpath, force_reload=False) + self._reload(self.config.vregistry_path(), force_reload=False) # map lowered entity type names to their actual name self.case_insensitive_etypes = {} for eschema in self.schema.entities(): @@ -323,6 +321,14 @@ clear_cache(eschema, 'ordered_relations') clear_cache(eschema, 'meta_attributes') + def _reload(self, path, force_reload): + CW_EVENT_MANAGER.emit('before-registry-reload') + # modification detected, reset and reload + self.reset(path, force_reload) + super(CubicWebVRegistry, self).register_objects( + path, force_reload, self.config.extrapath) + CW_EVENT_MANAGER.emit('after-registry-reload') + def _set_schema(self, schema): """set instance'schema""" self.schema = schema @@ -363,12 +369,7 @@ super(CubicWebVRegistry, self).register_objects( path, force_reload, self.config.extrapath) except RegistryOutOfDate: - CW_EVENT_MANAGER.emit('before-registry-reload') - # modification detected, reset and reload - self.reset(path, force_reload) - super(CubicWebVRegistry, self).register_objects( - path, force_reload, self.config.extrapath) - CW_EVENT_MANAGER.emit('after-registry-reload') + self._reload(path, force_reload) def initialization_completed(self): """cw specific code once vreg initialization is completed: