From 1e9698da91632bd4d62c2e8e62174a4aa9663d46 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Sun, 17 Nov 2024 20:52:04 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20la=20vue=20des=20?= =?UTF-8?q?=C3=A9tiquettes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agenda_culturel/static/style.scss | 4 ++ .../templates/agenda_culturel/tags.html | 49 +++++++++++-------- .../templatetags/utils_extra.py | 12 ++++- src/agenda_culturel/views.py | 11 +++-- 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss index c1688ca..0346b14 100644 --- a/src/agenda_culturel/static/style.scss +++ b/src/agenda_culturel/static/style.scss @@ -886,6 +886,10 @@ form .buttons [role="button"] { margin: 2em auto; } +.min-y-grid { + min-height: 4em; +} + @media (min-width: 992px) { .grid.two-columns { grid-column-gap: var(--nav-element-spacing-vertical); diff --git a/src/agenda_culturel/templates/agenda_culturel/tags.html b/src/agenda_culturel/templates/agenda_culturel/tags.html index b9f16b5..41d8633 100644 --- a/src/agenda_culturel/templates/agenda_culturel/tags.html +++ b/src/agenda_culturel/templates/agenda_culturel/tags.html @@ -22,35 +22,42 @@

Les étiquettes des événements

-{% if tags %} +{% if tags %} {% for tag in tags %} -
-
{{ tag.name }}
+
- {{ tag.description|safe }} -

{% if tag.category %}Cette étiquette est une sous-catégorie de {{ tag.category| small_cat:tag.category.get_absolute_url }}{% endif %}

+ {{ tag.tag }}: {{ tag.count }} +
+
+ {% if tag.obj %} + {% if not tag.obj.description|html_vide %}{{ tag.obj.description|safe }}{% endif %} + {% if tag.obj.category or tag.obj.principal or tag.obj.in_included_suggestions or tag.obj.in_excluded_suggestions %} +
    + {% if tag.obj.category %} +
  • Cette étiquette est une sous-catégorie de {{ tag.obj.category| small_cat:tag.obj.category.get_absolute_url }}
  • + {% endif %} + {% if tag.obj.principal %} +
  • Cette étiquette est mise en avant parmi les étiquettes principales.
  • + {% endif %} + {% if tag.obj.in_included_suggestions %} +
  • Cette étiquette fait partie des étiquettes suggérées à inclure.
  • + {% endif %} + {% if tag.obj.in_excluded_suggestions %} +
  • Cette étiquette fait partie des étiquettes suggérées à exclure.
  • + {% endif %} +
+ {% endif %} + {% else %} +

-

+ {% endif %} +
-
{% endfor %} {% else %} -

Il n'y a aucune étiquette disposant d'une description.

+

Il n'y a aucune étiquette.

{% endif %} - {% endcache %} diff --git a/src/agenda_culturel/templatetags/utils_extra.py b/src/agenda_culturel/templatetags/utils_extra.py index 88a5109..105fa5c 100644 --- a/src/agenda_culturel/templatetags/utils_extra.py +++ b/src/agenda_culturel/templatetags/utils_extra.py @@ -8,6 +8,7 @@ from dateutil.relativedelta import relativedelta from django.urls import reverse_lazy from django.templatetags.static import static from string import ascii_uppercase as auc +from django.utils.html import strip_tags register = template.Library() @@ -126,4 +127,13 @@ def tocoords(c): @register.filter def index(indexable, i): - return indexable[i] \ No newline at end of file + return indexable[i] + +@register.filter +def is_string(val): + return isinstance(val, str) + +@register.filter +def html_vide(val): + return len(strip_tags(val).replace(" ", "").strip()) == 0 + diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index de732e3..0a48594 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -1872,8 +1872,13 @@ def view_tag(request, t): def tag_list(request): - tags = [t["tag"] for t in Event.get_all_tags()] + tags = Event.get_all_tags() objects = Tag.objects.order_by("name").all() - context = {"other_tags": sorted(tags, key=lambda x: remove_accents(x).lower()), - "tags": objects} + d_objects = dict() + for o in objects: + d_objects[o.name] = o + + tags = [t | {'obj': d_objects[t["tag"]]} if t["tag"] in d_objects else t for t in tags] + + context = {"tags": sorted(tags, key=lambda x: remove_accents(x["tag"]).lower())} return render(request, "agenda_culturel/tags.html", context) \ No newline at end of file