|
|
@ -63,6 +63,11 @@ class AdminQuizListSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminQuizDetailSerializer(serializers.ModelSerializer): |
|
|
class AdminQuizDetailSerializer(serializers.ModelSerializer): |
|
|
|
|
|
questions_count = serializers.SerializerMethodField() |
|
|
|
|
|
participants_count = serializers.SerializerMethodField() |
|
|
|
|
|
course_title = serializers.SerializerMethodField() |
|
|
|
|
|
lesson_title = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
class Meta: |
|
|
class Meta: |
|
|
model = Quiz |
|
|
model = Quiz |
|
|
fields = [ |
|
|
fields = [ |
|
|
@ -72,9 +77,27 @@ class AdminQuizDetailSerializer(serializers.ModelSerializer): |
|
|
'each_question_timing', |
|
|
'each_question_timing', |
|
|
'status', |
|
|
'status', |
|
|
'course', |
|
|
'course', |
|
|
'lesson' |
|
|
|
|
|
|
|
|
'course_title', |
|
|
|
|
|
'lesson', |
|
|
|
|
|
'lesson_title', |
|
|
|
|
|
'questions_count', |
|
|
|
|
|
'participants_count' |
|
|
] |
|
|
] |
|
|
read_only_fields = ['course'] # Set automatically on save based on lesson.course |
|
|
|
|
|
|
|
|
read_only_fields = ['course', 'course_title', 'lesson_title', 'questions_count', 'participants_count'] |
|
|
|
|
|
|
|
|
|
|
|
def get_questions_count(self, obj): |
|
|
|
|
|
return obj.questions.count() |
|
|
|
|
|
|
|
|
|
|
|
def get_participants_count(self, obj): |
|
|
|
|
|
return obj.participants.count() |
|
|
|
|
|
|
|
|
|
|
|
def get_course_title(self, obj): |
|
|
|
|
|
return obj.course.title if obj.course else None |
|
|
|
|
|
|
|
|
|
|
|
def get_lesson_title(self, obj): |
|
|
|
|
|
if not obj.lesson: |
|
|
|
|
|
return None |
|
|
|
|
|
return obj.lesson.title or (obj.lesson.lesson.title if obj.lesson.lesson else None) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminQuestionSerializer(serializers.ModelSerializer): |
|
|
class AdminQuestionSerializer(serializers.ModelSerializer): |
|
|
|