import graphene from vbv_lernwelt.course.models import Course, CourseSessionUser from vbv_lernwelt.dashboard.graphql.types.attendance 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) for course in courses ]