diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index c03927e7515..081ecf149c0 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -18161,6 +18161,16 @@ msgstr "" msgid "Invalid composed field %(definition)s in %(use)s" msgstr "" +#. module: base +#. odoo-python +#: code:addons/base/models/ir_ui_view.py:0 +#, python-format +msgid "" +"Invalid context: %(expr)r is not a valid Python expression \n" +"\n" +" %(e)s" +msgstr "" + #. module: base #. odoo-python #: code:addons/base/models/ir_fields.py:0 diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index 9ee34896b3b..94cc8d5bbd9 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -1646,7 +1646,11 @@ actual arch. self._validate_classes(node, expr) elif attr == 'context': - vnames = get_expression_field_names(expr) - {'id'} + try: + vnames = get_expression_field_names(expr) - {'id'} + except SyntaxError as e: + message = _('Invalid context: %(expr)r is not a valid Python expression \n\n %(e)s', expr=expr, e=e) + self._raise_view_error(message) if vnames: name_manager.must_have_fields(node, vnames, f"context ({expr})") for key, val_ast in get_dict_asts(expr).items():