Esempio n. 1
0
    def post(self, request, grade_id, skill_id, format=None):
        skills = Skill.objects.filter(grade__id=grade_id)
        skill = skills.get(id_in_grade=skill_id)

        exercise = Exercise.objects.get(skill=skill, id=request.data.get('id'))

        serializer = ExerciseAnswerSerializer(exercise, data=request.data)

        if serializer.is_valid():
            # Save exercise record
            record = ExerciseRecord(exercise=exercise,
                                    user=request.user.profile)

            string_answer = request.data.get('answer')
            list_answer = string_answer.split('|')

            if self.check_correct_answer(request, exercise):
                record.score = 10
                record.save()
                for _answer in list_answer:
                    user_answer = UserAnswerRecord(exercise_record=record,
                                                   answer=_answer)
                    user_answer.save()
                return Response(True)
            else:
                record.score = 0
                record.save()
                for _answer in list_answer:
                    user_answer = UserAnswerRecord(exercise_record=record,
                                                   answer=_answer)
                    user_answer.save()
                return Response(False)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Esempio n. 2
0
    def post(self, request, grade_id, skill_id, format=None):
        skills = Skill.objects.filter(grade__id=grade_id)
        skill = skills.get(id_in_grade=skill_id)

        exercise = Exercise.objects.get(skill=skill, id=request.data.get('id'))

        serializer = ExerciseAnswerSerializer(exercise, data=request.data)

        if serializer.is_valid():
            # Save exercise record
            record = ExerciseRecord(
                exercise=exercise,
                user=request.user.profile
            )

            string_answer = request.data.get('answer')
            list_answer = string_answer.split('|')

            if self.check_correct_answer(request, exercise):
                record.score = 10
                record.save()
                for _answer in list_answer:
                    user_answer = UserAnswerRecord(
                        exercise_record=record,
                        answer=_answer
                    )
                    user_answer.save()
                return Response(True)
            else:
                record.score = 0
                record.save()
                for _answer in list_answer:
                    user_answer = UserAnswerRecord(
                        exercise_record=record,
                        answer=_answer
                    )
                    user_answer.save()
                return Response(False)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)