From df27949036f7a2449ea2c04bb6c0b07bba946c62 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Thu, 14 Nov 2024 22:38:39 +0100 Subject: [PATCH] Le cache des pages ne contient pas le formulaire --- src/agenda_culturel/models.py | 55 +++++++++++-------- .../templates/agenda_culturel/page-month.html | 6 +- .../agenda_culturel/page-upcoming.html | 7 ++- .../templates/agenda_culturel/page-week.html | 5 +- 4 files changed, 41 insertions(+), 32 deletions(-) diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index ab76de5..0f498e9 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -8,6 +8,8 @@ from django.urls import reverse from colorfield.fields import ColorField from django_ckeditor_5.fields import CKEditor5Field from urllib.parse import urlparse +from django.core.cache import cache + import urllib.request import os from django.core.files import File @@ -213,38 +215,43 @@ class Tag(models.Model): return reverse("view_tag", kwargs={"t": self.name}) def get_tag_groups(nb_suggestions=10, exclude=False, include=False): - free_tags = Event.get_all_tags(False) + id_cache = 'all_tags ' + str(exclude) + ' ' + str(include) + ' ' + str(nb_suggestions) + result = cache.get(id_cache) + if not result: # - obj_tags = Tag.objects + free_tags = Event.get_all_tags(False) - try: - if exclude: - obj_tags = obj_tags.filter(Q(in_excluded_suggestions=True)) - if include: - obj_tags = obj_tags.filter(Q(in_included_suggestions=True)|Q(principal=True)) - except FieldDoesNotExist: - pass - - if not exclude and not include: - obj_tags = obj_tags.filter(principal=True) + obj_tags = Tag.objects - obj_tags = obj_tags.values_list("name", flat=True) + try: + if exclude: + obj_tags = obj_tags.filter(Q(in_excluded_suggestions=True)) + if include: + obj_tags = obj_tags.filter(Q(in_included_suggestions=True)|Q(principal=True)) + except FieldDoesNotExist: + pass + + if not exclude and not include: + obj_tags = obj_tags.filter(principal=True) - if len(obj_tags) > nb_suggestions: - nb_suggestions = len(obj_tags) - - tags = [{"tag": t["tag"], "count": 1000000 if t["tag"] in obj_tags else t["count"]} for t in free_tags] + obj_tags = obj_tags.values_list("name", flat=True) - tags.sort(key=lambda x: -x["count"]) + if len(obj_tags) > nb_suggestions: + nb_suggestions = len(obj_tags) + + tags = [{"tag": t["tag"], "count": 1000000 if t["tag"] in obj_tags else t["count"]} for t in free_tags] - tags1 = tags[0:nb_suggestions] - tags1.sort(key=lambda x: remove_accents(x["tag"]).lower()) - tags2 = tags[nb_suggestions:] - tags2.sort(key=lambda x: remove_accents(x["tag"]).lower()) + tags.sort(key=lambda x: -x["count"]) - result = ((_('Suggestions'), [(t["tag"], t["tag"]) for t in tags1]), - (_('Others'), [(t["tag"], t["tag"]) for t in tags2])) + tags1 = tags[0:nb_suggestions] + tags1.sort(key=lambda x: remove_accents(x["tag"]).lower()) + tags2 = tags[nb_suggestions:] + tags2.sort(key=lambda x: remove_accents(x["tag"]).lower()) + result = ((_('Suggestions'), [(t["tag"], t["tag"]) for t in tags1]), + (_('Others'), [(t["tag"], t["tag"]) for t in tags2])) + + cache.set(id_cache, result, 300) # 5mn return result diff --git a/src/agenda_culturel/templates/agenda_culturel/page-month.html b/src/agenda_culturel/templates/agenda_culturel/page-month.html index e07907b..d82fac7 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-month.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-month.html @@ -25,12 +25,12 @@ {% block content %} - {% get_current_language as LANGUAGE_CODE %} - {% with cache_timeout=user.is_authenticated|yesno:"30,600" %} - {% cache cache_timeout month user.is_authenticated calendar.firstdate filter.to_str LANGUAGE_CODE %} {% include "agenda_culturel/filter-inc.html" with filter=filter noarticle=0 %} + {% get_current_language as LANGUAGE_CODE %} + {% with cache_timeout=user.is_authenticated|yesno:"30,600" %} + {% cache cache_timeout month user.is_authenticated calendar.firstdate filter.to_str LANGUAGE_CODE %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/page-upcoming.html b/src/agenda_culturel/templates/agenda_culturel/page-upcoming.html index 7cd65e3..ada11fd 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-upcoming.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-upcoming.html @@ -21,9 +21,6 @@ {% block content %} - {% get_current_language as LANGUAGE_CODE %} - {% with cache_timeout=user.is_authenticated|yesno:"30,600" %} - {% cache cache_timeout upcoming user.is_authenticated calendar.firstdate filter.to_str calendar.calendar_days_list|length LANGUAGE_CODE %}

{% block title %}{% block og_title %} @@ -40,6 +37,10 @@ {% include "agenda_culturel/filter-inc.html" with filter=filter noarticle=1 %} + {% get_current_language as LANGUAGE_CODE %} + {% with cache_timeout=user.is_authenticated|yesno:"30,600" %} + {% cache cache_timeout upcoming user.is_authenticated calendar.firstdate filter.to_str calendar.calendar_days_list|length LANGUAGE_CODE %} +