content/views.py
changeset 7 4976650293f4
parent 6 4e819dd96e1f
child 8 f0b5ff862c6d
equal deleted inserted replaced
6:4e819dd96e1f 7:4976650293f4
     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))