Amélioration des accès rapides agenda

This commit is contained in:
Jean-Marie Favreau 2025-03-09 20:59:13 +01:00
parent 519528cf69
commit f1ec525c5f
4 changed files with 64 additions and 50 deletions

View File

@ -16,7 +16,7 @@
{% endblock %}
{% block navigation-menu %}
{% cache 90000 navigation_links_month user.is_authenticated calendar.firstdate category filter.get_url %}
{% navigation_links filter category %}
{% navigation_links filter category calendar "month" %}
{% endcache %}
{% endblock %}
{% block when_parameters %}{{ filter.get_url }}{% endblock %}

View File

@ -10,7 +10,7 @@
{% endblock %}
{% block navigation-menu %}
{% cache 90000 navigation_links_upcoming user.is_authenticated calendar.firstdate filter.get_url category calendar.nb_days %}
{% navigation_links filter category %}
{% navigation_links filter category calendar "upcoming" %}
{% endcache %}
{% endblock %}
{% block when_parameters %}{{ filter.get_url }}{% endblock %}

View File

@ -30,7 +30,7 @@
{% endblock %}
{% block navigation-menu %}
{% cache 90000 navigation_links_week user.is_authenticated calendar.firstdate category filter.get_url %}
{% navigation_links filter category %}
{% navigation_links filter category calendar "week" %}
{% endcache %}
{% endblock %}
{% block when_parameters %}{{ filter.get_url }}{% endblock %}

View File

@ -2,6 +2,8 @@ from datetime import date, datetime, timedelta
import calendar
from string import ascii_uppercase as auc
from urllib.parse import urlparse
from django.utils.formats import localize
from django.utils import dates
import emoji
from dateutil.relativedelta import relativedelta
@ -187,58 +189,70 @@ def no_emoji(text):
@register.simple_tag
def navigation_links(filter, category):
def navigation_links(filter, category, calendar, current_view):
extra = "?" + filter.get_url()
if category is None:
result = (
'<li><a href="'
+ reverse_lazy("aujourdhui")
+ extra
+ "\">aujourd'hui</a></li>"
)
result = ""
extra_path = "" if category is None else "_category"
if not calendar.today_in_calendar():
if current_view == "upcoming":
params = {}
if category:
params["cat"] = category.slug
params["year"] = calendar.firstdate.year
params["week"] = calendar.firstdate.isocalendar()[1]
result += (
'<li><a href="'
+ reverse_lazy("week_view" + extra_path, kwargs=params)
+ extra
+ '">semaine du '
+ localize(calendar.firstdate)
+ "</a></li>"
)
if current_view != "month":
params = {}
if category:
params["cat"] = category.slug
days = [calendar.firstdate]
if calendar.firstdate.month != calendar.lastdate.month:
days.append(calendar.lastdate)
for d in days:
params["year"] = d.year
params["month"] = d.month
result += (
'<li><a href="'
+ reverse_lazy("month_view" + extra_path, kwargs=params)
+ extra
+ '">'
+ dates.MONTHS[d.month]
+ " "
+ str(d.year)
+ "</a></li>"
)
kwargs = {}
if category:
kwargs["cat"] = category.slug
for t in [
("aujourdhui", "aujourd'hui"),
("a_venir", "ces jours-ci"),
("cette_semaine", "cette semaine"),
("ce_mois_ci", "ce mois-ci"),
]:
result += (
'<li><a href="'
+ reverse_lazy("a_venir")
+ reverse_lazy(t[0] + extra_path, kwargs=kwargs)
+ extra
+ '">ces jours-ci</a></li>'
)
result += (
'<li><a href="'
+ reverse_lazy("cette_semaine")
+ extra
+ '">cette semaine</a></li>'
)
result += (
'<li><a href="'
+ reverse_lazy("ce_mois_ci")
+ extra
+ '">ce mois-ci</a></li>'
)
else:
result = (
'<li><a href="'
+ reverse_lazy("aujourdhui_category", kwargs={"cat": category.slug})
+ extra
+ "\">aujourd'hui</a></li>"
)
result += (
'<li><a href="'
+ reverse_lazy("a_venir_category", kwargs={"cat": category.slug})
+ extra
+ '">à venir</a></li>'
)
result += (
'<li><a href="'
+ reverse_lazy("cette_semaine_category", kwargs={"cat": category.slug})
+ extra
+ '">cette semaine</a></li>'
)
result += (
'<li><a href="'
+ reverse_lazy("ce_mois_ci_category", kwargs={"cat": category.slug})
+ extra
+ '">ce mois-ci</a></li>'
+ '">'
+ t[1]
+ "</a></li>"
)
return mark_safe(result)