From 850ab322f119416d75f2d4d0983914dbd59f21cc Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Mon, 5 Sep 2022 21:01:10 +0200
Subject: [PATCH]  Add distinct to group-based statistic views (extra marks and
 excuse types)

---
 CHANGELOG.rst                            | 1 +
 aleksis/apps/alsijil/model_extensions.py | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 7deda4db4..2fd8f9c94 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -13,6 +13,7 @@ Changed
 ~~~~~~~
 
 * Use new icon set inside of models and templates
+* Extra marks and excused absences were counted multiple times in some class register views.
 
 `2.1.1`_ - 2022-09-01
 ---------------------
diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py
index b53f87f99..2beb3c113 100644
--- a/aleksis/apps/alsijil/model_extensions.py
+++ b/aleksis/apps/alsijil/model_extensions.py
@@ -471,6 +471,7 @@ def generate_person_list_with_class_register_statistics(
                 extra_mark.count_label: Count(
                     "filtered_personal_notes",
                     filter=Q(filtered_personal_notes__extra_marks=extra_mark),
+                    distinct=True,
                 )
             }
         )
@@ -484,6 +485,7 @@ def generate_person_list_with_class_register_statistics(
                         filtered_personal_notes__absent=True,
                         filtered_personal_notes__excuse_type=excuse_type,
                     ),
+                    distinct=True,
                 )
             }
         )
-- 
GitLab