from rest_framework.decorators import api_view from rest_framework.generics import get_object_or_404 from rest_framework.response import Response from vbv_lernwelt.core.serializers import UserSerializer from vbv_lernwelt.course.models import CourseSession from vbv_lernwelt.learning_mentor.content.praxis_assignment import ( get_praxis_assignments, ) from vbv_lernwelt.learning_mentor.models import LearningMentor from vbv_lernwelt.learning_mentor.serializers import PraxisAssignmentStatusSerializer @api_view(["GET"]) def mentor_summary(request, course_session_id: int): if not request.user.is_authenticated: return Response(status=403) if request.method == "GET": course_session = CourseSession.objects.get(id=course_session_id) mentor = get_object_or_404( LearningMentor, mentor=request.user, course=course_session.course ) participants = mentor.participants.filter(course_session=course_session) users = [p.user for p in participants] praxis_assignments = get_praxis_assignments(course_session, users) return Response( { "participants": [UserSerializer(user).data for user in users], "praxis_assignments": PraxisAssignmentStatusSerializer( praxis_assignments, many=True ).data, } )