social/mail_debrand/models/mail_template.py
2021-12-15 11:31:01 +01:00

41 lines
1.3 KiB
Python

# Copyright 2019 O4SB - Graeme Gellatly
# Copyright 2019 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import re
from lxml import html as htmltree
from odoo import _, api, models
class MailTemplate(models.Model):
_inherit = "mail.template"
@api.model
def _debrand_body(self, html):
using_word = _("using")
odoo_word = _("Odoo")
html = re.sub(using_word + "(.*)[\r\n]*(.*)>" + odoo_word + r"</a>", "", html)
powered_by = _("Powered by")
if powered_by not in html:
return html
root = htmltree.fromstring(html)
powered_by_elements = root.xpath("//*[text()[contains(.,'%s')]]" % powered_by)
for elem in powered_by_elements:
# make sure it isn't a spurious powered by
if any(
[
"www.odoo.com" in child.get("href", "")
for child in elem.getchildren()
]
):
for child in elem.getchildren():
elem.remove(child)
elem.text = None
return htmltree.tostring(root).decode("utf-8")
@api.model
def render_post_process(self, html):
html = super().render_post_process(html)
return self._debrand_body(html)