5
|
1 |
# Create your views here.
|
|
2 |
from django.shortcuts import render_to_response
|
|
3 |
from django.template import Context, RequestContext, loader
|
|
4 |
from django.contrib.auth.models import User
|
|
5 |
from django.http import HttpResponse, HttpResponseRedirect
|
|
6 |
from django.contrib.auth import authenticate, login
|
|
7 |
from django.utils.translation import gettext_lazy as _
|
|
8 |
import time, datetime
|
|
9 |
|
|
10 |
from models import *
|
|
11 |
from content.forms import *
|
|
12 |
import re
|
|
13 |
|
|
14 |
def makemsg(username,url):
|
|
15 |
"""
|
|
16 |
Email body to be sent to user.
|
|
17 |
"""
|
|
18 |
msg = _("\
|
|
19 |
Dear %(username)s,\n\n\
|
|
20 |
\
|
|
21 |
Thank you for registering with us. Please visit this url:\n\n\
|
|
22 |
%(url)s\n\n\
|
|
23 |
to complete the registration\n\n\
|
|
24 |
regards\n\
|
|
25 |
PyCon India 2009 Team\
|
|
26 |
") %{'username': username,'url': url}
|
|
27 |
return msg
|
|
28 |
|
|
29 |
def home_page(request, template_name='index.html'):
|
|
30 |
return render_to_response(template_name)
|
|
31 |
|
|
32 |
def logout(request):
|
|
33 |
print request.user.username
|
|
34 |
if request.user.is_authenticated():
|
|
35 |
print request.user.username
|
|
36 |
logout(request)
|
|
37 |
return HttpResponseRedirect('/')
|
|
38 |
|
|
39 |
def register(request):
|
|
40 |
"""
|
|
41 |
Register function.
|
|
42 |
"""
|
|
43 |
if request.user.is_authenticated():
|
|
44 |
msg = _("You are already registered")
|
|
45 |
return HttpResponseRedirect("/2009/message/%s/" % msg)
|
|
46 |
if request.POST:
|
|
47 |
# On POST method.
|
|
48 |
form = Registerform(request.POST)
|
|
49 |
if form.is_valid():
|
|
50 |
# If form is clean and has no errors.
|
|
51 |
fm = form.cleaned_data
|
|
52 |
if len(fm['username']) > 30 or len(fm['username']) < 4:
|
|
53 |
# Username should be > 4 characters and less that 30 characters.
|
|
54 |
form.errors['username']=[_("User Name must be 4-30 characters long")]
|
|
55 |
else:
|
|
56 |
r = re.compile(r"[A-Za-z0-9_]")
|
|
57 |
for alph in fm['username']:
|
|
58 |
# Check if every character of the username is either an
|
|
59 |
# alphabet or numeral.
|
|
60 |
if not r.match(alph):
|
|
61 |
form.errors['username']=[_("Invalid character %s in Username") %(alph)]
|
|
62 |
if not form.errors:
|
|
63 |
test = User.objects.filter(username__iexact=fm['username'])
|
|
64 |
# Check if username already exists.
|
|
65 |
if test:
|
|
66 |
form.errors['username'] = [("Username registered, try something else")]
|
|
67 |
# Check if the email id has already been in use.
|
|
68 |
teste = User.objects.filter(email__iexact=fm['email'])
|
|
69 |
if teste:
|
|
70 |
form.errors['email'] = [_("Email registered. Try something else")]
|
|
71 |
else:
|
|
72 |
# If username is found in the temporary registration database
|
|
73 |
# then show pending error message.
|
|
74 |
teste1 = User.objects.filter(email__iexact=fm['email'])
|
|
75 |
if teste1:
|
|
76 |
form.errors['email'] = [("Username pending registration. Try tomorrow")]
|
|
77 |
if not form.errors:
|
|
78 |
# If all goes well then push into database.
|
|
79 |
new_reg = form.save()
|
|
80 |
#new_reg.save()
|
|
81 |
return HttpResponseRedirect("/regthank/%i/" % new_reg.id)
|
|
82 |
else:
|
|
83 |
# On the GET method.
|
|
84 |
form = Registerform()
|
|
85 |
return render_to_response("register.html",
|
|
86 |
{"form":form.as_table(),
|
|
87 |
}, context_instance=RequestContext(request))
|
|
88 |
|
|
89 |
def regthank(request,id):
|
|
90 |
"""
|
|
91 |
Function displayed after registration is successful.
|
|
92 |
"""
|
|
93 |
p = Participant.objects.get(pk=id)
|
|
94 |
t = loader.get_template("regthank.html")
|
|
95 |
c = RequestContext(request,
|
|
96 |
{"p":p,
|
|
97 |
})
|
|
98 |
return HttpResponse(t.render(c))
|