Add duedate to API
This commit is contained in:
parent
f05d7b2279
commit
cda7ae07a8
|
|
@ -7,6 +7,8 @@ from vbv_lernwelt.course.models import (
|
||||||
CourseCompletion,
|
CourseCompletion,
|
||||||
CourseSession,
|
CourseSession,
|
||||||
)
|
)
|
||||||
|
from vbv_lernwelt.duedate.models import DueDate
|
||||||
|
from vbv_lernwelt.duedate.serializers import DueDateSerializer
|
||||||
|
|
||||||
|
|
||||||
class CourseSerializer(serializers.ModelSerializer):
|
class CourseSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -50,6 +52,7 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
||||||
competence_url = serializers.SerializerMethodField()
|
competence_url = serializers.SerializerMethodField()
|
||||||
media_library_url = serializers.SerializerMethodField()
|
media_library_url = serializers.SerializerMethodField()
|
||||||
documents = serializers.SerializerMethodField()
|
documents = serializers.SerializerMethodField()
|
||||||
|
duedates = serializers.SerializerMethodField()
|
||||||
|
|
||||||
def get_course(self, obj):
|
def get_course(self, obj):
|
||||||
return CourseSerializer(obj.course).data
|
return CourseSerializer(obj.course).data
|
||||||
|
|
@ -75,6 +78,11 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
||||||
)
|
)
|
||||||
return CircleDocumentSerializer(documents, many=True).data
|
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:
|
class Meta:
|
||||||
model = CourseSession
|
model = CourseSession
|
||||||
fields = [
|
fields = [
|
||||||
|
|
@ -94,6 +102,7 @@ class CourseSessionSerializer(serializers.ModelSerializer):
|
||||||
"media_library_url",
|
"media_library_url",
|
||||||
"course_url",
|
"course_url",
|
||||||
"documents",
|
"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.consts import COURSE_TEST_ID
|
||||||
from vbv_lernwelt.course.creators.test_course import create_test_course
|
from vbv_lernwelt.course.creators.test_course import create_test_course
|
||||||
from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
|
from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
|
||||||
|
from vbv_lernwelt.duedate.factories import DueDateFactory
|
||||||
|
|
||||||
|
|
||||||
class CourseCompletionApiTestCase(APITestCase):
|
class CourseCompletionApiTestCase(APITestCase):
|
||||||
|
|
@ -20,6 +21,7 @@ class CourseCompletionApiTestCase(APITestCase):
|
||||||
course_id=COURSE_TEST_ID,
|
course_id=COURSE_TEST_ID,
|
||||||
title="Test Lehrgang Session",
|
title="Test Lehrgang Session",
|
||||||
)
|
)
|
||||||
|
DueDateFactory(course_session=self.course_session)
|
||||||
|
|
||||||
self.client.login(username="student", password="test")
|
self.client.login(username="student", password="test")
|
||||||
|
|
||||||
|
|
@ -51,3 +53,4 @@ class CourseCompletionApiTestCase(APITestCase):
|
||||||
|
|
||||||
print(json.dumps(response.json(), indent=4))
|
print(json.dumps(response.json(), indent=4))
|
||||||
self.assertEqual(response.json()[0]["id"], self.course_session.id)
|
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