From 4c1076420c1b29adbd9916459ecfebfab52ae9c5 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 18 Oct 2013 11:59:13 +0200 Subject: [PATCH] [IMP] ir_qweb: add a class QWebException and raise a better exception message bzr revid: chm@openerp.com-20131018095913-7ut45k9r9c1qp2wf --- openerp/addons/base/ir/ir_qweb.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_qweb.py b/openerp/addons/base/ir/ir_qweb.py index d7bfee46f40..8539bb0a2eb 100644 --- a/openerp/addons/base/ir/ir_qweb.py +++ b/openerp/addons/base/ir/ir_qweb.py @@ -44,6 +44,9 @@ BUILTINS = { 'relativedelta': lambda *a, **kw : dateutil.relativedelta.relativedelta(*a, **kw), } +class QWebException(Exception): + pass + ## We use a jinja2 sandboxed environment to render qWeb templates. #from openerp.tools.safe_eval import safe_eval as eval #from jinja2.sandbox import SandboxedEnvironment @@ -290,7 +293,12 @@ class QWeb(orm.AbstractModel): else: g_inner = [] for n in e.childNodes: - g_inner.append(self.render_node(n, v)) + try: + g_inner.append(self.render_node(n, v)) + except QWebException, err: + raise err + except Exception, err: + raise QWebException("%s\n\nNode:\n%s" % (err, e.toxml())) name = str(e.nodeName) inner = "".join(g_inner) trim = t_att.get("trim", 0)