Ejemplo n.º 1
0
 def test_valid_form(self):
     form = AnswerQuestionForm(data={
         'content': 'A cool answer'
     })
     self.assertTrue(form.is_valid())
     self.assertEqual(form.clean(), {
         'content': 'A cool answer'
     })
Ejemplo n.º 2
0
 def test_form_can_accept_unicode_characters(self):
     form = AnswerQuestionForm(data={
         'content': 'Отговор'
     })
     self.assertTrue(form.is_valid())
     self.assertEqual(form.clean(), {
         'content': 'Отговор'
     })
Ejemplo n.º 3
0
def answer_view(request, id):
    question = get_object_or_404(MPTTComment, id=id)

    if request.method == "POST":
        post_data = request.POST.copy()
        form = AnswerQuestionForm(request, question, data=post_data)
        if form.is_valid():
            answer = form.get_comment_object()
            answer.full_clean()
            answer.save()
            return HttpResponseRedirect(question.get_absolute_url())
    else:
        form = AnswerQuestionForm(request, question)

    context = {
        'question': question,
        'form': form,
    }
    return render_to_response('answer_question.html', context, context_instance=RequestContext(request))
Ejemplo n.º 4
0
    def get_context_data(self, **kwargs):
        """
        Insert discipline, session and form into exercises list context data.
        """

        irat_datetime, grat_datetime = get_datetimes(self.get_session())

        context = super(ExerciseListView, self).get_context_data(**kwargs)
        context['irat_datetime'] = irat_datetime
        context['grat_datetime'] = grat_datetime
        context['discipline'] = self.get_discipline()
        context['session'] = self.get_session()
        context['form'] = ExerciseForm()
        context['submission'] = self.get_student_question_submissions()
        context['form1'] = AnswerQuestionForm(prefix="alternative01")
        context['form2'] = AnswerQuestionForm(prefix="alternative02")
        context['form3'] = AnswerQuestionForm(prefix="alternative03")
        context['form4'] = AnswerQuestionForm(prefix="alternative04")

        return context
Ejemplo n.º 5
0
def answer_question(request, question_id):
    question = get_object_or_404(
        Question, pk=question_id)  # Question.objects.get(pk=question_id)
    if question.asked_to != request.user:
        return HttpResponseForbidden('Not allowed!')
    form = AnswerQuestionForm(request.POST or None)
    if form.is_valid():
        answer = form.save(commit=False)
        answer.question = question
        answer.save()
        form.save_m2m()
        messages.success(request, 'Answer saved!')
        return redirect('inbox')
    return render(request,
                  "questions/answer_question.html",
                  context={
                      "form": form,
                      "question": question
                  })
    def post(self, request, *args, **kwargs):
        """
        Form to insert scores and answer question.
        """

        question = self.get_object()

        form1 = AnswerQuestionForm(request.POST, prefix="alternative01")
        form2 = AnswerQuestionForm(request.POST, prefix="alternative02")
        form3 = AnswerQuestionForm(request.POST, prefix="alternative03")
        form4 = AnswerQuestionForm(request.POST, prefix="alternative04")

        self.validate_input([form1, form2, form3, form4])

        if form1.is_valid() and \
           form2.is_valid() and \
           form3.is_valid() and \
           form4.is_valid():

            score = self.get_question_score(question=question,
                                            forms=[form1, form2, form3, form4])

            scores = self.get_form_scores(forms=[form1, form2, form3, form4])

            success = self.validate_answer(scores, question)

            correct_alternative = None
            for alternative in question.alternatives.all():
                if alternative.is_correct:
                    correct_alternative = alternative

            if success:
                messages.success(self.request,
                                 _("Question answered successfully."))

                IRATSubmission.objects.create(
                    session=self.get_session(),
                    user=self.request.user,
                    question=question,
                    correct_alternative=correct_alternative.title,
                    score=score)

        return redirect(self.get_success_url())
Ejemplo n.º 7
0
 def test_answer_text_more_than_max_length(self):
     form = AnswerQuestionForm(data={
         'content': 'A'*1026
     })
     self.assertFalse(form.is_valid())
     self.assertEqual(form.clean(), {})