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")
+ )
+ )
+