Skip to content
Snippets Groups Projects
Commit 2f632767 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '260-adapt-to-active-school-term' into 'master'

Resolve "Adapt to active school term"

Closes #260

See merge request !380
parents 77de8ebe dc235442
No related branches found
No related tags found
1 merge request!380Resolve "Adapt to active school term"
Pipeline #193924 failed
import graphene
import graphene_django_optimizer
from graphene_django import DjangoObjectType
from aleksis.core.models import Group, Person, Room
......@@ -10,7 +11,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
......@@ -238,17 +242,19 @@ class Query(graphene.ObjectType):
timetable_days = graphene.List(graphene.Int)
def resolve_timetable_teachers(self, info, **kwargs):
return get_teachers(info.context.user)
return graphene_django_optimizer.query(get_teachers(info.context.user), info)
def resolve_timetable_groups(self, info, **kwargs):
return get_groups(info.context.user)
return graphene_django_optimizer.query(
get_groups(info.context.user, request=info.context), info
)
def resolve_timetable_rooms(self, info, **kwargs):
return get_rooms(info.context.user)
return graphene_django_optimizer.query(get_rooms(info.context.user), info)
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,
......
......@@ -37,7 +37,6 @@ def build_substitutions_list(wanted_day: date) -> tuple[list[dict], set[Person],
params={"amending": True},
with_reference_object=True,
)
print(supervision_events)
for supervision_event in supervision_events:
affected_teachers.update(supervision_event["REFERENCE_OBJECT"].teachers.all())
......
......@@ -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"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment