diff --git a/core/serializers/student.py b/core/serializers/student.py index 32f7c3790f64f7a9eae182f120d3ac81e61b0f25..2f7c070e349f32036ef86f1df41581a4f43b2e6e 100644 --- a/core/serializers/student.py +++ b/core/serializers/student.py @@ -3,7 +3,8 @@ from rest_framework import serializers from core.models import StudentInfo from core.serializers import DynamicFieldsModelSerializer, ExamSerializer from core.serializers.submission import (SubmissionListSerializer, - SubmissionNoTextFieldsSerializer) + SubmissionNoTextFieldsSerializer, + SubmissionNoTypeSerializer) class StudentInfoSerializer(DynamicFieldsModelSerializer): @@ -42,3 +43,24 @@ class StudentInfoForListViewSerializer(DynamicFieldsModelSerializer): 'matrikel_no', 'passes_exam', 'is_active') + + +class StudentExportSerializer(DynamicFieldsModelSerializer): + name = serializers.ReadOnlyField(source='user.fullname') + user = serializers.ReadOnlyField(source='user.username') + user_pk = serializers.ReadOnlyField(source='user.pk') + exam = serializers.ReadOnlyField(source='exam.pk') + is_active = serializers.BooleanField(source='user.is_active') + submissions = SubmissionNoTypeSerializer(many=True) + + class Meta: + model = StudentInfo + fields = ('pk', + 'name', + 'user', + 'user_pk', + 'exam', + 'submissions', + 'matrikel_no', + 'passes_exam', + 'is_active')