diff -r 99af908a4174 -r ad51f38d0339 quiz/views.py --- a/quiz/views.py Tue Apr 20 19:20:15 2010 +0530 +++ b/quiz/views.py Tue Apr 20 21:06:54 2010 +0530 @@ -1,5 +1,6 @@ +import random + from django.db import IntegrityError - from django.http import Http404 from django.contrib.auth.models import User @@ -10,8 +11,7 @@ from offline.event.models import Event from offline.quiz.utils import gen_key -from offline.quiz.models import Profile - +from offline.quiz.models import Profile, QuestionBank, Quiz from offline.quiz.forms import UserRegisterForm def start_page(request): @@ -31,6 +31,13 @@ user = request.user if user.is_authenticated(): return redirect("/quiz/start/%s"%user.username) + else: + try: + ip = request.META['REMOTE_ADDR'] + Quiz.objects.get(user_ip=ip, quiz_num=event.quiz_status) + return redirect("/quiz/complete") + except Quiz.DoesNotExist: + pass if request.method == "POST": form = UserRegisterForm(request.POST) @@ -71,7 +78,7 @@ then make his quiz paper and redirect to the right question. """ - user = repuest.user + user = request.user if not user.username == username: raise Http404 @@ -83,5 +90,18 @@ if event.quiz_status == "00": raise Http404 + try: + old_quiz = Quiz.objects.get(event=event,user=user, quiz_num=event.quiz_status) + return redirect("/quiz/answer/%s/%s"%(username,old_quiz.key)) + except Quiz.DoesNotExist: + ip = request.META['REMOTE_ADDR'] + key = gen_key(10) + new_quiz = Quiz(event=event, user=user, quiz_num=event.quiz_status, user_ip=ip, key=key) + available_que_ids = [ str(_.id) for _ in QuestionBank.objects.filter(quiz_num=event.quiz_status) ] + random.shuffle(available_que_ids) + new_quiz.que_remaining = "|".join(available_que_ids) + new_quiz.save() + return redirect("/quiz/answer/%s/%s"%(username,new_quiz.key)) +