From f89f17c168e4bdcecfbb642c2bef92cce9570671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Mottet=20=28oms=29?= Date: Tue, 20 Apr 2021 11:50:32 +0000 Subject: [PATCH] [IMP] website: add data-snippet attribute on rendered snippets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the 'data-snippet' attribute on each snippet rendered by the configurator when building website pages. closes odoo/odoo#69706 X-original-commit: 7c203eda4210eec7db476aa5ac056150b795b921 Signed-off-by: Quentin Smetz (qsm) Signed-off-by: Sébastien Mottet --- addons/website/models/website.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index d8ee498ae0e..248c75fa77f 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -9,6 +9,7 @@ import requests import re +from lxml import html from werkzeug import urls from werkzeug.datastructures import OrderedMultiDict from werkzeug.exceptions import NotFound @@ -321,6 +322,9 @@ class Website(models.Model): view_id = self.env['website'].with_context(website_id=website.id).viewref(snippet) if view_id: rendered_snippet = pycompat.to_text(view_id._render()) + el = html.fragment_fromstring(rendered_snippet) + el.attrib['data-snippet'] = snippet.split('.', 1)[-1] + rendered_snippet = pycompat.to_text(html.tostring(el)) rendered_snippets.append(rendered_snippet) except ValueError as e: logger.warning(e)