author | nishanth |
Wed, 14 Jul 2010 10:16:53 +0530 | |
branch | anoop |
changeset 77 | 616a0357b2c9 |
parent 72 | 3673ed3ca27c |
child 79 | 064ff60025d9 |
permissions | -rw-r--r-- |
15 | 1 |
from django.shortcuts import render_to_response, redirect |
26
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
2 |
from django.http import HttpResponse |
65
0ca63c964237
now login is required for accessing stats and send_invi pages
nishanth
parents:
57
diff
changeset
|
3 |
from django.contrib.auth.decorators import login_required |
7 | 4 |
|
67 | 5 |
from django.contrib.auth import authenticate, login, logout |
6 |
||
7 | 7 |
from sage_days.sdi.models import Registrant |
67 | 8 |
from sage_days.sdi.forms import RegisterForm, SearchForm, EmailForm, LoginForm |
56 | 9 |
from sage_days.sdi.events import send_reg_complete_mail, mail_invi |
72 | 10 |
from sage_days.settings import APACHE_URL_PREFIX as aup |
7 | 11 |
|
12 |
def register(request): |
|
13 |
""" The user register page. |
|
14 |
""" |
|
15 |
||
9 | 16 |
if request.method == "POST": |
14 | 17 |
form = RegisterForm(request.POST) |
18 |
if form.is_valid(): |
|
15 | 19 |
form.save() |
53 | 20 |
|
21 |
data = form.cleaned_data |
|
22 |
first_name = data['first_name'] |
|
23 |
last_name = data['last_name'] |
|
24 |
email = data['email'] |
|
25 |
send_reg_complete_mail(email, first_name, last_name) |
|
26 |
||
26
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
27 |
return redirect("/sage_days/registration/complete") |
14 | 28 |
else: |
29 |
return render_to_response("register.html", {"form":form}) |
|
9 | 30 |
else: |
31 |
form = RegisterForm() |
|
32 |
return render_to_response("register.html", {"form":form}) |
|
22 | 33 |
|
34 |
def reg_complete(request): |
|
35 |
""" Tell the registration is successful. |
|
36 |
""" |
|
37 |
||
38 |
return render_to_response("reg_complete.html") |
|
23 | 39 |
|
65
0ca63c964237
now login is required for accessing stats and send_invi pages
nishanth
parents:
57
diff
changeset
|
40 |
@login_required |
23 | 41 |
def list_stats(request): |
42 |
""" List the statiscs of registered participants. |
|
43 |
""" |
|
44 |
||
24
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
45 |
if request.method == "POST": |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
46 |
form = SearchForm(request.POST) |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
47 |
if form.is_valid(): |
25 | 48 |
data = form.cleaned_data |
49 |
need_workshop = data['need_for_python_workshop'] |
|
77 | 50 |
acco_required = data['need_accomodation'] |
51 |
db_query = "Registrant.objects.filter(need_for_python_workshop=%s, acco_required=%s)"%(need_workshop, acco_required) |
|
25 | 52 |
|
53 |
topics_include, topics_exclude = data['topics_interested'] |
|
54 |
for number in topics_include: |
|
55 |
db_query += '.filter(topics_interested__contains="%s")'%number |
|
56 |
||
57 |
for number in topics_exclude: |
|
58 |
db_query += '.exclude(topics_interested__contains="%s")'%number |
|
59 |
||
60 |
start_python, stop_python = data['knowledge_of_python'] |
|
61 |
if start_python and stop_python: |
|
62 |
db_query += '.filter(knowledge_of_python__gte="%s")'%start_python |
|
63 |
db_query += '.filter(knowledge_of_python__lte="%s")'%stop_python |
|
64 |
elif start_python: |
|
65 |
db_query += '.filter(knowledge_of_python__exact="%s")'%start_python |
|
66 |
||
67 |
start_sage, stop_sage = data['knowledge_of_sage'] |
|
68 |
if start_sage and stop_sage: |
|
69 |
db_query += '.filter(knowledge_of_sage__gte="%s")'%start_sage |
|
70 |
db_query += '.filter(knowledge_of_sage__lte="%s")'%stop_sage |
|
71 |
elif start_sage: |
|
72 |
db_query += '.filter(knowledge_of_sage__exact="%s")'%start_sage |
|
73 |
||
74 |
start_likeliness, stop_likeliness = data['likeliness_of_attending'] |
|
75 |
if start_likeliness and stop_likeliness: |
|
76 |
db_query += '.filter(likeliness_of_attending__gte="%s")'%start_likeliness |
|
77 |
db_query += '.filter(likeliness_of_attending__lte="%s")'%stop_likeliness |
|
78 |
elif start_likeliness: |
|
79 |
db_query += '.filter(likeliness_of_attending__exact="%s")'%start_likeliness |
|
80 |
||
81 |
matches = eval(db_query) |
|
82 |
return render_to_response("list_stats.html", {"form":form, 'matches':matches}) |
|
24
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
83 |
else: |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
84 |
return render_to_response("list_stats.html", {"form":form}) |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
85 |
else: |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
86 |
form = SearchForm() |
f79be1dd4a22
added clean methods for each attribute in search form
nishanth
parents:
23
diff
changeset
|
87 |
return render_to_response("list_stats.html", {"form":form}) |
26
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
88 |
|
65
0ca63c964237
now login is required for accessing stats and send_invi pages
nishanth
parents:
57
diff
changeset
|
89 |
@login_required |
56 | 90 |
def send_invi(request): |
91 |
""" Take a list of csv email addresses and send mails to them. |
|
92 |
""" |
|
93 |
||
94 |
if request.method == "POST": |
|
95 |
form = EmailForm(request.POST) |
|
96 |
if form.is_valid(): |
|
97 |
to_emails = form.cleaned_data['emails'] |
|
98 |
mail_invi(to_emails) |
|
99 |
return render_to_response("send_invi.html", {"emails":to_emails}) |
|
100 |
else: |
|
101 |
return render_to_response("send_invi.html", {"form":form}) |
|
102 |
else: |
|
57 | 103 |
form = EmailForm() |
56 | 104 |
return render_to_response("send_invi.html", {"form":form}) |
105 |
||
67 | 106 |
def admin_login(request): |
107 |
""" basic login. |
|
108 |
""" |
|
56 | 109 |
|
72 | 110 |
redirect_url = "/%s/registration/stats"%aup |
111 |
||
112 |
user = request.user |
|
113 |
if user.is_authenticated(): |
|
114 |
return redirect(redirect_url) |
|
115 |
||
67 | 116 |
if request.method == "POST": |
117 |
form = LoginForm(request.POST) |
|
118 |
if form.is_valid(): |
|
72 | 119 |
data = form.cleaned_data |
67 | 120 |
|
121 |
username = data['username'] |
|
122 |
password = data['password'] |
|
123 |
||
124 |
user = authenticate(username=username, password=password) |
|
125 |
login(request, user) |
|
72 | 126 |
return redirect(redirect_url) |
67 | 127 |
else: |
128 |
return render_to_response("login.html", {"form":form}) |
|
129 |
else: |
|
130 |
form = LoginForm() |
|
131 |
return render_to_response("login.html", {"form":form}) |
|
132 |
||
70 | 133 |
@login_required |
67 | 134 |
def admin_logout(request): |
135 |
""" simply logout. |
|
136 |
""" |
|
137 |
||
138 |
logout(request) |
|
139 |
return render_to_response("logout.html") |
|
56 | 140 |
|
26
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
141 |
def homepage(request): |
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
142 |
return render_to_response("index.html") |
212fcba4459e
changed the app to work with apache + added base.html, and did needed changes.
anoop
parents:
25
diff
changeset
|
143 |
|
31 | 144 |
def schedule(request): |
145 |
return render_to_response("schedule.html") |
|
146 |
||
147 |
def organizers(request): |
|
148 |
return render_to_response("organizers.html") |
|
149 |
||
150 |
def venue(request): |
|
151 |
return render_to_response("venue.html") |
|
152 |
||
153 |
def contact(request): |
|
154 |
return render_to_response("contact.html") |
|
155 |
||
156 |
def about(request): |
|
157 |
return render_to_response("about.html") |
|
48
a3e6f9470549
made some changes to links and added accomodation page.
anoop
parents:
31
diff
changeset
|
158 |
|
a3e6f9470549
made some changes to links and added accomodation page.
anoop
parents:
31
diff
changeset
|
159 |
def accomodation(request): |
a3e6f9470549
made some changes to links and added accomodation page.
anoop
parents:
31
diff
changeset
|
160 |
return render_to_response("accomodation.html") |