quiz/views.py
changeset 16 ad51f38d0339
parent 15 99af908a4174
child 17 68c2932660b7
--- 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))
+