28 lines
883 B
Python
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
|
|
]
|