summaryrefslogtreecommitdiff
path: root/bin/addons/__init__.py
diff options
context:
space:
mode:
authorP. Christeas <p_christ@hol.gr>2009-07-09 21:12:53 +0300
committerP. Christeas <p_christ@hol.gr>2009-07-09 21:12:53 +0300
commit2d64ce69d07a55f827548e43cfcc73cd459dc39a (patch)
treeb217b2afe155395280d27a4c6cc0c43c89396c3b /bin/addons/__init__.py
parentcb5e80507f5a8330ed4e0f2526343b97f8d506e6 (diff)
parenta2db1c09ba3a279a8d791c8914a19d2f0dbb2c18 (diff)
Merge origin/master into mdv-gpl3-py26
Conflicts: bin/addons/base_setup/i18n/base_setup.pot bin/openerp-server.py bin/report/preprocess.py bin/report/report_sxw.py bin/tools/translate.py bzr revid: p_christ@hol.gr-20090709181253-fu8nxy9b3ykrrd1c
Diffstat (limited to 'bin/addons/__init__.py')
-rw-r--r--bin/addons/__init__.py35
1 files changed, 17 insertions, 18 deletions
diff --git a/bin/addons/__init__.py b/bin/addons/__init__.py
index 07fa1f91e5c..1d4b76e3ed9 100644
--- a/bin/addons/__init__.py
+++ b/bin/addons/__init__.py
@@ -74,7 +74,7 @@ class Graph(dict):
father.addChild(name)
else:
Node(name, self)
-
+
def update_from_db(self, cr):
# update the graph with values from the database (if exist)
## First, we set the default values for each package in graph
@@ -147,7 +147,7 @@ class Node(Singleton):
def __iter__(self):
return itertools.chain(iter(self.children), *map(iter, self.children))
-
+
def __str__(self):
return self._pprint()
@@ -331,7 +331,7 @@ def upgrade_graph(graph, cr, module_list, force=None):
raise
if info.get('installable', True):
packages.append((module, info.get('depends', []), info))
-
+
dependencies = dict([(p, deps) for p, deps, data in packages])
current, later = set([p for p, dep, data in packages]), set()
@@ -362,7 +362,7 @@ def upgrade_graph(graph, cr, module_list, force=None):
for package in later:
unmet_deps = filter(lambda p: p not in graph, dependencies[package])
logger.notifyChannel('init', netsvc.LOG_ERROR, 'module %s: Unmet dependencies: %s' % (package, ', '.join(unmet_deps)))
-
+
result = len(graph) - len_graph
if result != len(module_list):
logger.notifyChannel('init', netsvc.LOG_WARNING, 'Not all modules have loaded.')
@@ -523,7 +523,7 @@ class MigrationManager(object):
parsed_installed_version = parse_version(pkg.installed_version or '')
current_version = parse_version(convert_version(pkg.data.get('version', '0')))
-
+
versions = _get_migration_versions(pkg)
for version in versions:
@@ -592,13 +592,12 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, **kwargs):
if hasattr(package, 'init') or hasattr(package, 'update') or package.state in ('to install', 'to upgrade'):
init_module_objects(cr, package.name, modules)
cr.commit()
-
+
for package in graph:
status['progress'] = (float(statusi)+0.1) / len(graph)
m = package.name
mid = package.id
-
if modobj is None:
modobj = pool.get('ir.module.module')
@@ -607,7 +606,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, **kwargs):
idref = {}
status['progress'] = (float(statusi)+0.4) / len(graph)
-
+
mode = 'update'
if hasattr(package, 'init') or package.state == 'to install':
mode = 'init'
@@ -645,7 +644,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, **kwargs):
package_todo.append(package.name)
migrations.migrate_module(package, 'post')
-
+
if modobj:
ver = release.major_version + '.' + package.data.get('version', '1.0')
# Set new modules and dependencies
@@ -654,21 +653,21 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, **kwargs):
# Update translations for all installed languages
modobj.update_translations(cr, 1, [mid], None)
cr.commit()
-
+
package.state = 'installed'
for kind in ('init', 'demo', 'update'):
if hasattr(package, kind):
delattr(package, kind)
statusi += 1
-
+
cr.execute('select model from ir_model where state=%s', ('manual',))
for model in cr.dictfetchall():
pool.get('ir.model').instanciate(cr, 1, model['model'], {})
pool.get('ir.model.data')._process_end(cr, 1, package_todo)
cr.commit()
-
+
return has_updates
def load_modules(db, force_demo=False, status=None, update_module=False):
@@ -685,10 +684,10 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
# NOTE: Try to also load the modules that have been marked as uninstallable previously...
STATES_TO_LOAD = ['installed', 'to upgrade', 'uninstallable']
graph = create_graph(cr, ['base'], force)
- has_updates = False
- if update_module:
- has_updates = load_module_graph(cr, graph, status, perform_checks=False, report=report)
+ has_updates = load_module_graph(cr, graph, status, perform_checks=(not update_module), report=report)
+
+ if update_module:
modobj = pool.get('ir.module.module')
logger.notifyChannel('init', netsvc.LOG_INFO, 'updating modules list')
if ('base' in tools.config['init']) or ('base' in tools.config['update']):
@@ -707,9 +706,9 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
modobj.button_upgrade(cr, 1, ids)
cr.execute("update ir_module_module set state=%s where name=%s", ('installed', 'base'))
-
+
STATES_TO_LOAD += ['to install']
-
+
loop_guardrail = 0
while True:
loop_guardrail += 1
@@ -725,7 +724,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False):
if new_modules_in_graph == 0:
# nothing to load
break
-
+
logger.notifyChannel('init', netsvc.LOG_DEBUG, 'Updating graph with %d more modules' % (len(module_list)))
r = load_module_graph(cr, graph, status, report=report)
has_updates = has_updates or r