diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-10-31 16:29:07 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-10-31 16:29:07 +0100 |
| commit | 8f1e2044cd9dd0e3d5ab29f7527efdb0a9c7a582 (patch) | |
| tree | b531c2fbd3a85855c6691cb707435a3db89162e3 /odoo/addons/base/module/module.py | |
| parent | c8b2f5ca9ec0bbb5af06be8f8cf93122d08c41fe (diff) | |
| parent | 810b6aa7600bad6bba4d0fc67f04ecf4975193d5 (diff) | |
[MERGE] forward port branch saas-16 up to 810b6aa7600
Diffstat (limited to 'odoo/addons/base/module/module.py')
| -rw-r--r-- | odoo/addons/base/module/module.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/odoo/addons/base/module/module.py b/odoo/addons/base/module/module.py index d28b56584e5..920929a14d2 100644 --- a/odoo/addons/base/module/module.py +++ b/odoo/addons/base/module/module.py @@ -26,6 +26,7 @@ import odoo from odoo import api, fields, models, modules, tools, _ from odoo.exceptions import AccessDenied, UserError from odoo.tools.parse_version import parse_version +from odoo.tools.misc import topological_sort from odoo.http import request _logger = logging.getLogger(__name__) @@ -844,7 +845,13 @@ class Module(models.Model): filter_lang = [lang.code for lang in langs] elif not isinstance(filter_lang, (list, tuple)): filter_lang = [filter_lang] - mod_names = [mod.name for mod in self if mod.state in ('installed', 'to install', 'to upgrade')] + + update_mods = self.filtered(lambda r: r.state in ('installed', 'to install', 'to upgrade')) + mod_dict = { + mod.name: mod.dependencies_id.mapped('name') + for mod in update_mods + } + mod_names = topological_sort(mod_dict) self.env['ir.translation'].load_module_terms(mod_names, filter_lang) @api.multi |
