summaryrefslogtreecommitdiff
path: root/addons/website_theme_install/models/ir_module_module.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-02-11 16:17:02 +0100
committerChristophe Simonis <chs@odoo.com>2019-02-11 16:17:02 +0100
commit93d736e905e0d3b110c36ee93af341021eba42c4 (patch)
treef16db9c428205232e2b327aef47635a248cef346 /addons/website_theme_install/models/ir_module_module.py
parent4de183a966ed24a7a89cbd8005ae11d00b3da283 (diff)
parent6e8dff1952e0d9defac95862202588192f7d450d (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.py22
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``: