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' })
def test_form_can_accept_unicode_characters(self): form = AnswerQuestionForm(data={ 'content': 'Отговор' }) self.assertTrue(form.is_valid()) self.assertEqual(form.clean(), { 'content': 'Отговор' })
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))
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
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())
def test_answer_text_more_than_max_length(self): form = AnswerQuestionForm(data={ 'content': 'A'*1026 }) self.assertFalse(form.is_valid()) self.assertEqual(form.clean(), {})