def test_quiz_completed_datetime_set_on_save(self): quiz_form = QuizForm(blank_answers=self.quiz_result.answers.all(), data=self.data) quiz_form.is_valid() self.assertEqual(None, self.quiz_result.completed) quiz_form.save(self.quiz_result) self.assertNotEqual(None, self.quiz_result.completed)
def create_quiz(request): if request.method == 'POST': form = QuizForm(request.POST or None) if form.is_valid(): form.save() return redirect('quiz:quiz-detail', form.instance.id) else: form = QuizForm() context = {'form': form} return render(request, 'quiz/create-quiz.html', context)
def test_questions_marked_as_answered_on_save(self): quiz_form = QuizForm(blank_answers=self.quiz_result.answers.all(), data=self.data) quiz_form.is_valid() quiz_form.save(self.quiz_result) # Note: an unanswered question is represented by None answers = self.quiz_result.answers.all() for answer in answers: self.assertNotEqual(None, answer.correct)
def index(request): add_form = QuizForm() new_form = '' if request.method == 'POST': new_form = QuizForm(request.POST) if new_form.is_valid(): new_form.save(commit=True) else: print('ERROR FORM INVALID') return render(request, 'quiz/home.html', {'add_form': add_form})
def add_quiz(request): if request.method == 'POST': form = QuizForm(request.POST) if form.is_valid(): quiz = form.save() return redirect('quiz:add_question', quiz.id) else: form = QuizForm() return render(request, 'quiz/add_quiz.html', {'form': form})
def quiz_update(request, quiz_id): """ update the quiz, given its id. """ quiz = Quiz.objects.get(id=quiz_id) if request.method == "POST": quiz_form = QuizForm(request.POST, request.FILES, instance=quiz) quiz_form.is_update = True if quiz_form.is_valid(): quiz_form.save() return HttpResponseRedirect(reverse("quiz.views.quiz_update", args=[quiz_id])) else: quiz_form = QuizForm(instance=quiz) return render_to_response("quiz/update_quiz.html", { "quiz_form": quiz_form, "quizobj": quiz, "selected_button" : "details", }, context_instance=RequestContext(request)) #generic case return render_to_response("quiz/update_quiz.html", { "quiz_form": quiz_form, "selected_button" : "details", }, context_instance=RequestContext(request))
def quiz_update(request, quiz_id=None, template='quiz/quiz_form.html'): """ update the quiz, given its quiz-id; and the owner. if quiz is not found, throws 404. """ """ @todo: done: you can update only a test which you can actually own. todo : admin should also be able to edit any piece of data. """ quiz = get_object_or_404(Quiz, id=quiz_id, owner=request.user,) quiz_form = QuizForm(instance=quiz) if request.method == "POST": quiz_form = QuizForm(request.POST, instance=quiz) if quiz_form.is_valid(): quiz_form.save() request.user.message_set.create(message="the quiz succesfully updated. yeah! edited.") return HttpResponseRedirect(reverse("quiz.views.quiz_update", args=[quiz_id])) return render_to_response(template, { "quizobj": quiz, # @todo: must be overridden in the manager. "questions" : quiz.quiz_questions.all().order_by('number'), "quiz_form": quiz_form, "pagetitle" : "Update Test", "selected_button" : "details", }, context_instance=RequestContext(request))
def quiz(request, quiz_result_id): # Fetch quiz results if they exist and redirect if it has already been taken. quiz_result = get_object_or_404(QuizResult, id=quiz_result_id) if quiz_result.completed: messages.error(request, "This quiz has already been completed") return redirect(reverse('home')) # Fetch all the blank questions/answers for this quiz, and build the QuizForm # based on them. blank_answers = quiz_result.answers.all().order_by('id') if request.method == 'POST': form = QuizForm(blank_answers=blank_answers, data=request.POST) if form.is_valid(): form.save(quiz_result) messages.success(request, "Thank you for taking the '{0}' quiz!".format(quiz_result.quiz.name)) return redirect(reverse('home')) else: form = QuizForm(blank_answers=blank_answers) return render_to_response('quiz/quiz.html', { 'form': form }, context_instance=RequestContext(request))
def quiz_create(request, quiz_id=None, template='quiz/quiz_form.html'): """ returns a template to create a new quiz. """ quiz_form = QuizForm() if request.method == "POST": quiz_form = QuizForm(request.POST) if quiz_form.is_valid(): quiz = quiz_form.save(commit=False) quiz.addOwner(request.user).save() request.user.message_set.create(message="the quiz is successfully created. yeppie! add questions now :D") return HttpResponseRedirect(reverse('quiz.views.question_create', args=[quiz.id])) return render_to_response(template, { "quiz_form" : quiz_form, "selected_button" : "details", "pagetitle" : "Make Test", }, context_instance=RequestContext(request))
def quiz_create(request): """ returns a template to create a new quiz. """ if request.method == "POST": quiz_form = QuizForm(request.POST, request.FILES) if quiz_form.is_valid(): new_quiz = quiz_form.save(commit=False) new_quiz.save() return HttpResponseRedirect(reverse("quiz.views.question_new", args=[new_quiz.id])) #GET Request else: quiz_form = QuizForm() return render_to_response('quiz/create_quiz.html', { "quiz_form" : quiz_form, "selected_button" : "details", }, context_instance=RequestContext(request)) return render_to_response('quiz/create_quiz.html', { "quiz_form" : quiz_form, "selected_button" : "details", }, context_instance=RequestContext(request))