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