コード例 #1
0
    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
コード例 #2
0
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)
コード例 #3
0
ファイル: views.py プロジェクト: ElvinEga/djangousersbackend
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)
コード例 #4
0
ファイル: views.py プロジェクト: jiadongy/ebeirui-django
    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
                })