diff --git a/src/people/templates/people.html b/src/people/templates/people.html index a6d083ec3..ebf8582da 100644 --- a/src/people/templates/people.html +++ b/src/people/templates/people.html @@ -34,20 +34,23 @@

{{ team.name }} Team - {% for resp in team.leads.all %} - {{ resp.profile.get_public_credit_name }}
+ {% for member in team.teammember_set.all %} + {% if member.approved and member.lead %} + {{ member.user.profile.get_public_credit_name }}
+ {% endif %} {% endfor %} - {% for member in team.regular_members.all %} - {% if member.profile.get_public_credit_name != "Unnamed" %} - {{ member.profile.get_public_credit_name }}
+ {% for member in team.teammember_set.all %} + {% if member.approved and not member.lead and member.user.profile.get_public_credit_name != "Unnamed" %} + {{ member.user.profile.get_public_credit_name }}
{% endif %} {% empty %} No team members {% endfor %} {% if team.unnamed_members %} - {% if team.unnamed_members.count < team.regular_members.count %}Plus {% endif %}{{ team.unnamed_members.count }} anonymous member(s). + {% if team.unnamed_members.count < team.regular_members.count %}Plus {% endif %} + {{ team.unnamed_members.count }} anonymous member(s). {% endif %} diff --git a/src/people/views.py b/src/people/views.py index a783e120d..f6d36c17e 100644 --- a/src/people/views.py +++ b/src/people/views.py @@ -1,10 +1,23 @@ from __future__ import annotations from django.views.generic import ListView +from django.db.models import Prefetch from camps.models import Camp +from teams.models import TeamMember class PeopleView(ListView): template_name = "people.html" model = Camp + + def get_queryset(self): + """Prefetch and Select related models for performance optimization.""" + return super().get_queryset().prefetch_related( + "teams", + Prefetch( + "teams__teammember_set", + queryset=TeamMember.objects.select_related("user__profile") + ) + ) +