diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index d170af6ea4d786c5ca66f3af0958b3378e34b66a..dbe6081f23b0ae207cb2234da9fdc7dbfe5bb9b8 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -16525,6 +16525,12 @@ msgstr "" msgid "No of Views" msgstr "" +#. module: base +#: code:addons/base/models/ir_actions.py:0 +#, python-format +msgid "No spaces allowed in view_mode: %r" +msgstr "" + #. module: base #: model:ir.model.fields,field_description:base.field_ir_model_data__noupdate msgid "Non Updatable" @@ -22209,6 +22215,12 @@ msgstr "" msgid "The model this field belongs to" msgstr "" +#. module: base +#: code:addons/base/models/ir_actions.py:0 +#, python-format +msgid "The modes in view_mode must not be duplicated: %s" +msgstr "" + #. module: base #: model:ir.model.constraint,message:base.constraint_res_country_name_uniq msgid "The name of the country must be unique !" diff --git a/odoo/addons/base/models/ir_actions.py b/odoo/addons/base/models/ir_actions.py index 5d207e805917375092632072cdd0a3269bc1ee1f..fb0fa446b5dcdbc40774eec1fcf06805101b449e 100644 --- a/odoo/addons/base/models/ir_actions.py +++ b/odoo/addons/base/models/ir_actions.py @@ -173,6 +173,15 @@ class IrActionsActWindow(models.Model): act.views.append((act.view_id.id, act.view_id.type)) act.views.extend([(False, mode) for mode in missing_modes]) + @api.constrains('view_mode') + def _check_view_mode(self): + for rec in self: + modes = rec.view_mode.split(',') + if len(modes) != len(set(modes)): + raise ValidationError(_('The modes in view_mode must not be duplicated: %s') % modes) + if ' ' in modes: + raise ValidationError(_('No spaces allowed in view_mode: %r') % modes) + @api.depends('res_model', 'search_view_id') def _compute_search_view(self): for act in self: