Add duedate to API
This commit is contained in:
parent
f05d7b2279
commit
cda7ae07a8
|
|
@ -7,6 +7,8 @@ from vbv_lernwelt.course.models import (
|
|||
CourseCompletion,
|
||||
CourseSession,
|
||||
)
|
||||
from vbv_lernwelt.duedate.models import DueDate
|
||||
from vbv_lernwelt.duedate.serializers import DueDateSerializer
|
||||
|
||||
|
||||
class CourseSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -50,6 +52,7 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
|||
competence_url = serializers.SerializerMethodField()
|
||||
media_library_url = serializers.SerializerMethodField()
|
||||
documents = serializers.SerializerMethodField()
|
||||
duedates = serializers.SerializerMethodField()
|
||||
|
||||
def get_course(self, obj):
|
||||
return CourseSerializer(obj.course).data
|
||||
|
|
@ -75,6 +78,11 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
|||
)
|
||||
return CircleDocumentSerializer(documents, many=True).data
|
||||
|
||||
def get_duedates(self, obj):
|
||||
# TODO: Filter by user / userrole
|
||||
duedates = DueDate.objects.filter(course_session=obj)
|
||||
return DueDateSerializer(duedates, many=True).data
|
||||
|
||||
class Meta:
|
||||
model = CourseSession
|
||||
fields = [
|
||||
|
|
@ -94,6 +102,7 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
|||
"media_library_url",
|
||||
"course_url",
|
||||
"documents",
|
||||
"duedates"
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ from vbv_lernwelt.core.models import User
|
|||
from vbv_lernwelt.course.consts import COURSE_TEST_ID
|
||||
from vbv_lernwelt.course.creators.test_course import create_test_course
|
||||
from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
|
||||
from vbv_lernwelt.duedate.factories import DueDateFactory
|
||||
|
||||
|
||||
class CourseCompletionApiTestCase(APITestCase):
|
||||
|
|
@ -20,6 +21,7 @@ class CourseCompletionApiTestCase(APITestCase):
|
|||
course_id=COURSE_TEST_ID,
|
||||
title="Test Lehrgang Session",
|
||||
)
|
||||
DueDateFactory(course_session=self.course_session)
|
||||
|
||||
self.client.login(username="student", password="test")
|
||||
|
||||
|
|
@ -51,3 +53,4 @@ class CourseCompletionApiTestCase(APITestCase):
|
|||
|
||||
print(json.dumps(response.json(), indent=4))
|
||||
self.assertEqual(response.json()[0]["id"], self.course_session.id)
|
||||
self.assertNotEquals(response.json()[0]["duedates"], [])
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from vbv_lernwelt.duedate.models import DueDate
|
||||
|
||||
|
||||
class DueDateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = DueDate
|
||||
fields = '__all__'
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
from django.test import TestCase
|
||||
|
||||
from vbv_lernwelt.duedate.factories import DueDateFactory
|
||||
from vbv_lernwelt.duedate.models import DueDate
|
||||
from vbv_lernwelt.duedate.serializers import DueDateSerializer
|
||||
|
||||
|
||||
class TestDueDatetSerializer(TestCase):
|
||||
def test_duedate_serializer(self):
|
||||
DueDateFactory()
|
||||
assert DueDate.objects.count() == 1
|
||||
|
||||
duedates = DueDate.objects.all()
|
||||
result = DueDateSerializer(duedates, many=True).data
|
||||
assert result[0]['title'] == 'Prüfung Versicherungsvermittler/-in'
|
||||
Loading…
Reference in New Issue