From d781508364dc6b206ba3c7ed84418e12452180a4 Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 11 Nov 2025 21:31:07 +0000 Subject: [PATCH] Update exam counts to use distinct counts for archived and non-archived exams --- generic/views.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/generic/views.py b/generic/views.py index 89df7d14..9d4df40b 100644 --- a/generic/views.py +++ b/generic/views.py @@ -5354,12 +5354,12 @@ class ExamCollectionList(ListView): if show_archived: # include archived exams in counts (count all exams for each app) counts = { - "anatomy_count": Count("anatomy_exams"), - "longs_count": Count("longs_exams"), - "physics_count": Count("physics_exams"), - "rapids_count": Count("rapids_exams"), - "sbas_count": Count("sbas_exams"), - "shorts_count": Count("shorts_exams"), + "anatomy_count": Count("anatomy_exams", distinct=True), + "longs_count": Count("longs_exams", distinct=True), + "physics_count": Count("physics_exams", distinct=True), + "rapids_count": Count("rapids_exams", distinct=True), + "sbas_count": Count("sbas_exams", distinct=True), + "shorts_count": Count("shorts_exams", distinct=True), } else: # only count non-archived exams @@ -5367,26 +5367,32 @@ class ExamCollectionList(ListView): "anatomy_count": Count( "anatomy_exams", filter=Q(anatomy_exams__archive=False), + distinct=True, ), "longs_count": Count( "longs_exams", filter=Q(longs_exams__archive=False), + distinct=True, ), "physics_count": Count( "physics_exams", filter=Q(physics_exams__archive=False), + distinct=True, ), "rapids_count": Count( "rapids_exams", filter=Q(rapids_exams__archive=False), + distinct=True, ), "sbas_count": Count( "sbas_exams", filter=Q(sbas_exams__archive=False), + distinct=True, ), "shorts_count": Count( "shorts_exams", filter=Q(shorts_exams__archive=False), + distinct=True, ), }