summaryrefslogtreecommitdiff
path: root/openerp/modules/loading.py
diff options
context:
space:
mode:
Diffstat (limited to 'openerp/modules/loading.py')
-rw-r--r--openerp/modules/loading.py26
1 files changed, 9 insertions, 17 deletions
diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py
index 33475493115..29a7e3e68e6 100644
--- a/openerp/modules/loading.py
+++ b/openerp/modules/loading.py
@@ -125,13 +125,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
migrations = openerp.modules.migration.MigrationManager(cr, graph)
_logger.info('loading %d modules...', len(graph))
- # Query manual fields for all models at once and save them on the registry
- # so the initialization code for each model does not have to do it
- # one model at a time.
- registry.fields_by_model = {}
- cr.execute('SELECT * FROM ir_model_fields WHERE state=%s', ('manual',))
- for field in cr.dictfetchall():
- registry.fields_by_model.setdefault(field['model'], []).append(field)
+ registry.clear_manual_fields()
# register, instantiate and initialize models for each modules
t0 = time.time()
@@ -161,13 +155,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
registry.setup_models(cr, partial=True)
init_module_models(cr, package.name, models)
- # Can't put this line out of the loop: ir.module.module will be
- # registered by init_module_models() above.
- modobj = registry['ir.module.module']
-
- if perform_checks:
- modobj.check(cr, SUPERUSER_ID, [module_id])
-
idref = {}
mode = 'update'
@@ -175,6 +162,13 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
mode = 'init'
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
+ # Can't put this line out of the loop: ir.module.module will be
+ # registered by init_module_models() above.
+ modobj = registry['ir.module.module']
+
+ if perform_checks:
+ modobj.check(cr, SUPERUSER_ID, [module_id])
+
if package.state=='to upgrade':
# upgrading the module information
modobj.write(cr, SUPERUSER_ID, [module_id], modobj.get_values_from_terp(package.data))
@@ -226,9 +220,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
_logger.log(25, "%s modules loaded in %.2fs, %s queries", len(graph), time.time() - t0, openerp.sql_db.sql_counter - t0_sql)
- # The query won't be valid for models created later (i.e. custom model
- # created after the registry has been loaded), so empty its result.
- registry.fields_by_model = None
+ registry.clear_manual_fields()
cr.commit()