implemented the start quiz functionality
authornishanth
Tue, 20 Apr 2010 21:06:54 +0530
changeset 16 ad51f38d0339
parent 15 99af908a4174
child 17 68c2932660b7
implemented the start quiz functionality
quiz/models.py
quiz/views.py
urls.py
--- a/quiz/models.py	Tue Apr 20 19:20:15 2010 +0530
+++ b/quiz/models.py	Tue Apr 20 21:06:54 2010 +0530
@@ -35,6 +35,7 @@
     user = models.ForeignKey(User)
     event = models.ForeignKey(Event)
     user_ip = models.CharField(max_length=15)
+    key = models.CharField(max_length=10)
     
     quiz_num = models.CharField(max_length=2)
     que_remaining = models.CharField(max_length=100)
--- 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))
+
--- a/urls.py	Tue Apr 20 19:20:15 2010 +0530
+++ b/urls.py	Tue Apr 20 21:06:54 2010 +0530
@@ -29,4 +29,5 @@
     (r'^feedback/report/(\w+)$', feed_views.view_report),
     (r'^quiz$', quiz_views.start_page),
     (r'^quiz/start/(\w+)$', quiz_views.start_quiz),
+    (r'^quiz/answer/(\w+)/(\w+)$', quiz_views.answer),
 )