conference/views.py
author Shantanu <shantanu@fossee.in>
Wed, 21 Oct 2009 16:30:14 +0530
changeset 35 5715611f76e1
parent 17 cfc989ab8298
permissions -rwxr-xr-x
Commented admins mail id.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
import datetime
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
import re
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
import time
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
17
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
     5
from django.contrib.auth import authenticate
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
     6
from django.contrib.auth import login, logout
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
from django.contrib.auth.models import User
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
from django.http import HttpResponse
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
from django.http import HttpResponseRedirect
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
from django.shortcuts import render_to_response
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
from django.template import Context
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
from django.template import RequestContext
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
from django.template import loader
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
from django.utils.translation import gettext_lazy as _
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    15
17
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    16
from conference.forms import ParticipantForm, LoginForm
7
4976650293f4 Fixed settings due to reorganization.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 6
diff changeset
    17
from conference.models import Participant
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    20
def makemsg(username,url):
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
  """
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
  Email body to be sent to user.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
  """
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
  msg = _("\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
Dear %(username)s,\n\n\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
Thank you for registering with us. Please visit this url:\n\n\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
%(url)s\n\n\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
to complete the registration\n\n\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
regards\n\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
PyCon India 2009 Team\
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
") %{'username': username,'url': url}
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
  return msg
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
  
12
243a7e90f3c3 Added Template context processors and Session Expire time for auth module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 7
diff changeset
    35
def home(request, template_name='home.html'):
17
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    36
  if request.user.is_authenticated():
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    37
    return render_to_response(template_name, RequestContext(request, {}))
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    38
  if request.method == 'POST':
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    39
    user_form = LoginForm(request.POST)
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    40
    if user_form.is_valid():
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    41
      username = request.POST['username']
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    42
      password = request.POST['password']
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    43
      user = authenticate(username=username, password = password)
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    44
      if user is not None:
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    45
        login(request, user)
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    46
        return render_to_response(template_name, RequestContext(request, {}))
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    47
  else:
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    48
    user_form = LoginForm()
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    49
  return render_to_response(template_name,
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    50
                            {'form': user_form},
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    51
                            RequestContext(request)
cfc989ab8298 Fixed home view.
Shantanu <shantanu@fossee.in>
parents: 15
diff changeset
    52
                              )
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    53
  
15
8de52278da5d Fixed Login and Logout part.
Shantanu <shantanu@fossee.in>
parents: 12
diff changeset
    54
def logout_view(request):
8de52278da5d Fixed Login and Logout part.
Shantanu <shantanu@fossee.in>
parents: 12
diff changeset
    55
  #print request.user.username
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
  if request.user.is_authenticated():
15
8de52278da5d Fixed Login and Logout part.
Shantanu <shantanu@fossee.in>
parents: 12
diff changeset
    57
    #print request.user.username
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    58
    logout(request)		
15
8de52278da5d Fixed Login and Logout part.
Shantanu <shantanu@fossee.in>
parents: 12
diff changeset
    59
  return HttpResponseRedirect('../')
6
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    60
	
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    61
def register(request):
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    62
  """Register function.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    63
  """
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    64
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    65
  if request.user.is_authenticated():
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    66
    msg = _("You are already registered")
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    67
    return HttpResponseRedirect("/2009/message/%s/" % msg)
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    68
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    69
  if request.POST:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    70
    # On POST method.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    71
    form = ParticipantForm(request.POST)
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    72
    if form.is_valid():
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    73
      # If form is clean and has no errors.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    74
      fm = form.cleaned_data
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    75
      if len(fm['username']) > 30 or len(fm['username']) < 4:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    76
        # Username should be > 4 characters and less that 30 characters.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    77
        form.errors['username']=[_("User Name must be 4-30 characters long")]
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    78
      else:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    79
        r = re.compile(r"[A-Za-z0-9_]")
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    80
        for alph in fm['username']:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    81
          # Check if every character of the username is either an 
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    82
          # alphabet or numeral.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    83
          if  not r.match(alph):
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    84
            form.errors['username']=[_("Invalid character %s in Username") %(alph)]
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    85
        if not form.errors:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    86
          test = User.objects.filter(username__iexact=fm['username'])
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    87
          # Check if username already exists.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    88
          if test:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    89
            form.errors['username'] = [("Username registered, try something else")]          
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    90
          # Check if the email id has already been in use.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    91
          teste = User.objects.filter(email__iexact=fm['email'])
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    92
          if teste:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    93
            form.errors['email'] = [_("Email registered. Try something else")]
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    94
          else:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    95
            # If username is found in the temporary registration database
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    96
            # then show pending error message.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    97
            teste1 = User.objects.filter(email__iexact=fm['email'])
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    98
            if teste1:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    99
              form.errors['email'] = [("Username pending registration. Try tomorrow")]
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   100
    if not form.errors:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   101
      # If all goes well then push into database.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   102
      new_reg = form.save()      
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   103
      #new_reg.save()      
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   104
      return HttpResponseRedirect("/regthank/%i/" % new_reg.id)
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   105
  else:
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   106
    # On the GET method.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   107
    form = ParticipantForm()
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   108
  return render_to_response("register.html",
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   109
      { "form":form, }, context_instance=RequestContext(request))
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   110
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   111
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   112
def regthank(request,id):
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   113
    """Function displayed after registration is successful.
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   114
    """
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   115
    p = Participant.objects.get(pk=id)
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   116
    t = loader.get_template("regthank.html")
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   117
    c = RequestContext(request,
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   118
                {"p":p,
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   119
                 })
4e819dd96e1f Restructured and revamped the entire settings.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   120
    return HttpResponse(t.render(c))