From 3811e1c0c97bf29b8910bc81c221f9ccc349edd9 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Wed, 10 Jul 2024 14:14:39 +0200 Subject: [PATCH] Fix filter for groups and courses to show the right data - only within current school term - no duplicates - unique ID for every element --- .../coursebook/CoursebookFilters.vue | 1 + aleksis/apps/alsijil/schema/__init__.py | 20 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookFilters.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookFilters.vue index b47ebbfbb..00ff6b02f 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookFilters.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookFilters.vue @@ -3,6 +3,7 @@ <v-autocomplete :items="selectable" item-text="name" + :item-value="(item) => `${item.__typename}-${item.id}`" clearable return-object filled diff --git a/aleksis/apps/alsijil/schema/__init__.py b/aleksis/apps/alsijil/schema/__init__.py index 48e1c20c6..8a567b1bf 100644 --- a/aleksis/apps/alsijil/schema/__init__.py +++ b/aleksis/apps/alsijil/schema/__init__.py @@ -122,8 +122,10 @@ class Query(graphene.ObjectType): else: raise PermissionDenied() - return Group.objects.filter( - Q(members=person) | Q(owners=person) | Q(parent_groups__owners=person) + return ( + Group.objects.for_current_school_term_or_all() + .filter(Q(members=person) | Q(owners=person) | Q(parent_groups__owners=person)) + .distinct() ) @staticmethod @@ -136,13 +138,15 @@ class Query(graphene.ObjectType): person = info.context.user.person else: raise PermissionDenied() - return Course.objects.filter( - Q(teachers=person) - | Q(groups__members=person) - | Q(groups__owners=person) - | Q(groups__parent_groups__owners=person) - ) + ( + Q(teachers=person) + | Q(groups__members=person) + | Q(groups__owners=person) + | Q(groups__parent_groups__owners=person) + ) + & Q(groups__in=Group.objects.for_current_school_term_or_all()) + ).distinct() @staticmethod def resolve_lessons_for_persons( -- GitLab