--- 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),
)