def post(self, request, exam_id, format=None): exam = Exam.objects.get(id=exam_id) score = 0 serializer = ExamRecordSerializer(exam, data=request.data) if serializer.is_valid(): for exercise in exam.exercises.all(): for s in request.data.getlist('exercises'): json_object = re.sub('\'', '\"', s) _exercise = json.loads(json_object) if _exercise.get('id') == exercise.id: if self.check_correct_answer(_exercise, exercise): score += 1 else: score += 0 # Save exam record record = ExamRecord( exam=exam, user=request.user.profile, done_time=request.data.get('done_time'), score=score ) record.save() return Response(score) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, exam_id, format=None): exam = Exam.objects.get(id=exam_id) score = 0 serializer = ExamAnswerSerializer(exam, data=request.data) try: exam_record = ExamRecord.objects.get( exam=exam, user=request.user.profile ) except ExamRecord.DoesNotExist: exam_record = ExamRecord( exam=exam, user=request.user.profile ) exam_record.save() if serializer.is_valid(): for exercise in exam.exercises.all(): _exercises = request.data.get('exercises').split('&') for string in _exercises: id = string.split('|', 1)[0] _exercise = string.split('|', 1)[1] if id == str(exercise.id): if self.check_correct_answer(_exercise, exercise): exercise_score = 1 else: exercise_score = 0 score += exercise_score exercise_record = ExerciseRecord( exercise=exercise, exam_record=exam_record, user=request.user.profile, score=exercise_score ) exercise_record.save() for answer in _exercise.split('|'): user_answer_record = UserAnswerRecord( exercise_record=exercise_record, answer=answer ) user_answer_record.save() # Save exam record exam_record.done_time = request.data.get('done_time') exam_record.score = score exam_record.save() return Response(score) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, exam_id, format=None): exam = Exam.objects.get(id=exam_id) score = 0 serializer = ExamAnswerSerializer(exam, data=request.data) try: exam_record = ExamRecord.objects.get(exam=exam, user=request.user.profile) except ExamRecord.DoesNotExist: exam_record = ExamRecord(exam=exam, user=request.user.profile) exam_record.save() if serializer.is_valid(): for exercise in exam.exercises.all(): _exercises = request.data.get('exercises').split('&') for string in _exercises: id = string.split('|', 1)[0] _exercise = string.split('|', 1)[1] if id == str(exercise.id): if self.check_correct_answer(_exercise, exercise): exercise_score = 1 else: exercise_score = 0 score += exercise_score exercise_record = ExerciseRecord( exercise=exercise, exam_record=exam_record, user=request.user.profile, score=exercise_score) exercise_record.save() for answer in _exercise.split('|'): user_answer_record = UserAnswerRecord( exercise_record=exercise_record, answer=answer) user_answer_record.save() # Save exam record exam_record.done_time = request.data.get('done_time') exam_record.score = score exam_record.save() return Response(score) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)