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