[FIX] avoid <t t-field=...> yielding just text without markup

bzr revid: xmo@openerp.com-20130912140532-qejpqr037x99qrln
This commit is contained in:
Xavier Morel
2013-09-12 16:05:32 +02:00
parent 5bd3396023
commit b84c7c6ebc
+23 -11
View File
@@ -330,20 +330,32 @@ class QWebXml(object):
if isinstance(inner, unicode):
inner = inner.encode("utf8")
if e.tagName != 't':
g_att += ''.join(
' %s="%s"' % (name, cgi.escape(str(value), True))
for name, value in [
('data-oe-model', record._model._name),
('data-oe-id', str(record.id)),
('data-oe-field', field),
('data-oe-type', field_type),
('data-oe-expression', t_att['field']),
]
)
if e.tagName == 't':
e.tagName = DEFAULT_TAG_BY_TYPE[field_type]
g_att += ''.join(
' %s="%s"' % (name, cgi.escape(str(value), True))
for name, value in [
('data-oe-model', record._model._name),
('data-oe-id', str(record.id)),
('data-oe-field', field),
('data-oe-type', field_type),
('data-oe-expression', t_att['field']),
]
)
except AttributeError:
_logger.warning("t-field no field %s for model %s", field, record._model._name)
return self.render_element(e, t_att, g_att, v, str(inner or ""))
# If a t-field is set on a <t> element, by default only its text will be
# rendered losing the information that it's a tag and completely breaking
# edition => replace <t> by some default tag depending on field type
DEFAULT_TAG_BY_TYPE = {
'int': 'span',
'float': 'span',
'char': 'span',
'many2one': 'span',
}
# leave this, al.