les événements d'une étiquette sont affichés à partir de maintenant, dans le

passé ou dans le futur

Fix #264
This commit is contained in:
Jean-Marie Favreau 2025-01-08 17:00:04 +01:00
parent 77941ed0ee
commit 482dd9468a
3 changed files with 28 additions and 9 deletions

View File

@ -2,7 +2,7 @@
{% load tag_extra %}
{% block title %}{% block og_title %}Les événements {{ tag }}{% endblock %}{% endblock %}
{% block title %}{% block og_title %}Étiquette {{ tag }}{% endblock %}{% endblock %}
{% load cat_extra %}
{% load utils_extra %}
@ -40,7 +40,7 @@
<a href="{% url 'delete_tag' tag %}" role="button">Supprimer {% picto_from_name "trash-2" %}</a>
{% endif %}
</div>
<h1>Les événements <em>{{ tag }}</em></h1>
<h1>Étiquette <em>{{ tag }}</em></h1>
{% if user.is_authenticated and object %}
{% if object.in_excluded_suggestions %}
<p class="remarque">Cette étiquette fait partie des étiquettes suggérées pour l'exclusion.</p>
@ -72,6 +72,18 @@
</footer>
</article>
<div>
<div class="slide-buttons">
{% if past %}
<a href="{% url 'view_tag' object.name|prepare_tag %}" role="button">Voir les événements à venir</a>
{% else %}
<a href="{% url 'view_tag_past' object.name|prepare_tag %}" role="button">Voir les événements passés</a>
{% endif %}
</div>
<h2>{% if past %}Événements passés{% else %}Événements à venir{% endif %}</h2>
<div style="clear:both"></div>
</div>
{% for event in paginator_filter %}
{% include "agenda_culturel/single-event/event-elegant-inc.html" with event=event day=0 %}
{% endfor %}

View File

@ -41,6 +41,7 @@ urlpatterns = [
path("cette-semaine/", week_view, name="cette_semaine"),
path("ce-mois-ci", month_view, name="ce_mois_ci"),
path("tag/<t>/", view_tag, name="view_tag"),
path("tag/<t>/past", view_tag_past, name="view_tag_past"),
path("tags/", tag_list, name="view_all_tags"),
path("tag/<int:pk>/edit", TagUpdateView.as_view(), name="edit_tag"),
path("tag/<int:pk>/delete", TagDeleteView.as_view(), name="delete_object_tag"),

View File

@ -2121,14 +2121,20 @@ class TagDeleteView(PermissionRequiredMixin, DeleteView):
permission_required = "agenda_culturel.delete_tag"
success_url = reverse_lazy("view_all_tags")
def view_tag_past(request, t):
return view_tag(request, t, True)
def view_tag(request, t):
def view_tag(request, t, past=False):
now = date.today()
paginator = Paginator(
get_event_qs(request).filter(tags__contains=[t]).order_by(
"start_day", "start_time"),
10,
)
qs = get_event_qs(request).filter(tags__contains=[t])
if past:
qs = qs.filter(start_day__lt=now).order_by("-start_day", "-start_time")
else:
qs = qs.filter(start_day__gte=now).order_by("start_day", "start_time")
paginator = Paginator(qs, 10)
page = request.GET.get("page")
try:
@ -2141,7 +2147,7 @@ def view_tag(request, t):
rimports = RecurrentImport.objects.filter(defaultTags__contains=[t])
tag = Tag.objects.filter(name=t).first()
context = {"tag": t, "paginator_filter": response, "object": tag, "rimports": rimports}
context = {"tag": t, "paginator_filter": response, "object": tag, "rimports": rimports, "past": past}
return render(request, "agenda_culturel/tag.html", context)