From e79b31081413d9e6e4ac2335ad255ed567313f24 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Fri, 21 Mar 2025 19:34:24 +0100 Subject: [PATCH] On remplace les oembed par des liens Fix #381 --- .../agenda_culturel/message_moderation_form.html | 2 +- src/agenda_culturel/templatetags/utils_extra.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/agenda_culturel/templates/agenda_culturel/message_moderation_form.html b/src/agenda_culturel/templates/agenda_culturel/message_moderation_form.html index abbd7b7..b9e7a5d 100644 --- a/src/agenda_culturel/templates/agenda_culturel/message_moderation_form.html +++ b/src/agenda_culturel/templates/agenda_culturel/message_moderation_form.html @@ -60,7 +60,7 @@ -
{{ object.message | safe }}
+
{{ object.message | remove_oembed | safe }}
{% if object.message_type == "from_contributor" or object.message_type == "from_contrib_no_msg" %} diff --git a/src/agenda_culturel/templatetags/utils_extra.py b/src/agenda_culturel/templatetags/utils_extra.py index fda6275..2dcee9f 100644 --- a/src/agenda_culturel/templatetags/utils_extra.py +++ b/src/agenda_culturel/templatetags/utils_extra.py @@ -13,6 +13,7 @@ from django.templatetags.static import static from django.urls import reverse_lazy from django.utils.html import strip_tags from django.utils.safestring import mark_safe +from bs4 import BeautifulSoup register = template.Library() @@ -280,3 +281,17 @@ def navigation_links(filter, category, calendar, current_view): def per_day(nb, month): weekday, number_of_days = calendar.monthrange(month.year, month.month) return "%.1f" % (nb / number_of_days) + + +@register.filter +def remove_oembed(html): + soup = BeautifulSoup(html, "html.parser") + + for f in soup.select("figure.media"): + oe = f.select("oembed") + if len(oe) == 1 and oe[0].has_attr("url"): + a = soup.new_tag("a") + a.attrs["href"] = oe[0].attrs["url"] + a.string = oe[0].attrs["url"] + f.replaceWith(a) + return str(soup)