content/views.py
author Shantanu <shantanu@fossee.in>
Thu, 24 Sep 2009 15:20:30 +0530
changeset 5 7358eeae14d8
permissions -rw-r--r--
Rough website for Scipy.

# Create your views here.
from django.shortcuts import render_to_response
from django.template import Context, RequestContext, loader
from django.contrib.auth.models import User
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import authenticate, login
from django.utils.translation import gettext_lazy as _
import time, datetime

from models import *
from content.forms import *
import re

def makemsg(username,url):
  """
  Email body to be sent to user.
  """
  msg = _("\
Dear %(username)s,\n\n\
\
Thank you for registering with us. Please visit this url:\n\n\
%(url)s\n\n\
to complete the registration\n\n\
regards\n\
PyCon India 2009 Team\
") %{'username': username,'url': url}
  return msg
  
def home_page(request, template_name='index.html'):
  return render_to_response(template_name)
  
def logout(request):
  print request.user.username
  if request.user.is_authenticated():
    print request.user.username
    logout(request)		
  return HttpResponseRedirect('/')
	
def register(request):
  """
  Register function.
  """
  if request.user.is_authenticated():
    msg = _("You are already registered")
    return HttpResponseRedirect("/2009/message/%s/" % msg)
  if request.POST:
    # On POST method.
    form = Registerform(request.POST)
    if form.is_valid():
      # If form is clean and has no errors.
      fm = form.cleaned_data
      if len(fm['username']) > 30 or len(fm['username']) < 4:
        # Username should be > 4 characters and less that 30 characters.
        form.errors['username']=[_("User Name must be 4-30 characters long")]
      else:
        r = re.compile(r"[A-Za-z0-9_]")
        for alph in fm['username']:
          # Check if every character of the username is either an 
          # alphabet or numeral.
          if  not r.match(alph):
            form.errors['username']=[_("Invalid character %s in Username") %(alph)]
        if not form.errors:
          test = User.objects.filter(username__iexact=fm['username'])
          # Check if username already exists.
          if test:
            form.errors['username'] = [("Username registered, try something else")]          
          # Check if the email id has already been in use.
          teste = User.objects.filter(email__iexact=fm['email'])
          if teste:
            form.errors['email'] = [_("Email registered. Try something else")]
          else:
            # If username is found in the temporary registration database
            # then show pending error message.
            teste1 = User.objects.filter(email__iexact=fm['email'])
            if teste1:
              form.errors['email'] = [("Username pending registration. Try tomorrow")]
    if not form.errors:
      # If all goes well then push into database.
      new_reg = form.save()      
      #new_reg.save()      
      return HttpResponseRedirect("/regthank/%i/" % new_reg.id)
  else:
    # On the GET method.
    form = Registerform()
  return render_to_response("register.html",
    {"form":form.as_table(),
    }, context_instance=RequestContext(request))
    
def regthank(request,id):
    """
    Function displayed after registration is successful.
    """
    p = Participant.objects.get(pk=id)
    t = loader.get_template("regthank.html")
    c = RequestContext(request,
                {"p":p,
                 })
    return HttpResponse(t.render(c))