Exemple #1
0
def index(request):
    if request.method == 'POST':

        form = QuizForm(request.POST)
        if form.is_valid():  # TODO: Errors must be handled
            _id = form.cleaned_data["categories"]

            _category = Category.objects.get(
                id=_id)  # TODO: cleaned data must be used
            number_of_questions = 6
            _questions = _category.get_random_questions(number_of_questions)
            if len(_questions) == 0:
                form = QuizForm(request.POST)
                context_data = {
                    'form': form,
                    'error_message': "سوالی در این موضوع وجود ندارد"
                }
                return render(request, "quiz_index.html", context_data)
            print "random questions:"
            print _questions

            quiz = Quiz(category=_category)
            user1 = User.objects.get(username=request.user)
            quiz.set_user1(user1)
            user2 = User.objects.order_by('?').first()
            while user2 == user1:
                user2 = User.objects.order_by('?').first()
            quiz.set_user2(user2)
            quiz.save()

            quiz.questions = _questions
            quiz.save()

            print quiz.questions.all()

            #for question in _questions:
            # print "question to be added: "
            # print question.question
            #    quiz.add_question(question)

            #quiz.save()
            # print "quiz questions:" + str(quiz.questions)
            # print "quiz id: " + str(quiz.id)

            print user2.email
            email = EmailMessage('new Challenge',
                                 'quizdown.ir/quiz/start?quiz_id=' +
                                 ` quiz.id `,
                                 to=[user2.email])
            email.send()

            request.session['_quiz_id'] = json.dumps(quiz.id)
            request.session['question_index'] = 0
            request.session.save()
            request.session.modified = True
            return redirect('/quiz/start/')
            # start(None, quiz.id)

    # if a GET (or any other method) we'll create a blank form
    else:
        form = QuizForm(request.POST)
        context_data = {'form': form}
        return render(request, "quiz_index.html", context_data)