Merge PR #914 into 15.0

Signed-off-by yajo
This commit is contained in:
OCA-git-bot 2022-05-31 09:43:40 +00:00
commit 215493331c

View File

@ -26,37 +26,28 @@ class MailRenderMixin(models.AbstractModel):
# We don't want to change what was explicitly added in the message body,
# so we will only change what is before and after it.
if to_keep:
to_change = value.split(to_keep)
else:
to_change = [value]
to_keep = ""
new_parts = []
for part in to_change:
tree = html.fromstring(part)
if tree is None:
new_parts.append(part)
continue
odoo_anchors = tree.xpath('//a[contains(@href,"odoo.com")]')
for elem in odoo_anchors:
parent = elem.getparent()
previous = elem.getprevious()
if remove_before and not remove_parent and previous is not None:
# remove 'using' that is before <a and after </span>
previous.tail = ""
if remove_parent and len(parent.getparent()):
# anchor <a href odoo has a parent powered by that must be removed
value = value.replace(to_keep, "<body_msg></body_msg>")
tree = html.fromstring(value)
odoo_anchors = tree.xpath('//a[contains(@href,"odoo.com")]')
for elem in odoo_anchors:
parent = elem.getparent()
previous = elem.getprevious()
if remove_before and not remove_parent and previous is not None:
# remove 'using' that is before <a and after </span>
previous.tail = ""
if remove_parent and len(parent.getparent()):
# anchor <a href odoo has a parent powered by that must be removed
parent.getparent().remove(parent)
else:
if parent.tag == "td": # also here can be powered by
parent.getparent().remove(parent)
else:
if parent.tag == "td": # also here can be powered by
parent.getparent().remove(parent)
else:
parent.remove(elem)
part = etree.tostring(
tree, pretty_print=True, method="html", encoding="unicode"
)
new_parts.append(part)
value = str(to_keep).join(new_parts)
parent.remove(elem)
value = etree.tostring(
tree, pretty_print=True, method="html", encoding="unicode"
)
if to_keep:
value = value.replace("<body_msg></body_msg>", to_keep)
return value
@api.model