From bd81cfd1f22c962f24a4b39b48db04e703249a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Mon, 5 Aug 2013 15:06:05 +0200 Subject: [PATCH] [FIX] only self-close void elements bzr revid: fva@openerp.com-20130805130605-8decmjyplrstszgp --- openerp/tools/qweb.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openerp/tools/qweb.py b/openerp/tools/qweb.py index fb880ee90b6..d30fd94db11 100644 --- a/openerp/tools/qweb.py +++ b/openerp/tools/qweb.py @@ -6,6 +6,7 @@ import types import xml # FIXME use lxml import xml.dom.minidom +from sets import Set _logger = logging.getLogger(__name__) @@ -74,7 +75,8 @@ class QWebXml(object): self.node = xml.dom.Node self._t = {} self._render_tag = {} - + self._void_elements = Set(['area','base','br','col','embed','hr','img','input','keygen', + 'link','menuitem','meta','param','source','track','wbr']); prefix = 'render_tag_' for i in [j for j in dir(self) if j.startswith(prefix)]: name = i[len(prefix):].replace('_', '-') @@ -184,8 +186,7 @@ class QWebXml(object): inner = inner.strip() if name == "t": return inner - elif len(inner) or name in ['script','i','div']: - # script should be rendered as + elif len(inner) or name not in self._void_elements: return "<%s%s>%s" % (name, g_att, inner, name) else: return "<%s%s/>" % (name, g_att)