From 8752f794f4f105cd59551f76c01f4ea77c3ffd0d Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Thu, 28 May 2026 09:42:27 +0330 Subject: [PATCH] quiz details data for fist tab updated --- apps/quiz/serializers/admin.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/apps/quiz/serializers/admin.py b/apps/quiz/serializers/admin.py index d72570d..1e4f645 100644 --- a/apps/quiz/serializers/admin.py +++ b/apps/quiz/serializers/admin.py @@ -63,6 +63,11 @@ class AdminQuizListSerializer(serializers.ModelSerializer): class AdminQuizDetailSerializer(serializers.ModelSerializer): + questions_count = serializers.SerializerMethodField() + participants_count = serializers.SerializerMethodField() + course_title = serializers.SerializerMethodField() + lesson_title = serializers.SerializerMethodField() + class Meta: model = Quiz fields = [ @@ -72,9 +77,27 @@ class AdminQuizDetailSerializer(serializers.ModelSerializer): 'each_question_timing', 'status', '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):