diff --git a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po index b13587b..1d6d2de 100644 --- a/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po +++ b/src/agenda_culturel/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: agenda_culturel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-09 21:20+0100\n" +"POT-Creation-Date: 2025-01-09 21:49+0100\n" "PO-Revision-Date: 2023-10-29 14:16+0000\n" "Last-Translator: Jean-Marie Favreau \n" "Language-Team: Jean-Marie Favreau \n" @@ -1104,6 +1104,10 @@ msgstr "Règles de catégorisation" msgid "French" msgstr "français" +#: agenda_culturel/templatetags/utils_extra.py:28 +msgid "facebook event" +msgstr "événement facebook" + #: agenda_culturel/views.py:155 msgid "Recurrent import name" msgstr "Nome de l'import récurrent" diff --git a/src/agenda_culturel/static/images/fb.png b/src/agenda_culturel/static/images/fb.png new file mode 100644 index 0000000..0ab4744 Binary files /dev/null and b/src/agenda_culturel/static/images/fb.png differ diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss index 0f7c1a3..19b5ba3 100644 --- a/src/agenda_culturel/static/style.scss +++ b/src/agenda_culturel/static/style.scss @@ -1814,4 +1814,10 @@ dialog { color: var(--contrast); } } +} + +.logo-socalmedia { + height: 1.3em; + vertical-align: middle; + margin-bottom: .2em; } \ No newline at end of file diff --git a/src/agenda_culturel/templates/agenda_culturel/event-sources-inc.html b/src/agenda_culturel/templates/agenda_culturel/event-sources-inc.html index 8a20d58..da5a554 100644 --- a/src/agenda_culturel/templates/agenda_culturel/event-sources-inc.html +++ b/src/agenda_culturel/templates/agenda_culturel/event-sources-inc.html @@ -1,14 +1,24 @@ {% load utils_extra %} +{% load static %} {% with event.get_reference_urls as refs %} -{% if refs|length > 0 %} -

Source{{ refs|pluralize }} : - - {% for eurl in refs %} -{{ eurl|hostname }}{% if not forloop.last %}, {% endif %} -{% endfor %} -

+{% with refs|length as nb_url %} +{% if nb_url > 0 %} + {% if nb_url == 1 %} + {% if refs.0|is_facebook_url %} +

Voir l'événement facebook

+ {% else %} +

Voir l'événement sur le site source {{ refs.0|hostname_or_socialmedia }}

+ {% endif %} + {% else %} +

Voir l'événement sur les site sources + {% for eurl in refs %} + + {{ eurl|hostname_or_socialmedia }}{% if eurl|is_facebook_url %} {% endif %}{% if not forloop.last %}, {% endif %} + {% endfor %}

+ {% endif %} {% else %}

À notre connaissance, cet événement n'est pas référencé autre part sur internet.

{% endif %} +{% endwith %} {% endwith %} \ No newline at end of file diff --git a/src/agenda_culturel/templatetags/utils_extra.py b/src/agenda_culturel/templatetags/utils_extra.py index 4ea4bf2..03cc148 100644 --- a/src/agenda_culturel/templatetags/utils_extra.py +++ b/src/agenda_culturel/templatetags/utils_extra.py @@ -1,6 +1,7 @@ from django import template from django.utils.safestring import mark_safe from django.template.defaultfilters import stringfilter +from django.utils.translation import gettext_lazy as _ from urllib.parse import urlparse from datetime import timedelta, date, datetime @@ -13,11 +14,20 @@ import emoji register = template.Library() +@register.filter +def is_facebook_url(url): + obj = urlparse(url) + return obj.hostname.endswith("facebook.com") @register.filter -def hostname(url): +def hostname_or_socialmedia(url): obj = urlparse(url) - return mark_safe(obj.hostname) + hostname = obj.hostname + if hostname.endswith("facebook.com"): + if "event" in url: + return _("facebook event") + + return mark_safe(hostname) @register.filter