vbv/server/vbv_lernwelt/dashboard/graphql/queries.py

28 lines
883 B
Python

import graphene
from vbv_lernwelt.course.models import Course, CourseSessionUser
from vbv_lernwelt.dashboard.graphql.types.dashboard import CourseDashboardType
class DashboardQuery(graphene.ObjectType):
course_dashboard = graphene.List(
CourseDashboardType, course_id=graphene.ID(required=False)
)
def resolve_course_dashboard(root, info, course_id: str | None = None):
user = info.context.user
query = Course.objects.filter(
coursesession__coursesessionuser__user=user,
coursesession__coursesessionuser__role=CourseSessionUser.Role.SESSION_SUPERVISOR,
)
if course_id:
query = query.filter(id=course_id)
courses = query.distinct()
return [
CourseDashboardType(course_id=course.id, course_title=course.title) # noqa
for course in courses
]