From 088f1e3fdce501a884d9956b251bf13e45188536 Mon Sep 17 00:00:00 2001 From: Wolfgang Taferner Date: Sun, 1 Oct 2017 10:11:37 +0200 Subject: [FIX] base: load translation files in correct dependency order Fixes #19824 opw-776928 --- odoo/addons/base/module/module.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'odoo/addons/base/module/module.py') diff --git a/odoo/addons/base/module/module.py b/odoo/addons/base/module/module.py index 4d3e859352b..fb84aef7149 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 _logger = logging.getLogger(__name__) @@ -763,7 +764,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 -- cgit v1.2.3