summaryrefslogtreecommitdiff
path: root/openerp/modules
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2014-04-23 14:38:08 +0200
committerFabien Meghazi <fme@openerp.com>2014-04-23 14:38:08 +0200
commit8370d3f60e83f94cc158bdfd75fa8e683f7d5beb (patch)
tree2837c8f14309b59690f816d3a7dbf8718b0cae77 /openerp/modules
parentf4a37244cac024c8af907f7ead1fae73a2985bdf (diff)
parent700763f2da05ca70a5ff0342a7e7244c2545a9c7 (diff)
[MERGE] upstream
bzr revid: fme@openerp.com-20140423123808-q58dtl8a0bb2ymlf
Diffstat (limited to 'openerp/modules')
-rw-r--r--openerp/modules/loading.py8
-rw-r--r--openerp/modules/registry.py9
2 files changed, 11 insertions, 6 deletions
diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py
index 5635e42e780..2b507acc0bb 100644
--- a/openerp/modules/loading.py
+++ b/openerp/modules/loading.py
@@ -3,7 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
-# Copyright (C) 2010-2013 OpenERP s.a. (<http://openerp.com>).
+# Copyright (C) 2010-2014 OpenERP s.a. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -153,7 +153,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
loaded_modules.append(package.name)
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
init_module_models(cr, package.name, models)
- registry._init_modules.add(package.name)
status['progress'] = float(index) / len(graph)
# Can't put this line out of the loop: ir.module.module will be
@@ -182,6 +181,10 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
migrations.migrate_module(package, 'post')
+ registry._init_modules.add(package.name)
+ # validate all the views at a whole
+ registry['ir.ui.view']._validate_module_views(cr, SUPERUSER_ID, module_name)
+
if has_demo:
# launch tests only in demo mode, allowing tests to use demo data.
if tools.config.options['test_enable']:
@@ -207,6 +210,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
if hasattr(package, kind):
delattr(package, kind)
+ registry._init_modules.add(package.name)
cr.commit()
# The query won't be valid for models created later (i.e. custom model
diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py
index ef6aaf19d5a..eb591c53521 100644
--- a/openerp/modules/registry.py
+++ b/openerp/modules/registry.py
@@ -199,7 +199,7 @@ class Registry(Mapping):
def leave_test_mode(self):
""" Leave the test mode. """
assert self.test_cr is not None
- self.test_cr.close(force=True) # close the cursor for real
+ self.test_cr.force_close()
self.test_cr = None
RegistryManager.leave_test_mode()
@@ -207,13 +207,14 @@ class Registry(Mapping):
""" Return a new cursor for the database. The cursor itself may be used
as a context manager to commit/rollback and close automatically.
"""
- if self.test_cr is not None:
+ cr = self.test_cr
+ if cr is not None:
# While in test mode, we use one special cursor across requests. The
# test cursor uses a reentrant lock to serialize accesses. The lock
# is granted here by cursor(), and automatically released by the
# cursor itself in its method close().
- self.test_cr.acquire()
- return self.test_cr
+ cr.acquire()
+ return cr
return self._db.cursor()
class DummyRLock(object):