summaryrefslogtreecommitdiff
path: root/addons/website/models/ir_qweb.py
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2014-12-18 17:20:46 +0100
committerAntony Lesuisse <al@openerp.com>2014-12-18 22:50:12 +0100
commit4734cbab4d72afcc5b92b2e1714bc372800aae41 (patch)
tree55bed4486c9f0d8bfbd2067799eca597cc84f025 /addons/website/models/ir_qweb.py
parent790312dbf92e302f40782a60c5dc208cd6877079 (diff)
[IMP] website.snippet: snippets can be splitted into separate template and be called into the lits of the snippet
Diffstat (limited to 'addons/website/models/ir_qweb.py')
-rw-r--r--addons/website/models/ir_qweb.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py
index d840bb93784..c27e7c90335 100644
--- a/addons/website/models/ir_qweb.py
+++ b/addons/website/models/ir_qweb.py
@@ -69,6 +69,23 @@ class QWeb(orm.AbstractModel):
return super(QWeb, self).render_attribute(element, name, value, qwebcontext)
+ def render_tag_snippet(self, element, template_attributes, generated_attributes, qwebcontext):
+ d = qwebcontext.copy()
+ d[0] = self.render_element(element, template_attributes, generated_attributes, d)
+ cr = d.get('request') and d['request'].cr or None
+ uid = d.get('request') and d['request'].uid or None
+
+ template = self.eval_format(template_attributes["snippet"], d)
+ elements = html.fragments_fromstring(self.render(cr, uid, template, d))
+
+ id = int(elements[0].get('data-oe-id', None))
+ elements[0].set('data-oe-name', self.pool['ir.ui.view'].browse(cr, uid, id, context=qwebcontext.context).name)
+ elements[0].set('data-oe-type', "snippet")
+
+ elements[0].set('data-oe-thumbnail', template_attributes.get('thumbnail', "oe-thumbnail"))
+
+ return "".join(map(html.tostring, elements))
+
def render_tag_call_assets(self, element, template_attributes, generated_attributes, qwebcontext):
if request and request.website and request.website.cdn_activated:
if qwebcontext.context is None: