diff --git a/aleksis/apps/chronos/schema/__init__.py b/aleksis/apps/chronos/schema/__init__.py index 542aff57fc132f506a58cbafa1b57c43fd34c94f..d2afca6635a923f860576c8161bf91d46e71c83f 100644 --- a/aleksis/apps/chronos/schema/__init__.py +++ b/aleksis/apps/chronos/schema/__init__.py @@ -10,7 +10,10 @@ from aleksis.core.schema.base import ( from aleksis.core.schema.group import GroupType from aleksis.core.schema.person import PersonType from aleksis.core.schema.room import RoomType -from aleksis.core.util.core_helpers import get_site_preferences, has_person +from aleksis.core.util.core_helpers import ( + get_site_preferences, + has_person, +) from ..models import LessonEvent from ..util.build import build_substitutions_list @@ -241,14 +244,14 @@ class Query(graphene.ObjectType): return get_teachers(info.context.user) def resolve_timetable_groups(self, info, **kwargs): - return get_groups(info.context.user) + return get_groups(info.context.user, request=info.context) def resolve_timetable_rooms(self, info, **kwargs): return get_rooms(info.context.user) def resolve_available_timetables(self, info, **kwargs): all_timetables = [] - for group in get_groups(info.context.user): + for group in get_groups(info.context.user, request=info.context): all_timetables.append( TimetableObjectType( id=group.id, diff --git a/aleksis/apps/chronos/util/chronos_helpers.py b/aleksis/apps/chronos/util/chronos_helpers.py index 70688e8e585200a6709be110d9770d64f33e971d..851db2b1d7f8f1434ad2d2be1420be786983897d 100644 --- a/aleksis/apps/chronos/util/chronos_helpers.py +++ b/aleksis/apps/chronos/util/chronos_helpers.py @@ -8,8 +8,8 @@ from django.shortcuts import get_object_or_404 from guardian.shortcuts import get_objects_for_user from aleksis.apps.cursus.models import Course -from aleksis.core.models import Announcement, Group, Person, Room -from aleksis.core.util.core_helpers import get_site_preferences +from aleksis.core.models import Announcement, Group, Person, Room, SchoolTerm +from aleksis.core.util.core_helpers import get_active_school_term, get_site_preferences from ..managers import TimetableType from .build import build_substitutions_list @@ -63,10 +63,12 @@ def get_teachers(user: "User"): return teachers -def get_groups(user: "User"): +def get_groups(user: "User", request=None): """Get the groups whose timetables are allowed to be seen by current user.""" - groups = Group.objects.for_current_school_term_or_all() + school_term = get_active_school_term(request) if request is not None else SchoolTerm.current + + groups = Group.objects.for_school_term(school_term) group_types = get_site_preferences()["chronos__group_types_timetables"]