conference/views.py
changeset 6 4e819dd96e1f
child 7 4976650293f4
equal deleted inserted replaced
5:7358eeae14d8 6:4e819dd96e1f
       
     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))