diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-02-11 16:17:02 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-02-11 16:17:02 +0100 |
| commit | 93d736e905e0d3b110c36ee93af341021eba42c4 (patch) | |
| tree | f16db9c428205232e2b327aef47635a248cef346 /addons/website_theme_install/models/ir_module_module.py | |
| parent | 4de183a966ed24a7a89cbd8005ae11d00b3da283 (diff) | |
| parent | 6e8dff1952e0d9defac95862202588192f7d450d (diff) | |
[MERGE] forward port branch 12.0 up to 6e8dff1952e
Diffstat (limited to 'addons/website_theme_install/models/ir_module_module.py')
| -rw-r--r-- | addons/website_theme_install/models/ir_module_module.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/addons/website_theme_install/models/ir_module_module.py b/addons/website_theme_install/models/ir_module_module.py index 55f77590c6b..e1b7489f7c5 100644 --- a/addons/website_theme_install/models/ir_module_module.py +++ b/addons/website_theme_install/models/ir_module_module.py @@ -25,6 +25,10 @@ class IrModuleModule(models.Model): ('website.menu', 'theme.website.menu'), ('ir.attachment', 'theme.ir.attachment'), ]) + _theme_translated_fields = { + 'theme.ir.ui.view': [('theme.ir.ui.view,arch', 'ir.ui.view,arch_db')], + 'theme.website.menu': [('theme.website.menu,name', 'website.menu,name')], + } image_ids = fields.One2many('ir.attachment', 'res_id', domain=[('res_model', '=', _name), ('mimetype', '=like', 'image/%')], @@ -162,8 +166,10 @@ class IrModuleModule(models.Model): if 'active' in rec_data: rec_data.pop('active') find.update(rec_data) + self._post_copy(rec, find) else: - self.env[model_name].create(rec_data) + new_rec = self.env[model_name].create(rec_data) + self._post_copy(rec, new_rec) remaining -= rec @@ -175,6 +181,20 @@ class IrModuleModule(models.Model): self._theme_cleanup(model_name, website) @api.multi + def _post_copy(self, old_rec, new_rec): + self.ensure_one() + translated_fields = self._theme_translated_fields.get(old_rec._name, []) + for (src_field, dst_field) in translated_fields: + self._cr.execute("""INSERT INTO ir_translation (lang, src, name, res_id, state, value, type, module) + SELECT t.lang, t.src, %s, %s, t.state, t.value, t.type, t.module + FROM ir_translation t + WHERE name = %s + AND res_id = %s + ON CONFLICT DO NOTHING""", + (dst_field, new_rec.id, src_field, old_rec.id)) + + + @api.multi def _theme_load(self, website): """ For every type of model in ``self._theme_model_names``, and for every theme in ``self``: |
