diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index 7c9137a7e96..b56b41bee7f 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -18238,6 +18238,12 @@ msgstr "" msgid "Invalid 'group by' parameter" msgstr "" +#. module: base +#: code:addons/template_inheritance.py:0 +#, python-format +msgid "Invalid Expression while parsing xpath %r" +msgstr "" + #. module: base #: code:addons/base/models/ir_default.py:0 #, python-format diff --git a/odoo/tools/template_inheritance.py b/odoo/tools/template_inheritance.py index 7d7b7a49a82..ac1aba0f2f8 100644 --- a/odoo/tools/template_inheritance.py +++ b/odoo/tools/template_inheritance.py @@ -8,6 +8,7 @@ import re from odoo.tools.translate import _ from odoo.tools import SKIPPED_ELEMENT_TYPES, html_escape +from odoo.exceptions import ValidationError _logger = logging.getLogger(__name__) RSTRIP_REGEXP = re.compile(r'\n[ \t]*$') @@ -74,9 +75,8 @@ def locate_node(arch, spec): expr = spec.get('expr') try: xPath = etree.ETXPath(expr) - except etree.XPathSyntaxError: - _logger.error("XPathSyntaxError while parsing xpath %r", expr) - raise + except etree.XPathSyntaxError as e: + raise ValidationError(_("Invalid Expression while parsing xpath %r", expr)) from e nodes = xPath(arch) return nodes[0] if nodes else None elif spec.tag == 'field':