From 872e1df7508846a561ce3ce8b3d916a274385677 Mon Sep 17 00:00:00 2001 From: imperosol Date: Sat, 13 Sep 2025 13:58:33 +0200 Subject: [PATCH] fix: N+1 queries on old club members view --- club/templates/club/club_old_members.jinja | 24 ++++++++++++---------- club/views.py | 9 ++++++++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/club/templates/club/club_old_members.jinja b/club/templates/club/club_old_members.jinja index 887da079..75603f9e 100644 --- a/club/templates/club/club_old_members.jinja +++ b/club/templates/club/club_old_members.jinja @@ -5,20 +5,22 @@

{% trans %}Club old members{% endtrans %}

- - - - - + + + + + + + - {% for m in club.members.exclude(end_date=None).order_by('-role', 'description', '-end_date').all() %} + {% for member in old_members %} - - - - - + + + + + {% endfor %} diff --git a/club/views.py b/club/views.py index fedc88ee..f8b68218 100644 --- a/club/views.py +++ b/club/views.py @@ -342,6 +342,15 @@ class ClubOldMembersView(ClubTabsMixin, PermissionRequiredMixin, DetailView): current_tab = "elderlies" permission_required = "club.view_club" + def get_context_data(self, **kwargs): + return super().get_context_data(**kwargs) | { + "old_members": ( + self.object.members.exclude(end_date=None) + .order_by("-role", "description", "-end_date") + .select_related("user") + ) + } + class ClubSellingView(ClubTabsMixin, CanEditMixin, DetailFormView): """Sellings of a club."""
{% trans %}User{% endtrans %}{% trans %}Role{% endtrans %}{% trans %}Description{% endtrans %}{% trans %}From{% endtrans %}{% trans %}To{% endtrans %}
{% trans %}User{% endtrans %}{% trans %}Role{% endtrans %}{% trans %}Description{% endtrans %}{% trans %}From{% endtrans %}{% trans %}To{% endtrans %}
{{ user_profile_link(m.user) }}{{ settings.SITH_CLUB_ROLES[m.role] }}{{ m.description }}{{ m.start_date }}{{ m.end_date }}{{ user_profile_link(member.user) }}{{ settings.SITH_CLUB_ROLES[member.role] }}{{ member.description }}{{ member.start_date }}{{ member.end_date }}