from rest_framework import serializers from vbv_lernwelt.course_session.models import ( CourseSessionAssignment, CourseSessionAttendanceCourse, CourseSessionEdoniqTest, ) class CourseSessionAttendanceCourseSerializer(serializers.ModelSerializer): start = serializers.SerializerMethodField() end = serializers.SerializerMethodField() circle_title = serializers.SerializerMethodField() class Meta: model = CourseSessionAttendanceCourse fields = [ "id", "course_session", "learning_content_id", "due_date_id", "location", "trainer", "start", "end", "circle_title", ] def get_start(self, obj): return obj.due_date.start def get_end(self, obj): return obj.due_date.end def get_circle_title(self, obj): circle = obj.get_circle() if circle: return circle.title return "" class CourseSessionAssignmentSerializer(serializers.ModelSerializer): submission_deadline_start = serializers.SerializerMethodField() evaluation_deadline_start = serializers.SerializerMethodField() class Meta: model = CourseSessionAssignment fields = [ "id", "course_session_id", "learning_content_id", "submission_deadline_id", "submission_deadline_start", "evaluation_deadline_id", "evaluation_deadline_start", ] def get_evaluation_deadline_start(self, obj): if obj.evaluation_deadline: return obj.evaluation_deadline.start def get_submission_deadline_start(self, obj): if obj.submission_deadline: return obj.submission_deadline.start class CourseSessionEdoniqTestSerializer(serializers.ModelSerializer): deadline_start = serializers.SerializerMethodField() class Meta: model = CourseSessionEdoniqTest fields = [ "id", "course_session_id", "learning_content_id", "deadline_id", "deadline_start", ] def get_deadline_start(self, obj): if obj.deadline: return obj.deadline.start