From 528e23f031865a102d54c3bdddee866c33b40445 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Wed, 2 Jun 2021 12:48:24 +0200
Subject: [PATCH] Add distincts to absence query set to prevent double entries

---
 CHANGELOG.rst                    | 1 +
 aleksis/apps/chronos/managers.py | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index eed15b70..73236363 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -14,6 +14,7 @@ Fixed
 
 * Migration path was ambigious
 * Unique constraints for breaks and substitutions were too tight
+* Absences in substitutions list were displayed multiple times.
 
 `2.0b0`_ - 2021-05-21
 ---------------------
diff --git a/aleksis/apps/chronos/managers.py b/aleksis/apps/chronos/managers.py
index 303a2203..82021ef4 100644
--- a/aleksis/apps/chronos/managers.py
+++ b/aleksis/apps/chronos/managers.py
@@ -600,13 +600,13 @@ class AbsenceQuerySet(DateRangeQuerySetMixin, SchoolTermRelatedQuerySet):
     """QuerySet with custom query methods for absences."""
 
     def absent_teachers(self):
-        return Person.objects.filter(absences__in=self).order_by("short_name")
+        return Person.objects.filter(absences__in=self).distinct().order_by("short_name")
 
     def absent_groups(self):
-        return Group.objects.filter(absences__in=self).order_by("short_name")
+        return Group.objects.filter(absences__in=self).distinct().order_by("short_name")
 
     def absent_rooms(self):
-        return Person.objects.filter(absences__in=self).order_by("short_name")
+        return Person.objects.filter(absences__in=self).distinct().order_by("short_name")
 
 
 class HolidayQuerySet(QuerySet, DateRangeQuerySetMixin):
-- 
GitLab