From dbff619980897e19ac9b44dd6278d37701eaa975 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Tue, 10 Aug 2021 20:14:34 +0200 Subject: [PATCH] Add distinct to permission-related queries in FilterRegisterObjectForm and AssignGroupRoleForm (cherry picked from commit c44746467e85616fbbefb0f29692a372feede1ea) --- CHANGELOG.rst | 1 + aleksis/apps/alsijil/forms.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5f4e9ef13..e1970a31b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -13,6 +13,7 @@ Fixed ~~~~~ * The _Delete personal note_ action didn't work due to wrong usage of ``bulk_update``. +* Groups and persons were shown multiple times in some forms due to filtering by permissions. `2.0rc4`_ - 2021-08-01 ---------------------- diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index cb12a4eb8..042b25336 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -256,11 +256,13 @@ class AssignGroupRoleForm(forms.ModelForm): ) else: persons = persons.filter(member_of__owners=self.request.user.person) - self.fields["person"].queryset = persons + self.fields["person"].queryset = persons.distinct() if "groups" not in initial: - groups = Group.objects.for_current_school_term_or_all().filter( - owners=self.request.user.person + groups = ( + Group.objects.for_current_school_term_or_all() + .filter(owners=self.request.user.person) + .distinct() ) self.fields["groups"].queryset = groups @@ -332,7 +334,7 @@ class FilterRegisterObjectForm(forms.Form): | Q(lessons__lesson_periods__substitutions__teachers=person) | Q(events__teachers=person) | Q(extra_lessons__teachers=person) - ) + ).distinct() elif not for_person: groups = Group.objects.all() self.fields["group"].queryset = groups -- GitLab