diff --git a/addons/web_editor/models/ir_ui_view.py b/addons/web_editor/models/ir_ui_view.py index fcaca35d92a..d7429725fee 100644 --- a/addons/web_editor/models/ir_ui_view.py +++ b/addons/web_editor/models/ir_ui_view.py @@ -69,20 +69,20 @@ class IrUiView(models.Model): try: value = converter.from_html(Model, Model._fields[field], el) - except ValueError: + if value is not None: + # TODO: batch writes? + record = Model.browse(int(el.get('data-oe-id'))) + if not self.env.context.get('lang') and self.get_default_lang_code(): + record.with_context(lang=self.get_default_lang_code()).write({field: value}) + else: + record.write({field: value}) + + if callable(Model._fields[field].translate): + self._copy_custom_snippet_translations(record, field) + + except (ValueError, TypeError): raise ValidationError(_("Invalid field value for %s: %s", Model._fields[field].string, el.text_content().strip())) - if value is not None: - # TODO: batch writes? - record = Model.browse(int(el.get('data-oe-id'))) - if not self.env.context.get('lang') and self.get_default_lang_code(): - record.with_context(lang=self.get_default_lang_code()).write({field: value}) - else: - record.write({field: value}) - - if callable(Model._fields[field].translate): - self._copy_custom_snippet_translations(record, field) - def save_oe_structure(self, el): self.ensure_one()