def create_evaluation(self, form_dict): evaluator = form_dict["demographics"].save(commit=False) evaluator.email = form_dict["email"].cleaned_data.get("email", None) evaluator.save() started = arrow.get( dict(self.storage.get_step_data("start"))["first_open"]) first_continue = arrow.get( dict(self.storage.get_step_data("start"))["answered"]) evaluation = Evaluation(platform=self.platform, evaluator=evaluator, started=started.datetime, first_continue=first_continue.datetime) evaluation.save() for i, question in enumerate(self.platform.questions.all()): step = "q_%s" % i answer = form_dict[step].save(commit=False) answer.evaluation = evaluation answer.question = question answer.answer_time = arrow.get( dict(self.storage.get_step_data(step))["answered"]).datetime answer.save() return evaluation
def create_evaluation(request): """ Endpoint: /users/create_user/ Method: POST Allowed users: All user Response status code: 201 created Description: admin can create users of a """ # if not request.user.has_perm('users.add_user'): # return Response({'error': 'can not create user'}, status=status.HTTP_403_FORBIDDEN) evaluation_details = request.data lecturer = User.objects.get(id=evaluation_details['lecturer_id']) student = User.objects.get(id=evaluation_details['student_id']) #unit = Unit.objects.get(id=evaluation_details['unit_id']) eval = Evaluation( lecturer_id=lecturer, student_id=student, # unit_id=unit, ) eval.save() eval_details = {} eval_details['evaluation_id'] = eval.id question_details = request.data['questions'] for que_details in question_details: evaluation = Evaluation.objects.get(id=eval.id) que = Question(question=que_details['question'], category=que_details['category'], evaluation_id=evaluation, rating=que_details['rating']) que.save() return Response({'success': "Evaluation successfully"}, status=status.HTTP_201_CREATED)
def create_evaluation(request): """ Endpoint: /users/create_user/ Method: POST Allowed users: All user Response status code: 201 created Description: admin can create users of a """ # if not request.user.has_perm('users.add_user'): # return Response({'error': 'can not create user'}, status=status.HTTP_403_FORBIDDEN) evaluation_details = request.data eval = Evaluation( lec_id=evaluation_details['lec_id'], student_id=evaluation_details['stud_id'], ) eval.save() eval_details = {} eval_details['evaluation_id'] = eval.id # return Response({'success': "user added successfully"}, status=status.HTTP_201_CREATED) return Response(eval_details, status=status.HTTP_201_CREATED)
def post(request): email = request.POST.get("email", "") answers = request.POST.get("answers", []) answer_list = answers.split("#")[:-1] green, yellow, blue, red = 0, 0, 0, 0 for i in range(len(answer_list)): xg_instance = Evaluation() xg_instance.exam_index = 1 xg_instance.email = email xg_instance.question_index = i + 1 xg_instance.answer_index = answer_list[i] xg_instance.date = datetime.datetime.now().strftime( '%Y-%m-%d %H:%M:%S') xg_instance.save() if i <= 14: if answer_list[i] == '1': green += 1 elif answer_list[i] == '2': yellow += 1 elif answer_list[i] == '3': blue += 1 else: red += 1 else: if answer_list[i] == '1': red += 1 elif answer_list[i] == '2': blue += 1 elif answer_list[i] == '3': yellow += 1 else: green += 1 score_list = [green, yellow, blue, red] max_score = max(score_list) max_index = score_list.index(max(score_list)) if max_score < 9: return render(request, "evaluation/xg-complex-result.html", {}) else: if max_index == 0: result_colour = constants.PERSONALITY[0][0] result_tags = constants.PERSONALITY[0][1] result_comment = constants.PERSONALITY[0][2] result_br = constants.PERSONALITY[0][3] if max_index == 1: result_colour = constants.PERSONALITY[1][0] result_tags = constants.PERSONALITY[1][1] result_comment = constants.PERSONALITY[1][2] result_br = constants.PERSONALITY[1][3] if max_index == 2: result_colour = constants.PERSONALITY[2][0] result_tags = constants.PERSONALITY[2][1] result_comment = constants.PERSONALITY[2][2] result_br = constants.PERSONALITY[2][3] if max_index == 3: result_colour = constants.PERSONALITY[3][0] result_tags = constants.PERSONALITY[3][1] result_comment = constants.PERSONALITY[3][2] result_br = constants.PERSONALITY[3][3] return render( request, "evaluation/xg-result.html", { "result_colour": result_colour, "result_tags": result_tags, "result_comment": result_comment.splitlines(), "result_br": result_br })