From 084371b51b6fb7b72c5fb3eaa11c7d4696a4f6a6 Mon Sep 17 00:00:00 2001 From: Arnaud Pineux Date: Mon, 26 Nov 2012 12:22:05 +0100 Subject: [PATCH 1/2] [FIX] Automated action rules bzr revid: api@openerp.com-20121126112205-bf80xlf1ja5o2f7i --- openerp/modules/loading.py | 6 ++++++ openerp/osv/orm.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index bcda1690c91..f7f70c51ad5 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -413,6 +413,12 @@ def load_modules(db, force_demo=False, status=None, update_module=False): _logger.error('At least one test failed when loading the modules.') else: _logger.info('Modules loaded.') + + # STEP 7: for every model call _register_hook + for models in pool.models: + pool_mod = pool.get(models) + pool_mod._register_hook(cr) + finally: cr.close() diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 6a1f917caa1..693757345f5 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -5155,6 +5155,10 @@ class BaseModel(object): # for backward compatibility resolve_o2m_commands_to_record_dicts = resolve_2many_commands + def _register_hook(self, cr): + """ This method is called right after the registry is filled """ + pass + # keep this import here, at top it will cause dependency cycle errors import expression From 95b41b40e984e80a4228b761554fcacab39e8425 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 19 Dec 2012 14:21:38 +0100 Subject: [PATCH 2/2] [IMP] register_hook: improve a bit the code bzr revid: rco@openerp.com-20121219132138-npf12n5l5ug6ujvx --- openerp/modules/loading.py | 7 +++---- openerp/osv/orm.py | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index aa756d51a57..fb68642f137 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -426,10 +426,9 @@ def load_modules(db, force_demo=False, status=None, update_module=False): else: _logger.info('Modules loaded.') - # STEP 7: for every model call _register_hook - for models in pool.models: - pool_mod = pool.get(models) - pool_mod._register_hook(cr) + # STEP 7: call _register_hook on every model + for model in pool.models.values(): + model._register_hook(cr) finally: cr.close() diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 7fbf2d90ad0..875723b0989 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -5229,7 +5229,7 @@ class BaseModel(object): resolve_o2m_commands_to_record_dicts = resolve_2many_commands def _register_hook(self, cr): - """ This method is called right after the registry is filled """ + """ stuff to do right after the registry is built """ pass # keep this import here, at top it will cause dependency cycle errors