diff options
| author | P. Christeas <p_christ@hol.gr> | 2009-07-09 21:12:53 +0300 |
|---|---|---|
| committer | P. Christeas <p_christ@hol.gr> | 2009-07-09 21:12:53 +0300 |
| commit | 2d64ce69d07a55f827548e43cfcc73cd459dc39a (patch) | |
| tree | b217b2afe155395280d27a4c6cc0c43c89396c3b /bin/addons/__init__.py | |
| parent | cb5e80507f5a8330ed4e0f2526343b97f8d506e6 (diff) | |
| parent | a2db1c09ba3a279a8d791c8914a19d2f0dbb2c18 (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__.py | 35 |
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 |
