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, # 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. # so we will only change what is before and after it.
if to_keep: if to_keep:
to_change = value.split(to_keep) value = value.replace(to_keep, "<body_msg></body_msg>")
else: tree = html.fromstring(value)
to_change = [value] odoo_anchors = tree.xpath('//a[contains(@href,"odoo.com")]')
to_keep = "" for elem in odoo_anchors:
new_parts = [] parent = elem.getparent()
for part in to_change: previous = elem.getprevious()
tree = html.fromstring(part) if remove_before and not remove_parent and previous is not None:
if tree is None: # remove 'using' that is before <a and after </span>
new_parts.append(part) previous.tail = ""
continue if remove_parent and len(parent.getparent()):
odoo_anchors = tree.xpath('//a[contains(@href,"odoo.com")]') # anchor <a href odoo has a parent powered by that must be removed
for elem in odoo_anchors: parent.getparent().remove(parent)
parent = elem.getparent() else:
previous = elem.getprevious() if parent.tag == "td": # also here can be powered by
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) parent.getparent().remove(parent)
else: else:
if parent.tag == "td": # also here can be powered by parent.remove(elem)
parent.getparent().remove(parent) value = etree.tostring(
else: tree, pretty_print=True, method="html", encoding="unicode"
parent.remove(elem) )
part = etree.tostring( if to_keep:
tree, pretty_print=True, method="html", encoding="unicode" value = value.replace("<body_msg></body_msg>", to_keep)
)
new_parts.append(part)
value = str(to_keep).join(new_parts)
return value return value
@api.model @api.model