From b66f428a0eb0e588964b7a07fc4a6a8ccc705d25 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Sat, 9 Nov 2024 11:50:39 +0100 Subject: [PATCH] =?UTF-8?q?Optimisation=20d'acc=C3=A8s=20=C3=A0=20la=20bas?= =?UTF-8?q?e=20de=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/agenda_culturel/models.py | 8 ++------ .../templates/agenda_culturel/page-event.html | 2 +- .../agenda_culturel/single-event/event-single-inc.html | 2 +- src/agenda_culturel/templatetags/event_extra.py | 2 +- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index 3bcbc7c..5b8e3a5 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -1039,17 +1039,13 @@ class Event(models.Model): if self.other_versions is None: return [] else: - return Event.objects.filter( - other_versions=self.other_versions - ).filter(~Q(status=Event.STATUS.TRASH)).exclude(pk=self.pk) + return [e for e in self.other_versions.get_duplicated() if e.pk != self.pk and e.status != Event.STATUS.TRASH] def get_other_versions(self): if self.other_versions is None: return [] else: - return Event.objects.filter( - other_versions=self.other_versions - ).exclude(pk=self.pk) + return [e for e in self.other_versions.get_duplicated() if e.pk != self.pk] def masked(self): return self.other_versions and self.other_versions.representative != self diff --git a/src/agenda_culturel/templates/agenda_culturel/page-event.html b/src/agenda_culturel/templates/agenda_culturel/page-event.html index a00aa57..df687d4 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-event.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-event.html @@ -86,7 +86,7 @@ {% if event.other_versions %} {% with poss_dup=event.get_other_versions|only_allowed:user.is_authenticated %} - {% if poss_dup.count > 0 %} + {% if poss_dup|length > 0 %}
{% if event.other_versions.representative %} diff --git a/src/agenda_culturel/templates/agenda_culturel/single-event/event-single-inc.html b/src/agenda_culturel/templates/agenda_culturel/single-event/event-single-inc.html index 6ac1063..0e73b09 100644 --- a/src/agenda_culturel/templates/agenda_culturel/single-event/event-single-inc.html +++ b/src/agenda_culturel/templates/agenda_culturel/single-event/event-single-inc.html @@ -20,7 +20,7 @@

{% if event.other_versions %} {% with poss_dup=event.get_other_not_trash_versions|only_allowed:user.is_authenticated %} - {% if poss_dup.count > 0 %} + {% if poss_dup|length > 0 %}

{% if event.other_versions.representative %} cet événement existe en plusieurs versions, diff --git a/src/agenda_culturel/templatetags/event_extra.py b/src/agenda_culturel/templatetags/event_extra.py index 1cc1221..d2e0a78 100644 --- a/src/agenda_culturel/templatetags/event_extra.py +++ b/src/agenda_culturel/templatetags/event_extra.py @@ -150,6 +150,6 @@ def linebreaks2(txt): @register.filter def only_allowed(elist, is_authenticated): if not is_authenticated: - return elist.filter(status=Event.STATUS.PUBLISHED) + return [e for e in elist if e.status == Event.STATUS.PUBLISHED] else: return elist \ No newline at end of file