[IMP] website: add data-snippet attribute on rendered snippets

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) <qsm@odoo.com>
Signed-off-by: Sébastien Mottet <smottet@users.noreply.github.com>
This commit is contained in:
Sébastien Mottet (oms)
2021-04-22 15:02:29 +00:00
parent 002f89bd84
commit f89f17c168
+4
View File
@@ -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)