diff --git a/apps/quiz/serializers/quiz.py b/apps/quiz/serializers/quiz.py index 6ca1eea..2a9a133 100644 --- a/apps/quiz/serializers/quiz.py +++ b/apps/quiz/serializers/quiz.py @@ -10,11 +10,12 @@ from apps.course.models import Lesson, Participant class QuizListSerializer(serializers.ModelSerializer): + is_complated = serializers.SerializerMethodField() permission = serializers.SerializerMethodField() class Meta: model = Quiz - fields = ['id', 'title', 'description', 'permission', 'each_question_timing',] + fields = ['id', 'title', 'description', 'permission', 'each_question_timing', 'is_complated'] def get_permission(self, obj): request = self.context.get('request') @@ -35,6 +36,14 @@ class QuizListSerializer(serializers.ModelSerializer): """Helper method to check if a student is a participant in the given course.""" return Participant.objects.filter(student=student, course=course).exists() + def get_is_complated(self, obj): + request = self.context.get('request') + if not request or not request.user.is_authenticated: + return False + user = request.user + return QuizParticipant.objects.filter(user=user, quiz=obj).exists() + + @@ -71,5 +80,3 @@ class QuizSerializer(serializers.ModelSerializer): user = request.user participated = QuizParticipant.objects.filter(user=user, quiz=obj).exists() return not participated - -