From e77ecd948f023debef8596cc152885ca6fca408c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 8 Apr 2013 23:48:34 +0200 Subject: [PATCH] Manage extra model from model data for ir.action.* ir.action.* create ir.action record on the fly which contains translatable field. So they must inherit the xml id to be seen as module translation. issue3123 review768002 --- trytond/ir/translation.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/trytond/ir/translation.py b/trytond/ir/translation.py index b3c8c11360..3cfbc20e52 100644 --- a/trytond/ir/translation.py +++ b/trytond/ir/translation.py @@ -509,6 +509,17 @@ class Translation(ModelSQL, ModelView): vals['src_md5'] = cls.get_src_md5(vals.get('src')) return super(Translation, cls).write(translations, vals) + @classmethod + def extra_model_data(cls, model_data): + "Yield extra model linked to the model data" + if model_data.model in ( + 'ir.action.report', + 'ir.action.act_window', + 'ir.action.wizard', + 'ir.action.url', + ): + yield 'ir.action' + @classmethod def translation_import(cls, lang, module, po_path): pool = Pool() @@ -520,6 +531,9 @@ class Translation(ModelSQL, ModelView): for model_data in models_data: fs_id2model_data.setdefault(model_data.model, {}) fs_id2model_data[model_data.model][model_data.fs_id] = model_data + for extra_model in cls.extra_model_data(model_data): + fs_id2model_data.setdefault(extra_model, {}) + fs_id2model_data[extra_model][model_data.fs_id] = model_data translations = set() to_create = [] @@ -629,6 +643,9 @@ class Translation(ModelSQL, ModelView): for model_data in models_data: db_id2fs_id.setdefault(model_data.model, {}) db_id2fs_id[model_data.model][model_data.db_id] = model_data.fs_id + for extra_model in cls.extra_model_data(model_data): + db_id2fs_id.setdefault(extra_model, {}) + db_id2fs_id[extra_model][model_data.db_id] = model_data.fs_id pofile = TrytonPOFile(wrapwidth=78) pofile.metadata = {