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