fix: cockpit type for supervisor

This commit is contained in:
Livio Bieri 2023-12-14 11:48:01 +01:00
parent 368ef7d16e
commit 49f2c68889
2 changed files with 26 additions and 0 deletions

View File

@ -8,6 +8,7 @@ from vbv_lernwelt.course.creators.test_utils import (
create_user,
)
from vbv_lernwelt.course.models import CourseSessionUser
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
from vbv_lernwelt.learning_mentor.models import LearningMentor
@ -57,3 +58,23 @@ class MeUserViewTest(APITestCase):
# THEN
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEquals(response.data["type"], "expert")
def test_supervisor_cockpit(self):
# GIVEN
self.client.force_login(self.user)
course_session = create_course_session(course=self.course, title="Test Session")
csg = CourseSessionGroup.objects.create(
name="Test Group",
course=course_session.course,
)
csg.course_session.add(course_session)
csg.supervisor.add(self.user)
# WHEN
response = self.client.get(self.url)
# THEN
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEquals(response.data["type"], "expert")

View File

@ -5,6 +5,7 @@ from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from vbv_lernwelt.course.models import Course, CourseSessionUser
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
from vbv_lernwelt.learning_mentor.models import LearningMentor
@ -23,5 +24,9 @@ def get_cockpit_type(request, course_id: int):
role=CourseSessionUser.Role.EXPERT,
).exists():
cockpit_type = "expert"
elif CourseSessionGroup.objects.filter(
course_session__course=course, supervisor=request.user
).exists():
cockpit_type = "expert"
return Response({"type": cockpit_type})