From d65969d5727009a9c664cb81da43426f8ab7490d Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Tue, 24 Apr 2018 10:00:51 +0000 Subject: [PATCH] [IMP] base: do not set a value for new translations When generating new translations (e.g. 'edit translations' button on a view or on a translatable field), the new generated translations have the source as translation value. Set the state to 'to_translate' as it is the default value This change requires to add a fallback in web_editor when computing translated dom When a translation has no value, there is a fallback done in the different translation method (e.g. xml_translate) but, as the node was manually created in edit_translation_mapping, the fallback was missing closes odoo/odoo#24391 --- addons/web_editor/models/ir_translation.py | 2 +- odoo/addons/base/models/ir_translation.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/web_editor/models/ir_translation.py b/addons/web_editor/models/ir_translation.py index 0dedc93cc84..45f6fa496f8 100644 --- a/addons/web_editor/models/ir_translation.py +++ b/addons/web_editor/models/ir_translation.py @@ -8,7 +8,7 @@ from odoo.tools.translate import encode, xml_translate, html_translate def edit_translation_mapping(data): - data = dict(data, model=data['name'].partition(',')[0]) + data = dict(data, model=data['name'].partition(',')[0], value=data['value'] or data['src']) return '%(value)s' % data diff --git a/odoo/addons/base/models/ir_translation.py b/odoo/addons/base/models/ir_translation.py index f2a5f9ea995..b7a01786bde 100644 --- a/odoo/addons/base/models/ir_translation.py +++ b/odoo/addons/base/models/ir_translation.py @@ -590,8 +590,8 @@ class IrTranslation(models.Model): external_ids = records.get_external_id() # if no xml_id, empty string if callable(field.translate): # insert missing translations for each term in src - query = """ INSERT INTO ir_translation (lang, type, name, res_id, src, value, module) - SELECT l.code, 'model', %(name)s, %(res_id)s, %(src)s, %(src)s, %(module)s + query = """ INSERT INTO ir_translation (lang, type, name, res_id, src, module, state) + SELECT l.code, 'model', %(name)s, %(res_id)s, %(src)s, %(module)s, 'to_translate' FROM res_lang l WHERE l.active AND l.translatable AND NOT EXISTS ( SELECT 1 FROM ir_translation @@ -610,8 +610,8 @@ class IrTranslation(models.Model): }) else: # insert missing translations for src - query = """ INSERT INTO ir_translation (lang, type, name, res_id, src, value, module) - SELECT l.code, 'model', %(name)s, %(res_id)s, %(src)s, %(src)s, %(module)s + query = """ INSERT INTO ir_translation (lang, type, name, res_id, src, module, state) + SELECT l.code, 'model', %(name)s, %(res_id)s, %(src)s, %(module)s, 'to_translate' FROM res_lang l WHERE l.active AND l.translatable AND l.code != 'en_US' AND NOT EXISTS ( SELECT 1 FROM ir_translation