author | nishanth |
Tue, 20 Apr 2010 19:20:15 +0530 | |
changeset 15 | 99af908a4174 |
parent 14 | ea7d372bfbff |
child 16 | ad51f38d0339 |
permissions | -rw-r--r-- |
12 | 1 |
from django.db import IntegrityError |
2 |
||
14
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
3 |
from django.http import Http404 |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
4 |
|
12 | 5 |
from django.contrib.auth.models import User |
6 |
from django.contrib.auth import login, logout, authenticate |
|
7 |
||
8 |
from django.shortcuts import redirect, render_to_response |
|
9 |
||
14
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
10 |
from offline.event.models import Event |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
11 |
|
12 | 12 |
from offline.quiz.utils import gen_key |
13 |
from offline.quiz.models import Profile |
|
14 |
||
15 |
from offline.quiz.forms import UserRegisterForm |
|
16 |
||
17 |
def start_page(request): |
|
18 |
""" first see if user is authenticated. |
|
19 |
If he is, redirect to the page where quiz happens. |
|
20 |
Else register the user |
|
21 |
""" |
|
22 |
||
14
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
23 |
try: |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
24 |
event = Event.objects.all()[0] |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
25 |
except IndexError: |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
26 |
raise Http404 |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
27 |
|
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
28 |
if event.quiz_status == '00': |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
29 |
raise Http404 |
ea7d372bfbff
implemented more constraints on the register for test page
nishanth
parents:
13
diff
changeset
|
30 |
|
12 | 31 |
user = request.user |
32 |
if user.is_authenticated(): |
|
33 |
return redirect("/quiz/start/%s"%user.username) |
|
34 |
||
35 |
if request.method == "POST": |
|
36 |
form = UserRegisterForm(request.POST) |
|
37 |
if form.is_valid(): |
|
38 |
data = form.cleaned_data |
|
39 |
||
40 |
while True: |
|
41 |
try: |
|
42 |
username = gen_key(20) |
|
43 |
new_user = User.objects.create_user(username, "temp@temp.com", "123") |
|
44 |
break |
|
45 |
except IntegrityError: |
|
46 |
pass |
|
47 |
||
48 |
new_user.first_name = data['first_name'] |
|
49 |
new_user.last_name = data['last_name'] |
|
50 |
new_user.save() |
|
51 |
||
52 |
new_profile = Profile(user=new_user) |
|
53 |
new_profile.profession = data['profession'] |
|
54 |
new_profile.affiliated_to = data['affiliated_to'] |
|
55 |
new_profile.save() |
|
56 |
||
57 |
user = authenticate(username=username, password="123") |
|
58 |
login(request, user) |
|
59 |
return redirect("/quiz/start/%s"%username) |
|
60 |
||
61 |
else: |
|
62 |
return render_to_response('register.html',{'form':form}) |
|
63 |
else: |
|
64 |
form = UserRegisterForm() |
|
65 |
return render_to_response('register.html',{'form':form}) |
|
66 |
||
67 |
def start_quiz(request, username): |
|
15 | 68 |
""" get the user by his username. |
69 |
then check for the event quiz status |
|
70 |
then check if his ip has finished the quiz |
|
71 |
then make his quiz paper and redirect to the right question. |
|
72 |
""" |
|
73 |
||
74 |
user = repuest.user |
|
75 |
if not user.username == username: |
|
76 |
raise Http404 |
|
77 |
||
78 |
try: |
|
79 |
event = Event.objects.all()[0] |
|
80 |
except IndexError: |
|
81 |
raise Http404 |
|
82 |
||
83 |
if event.quiz_status == "00": |
|
84 |
raise Http404 |
|
85 |
||
86 |
||
87 |