project/kiwipycon/user/views.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 11 May 2010 03:48:47 +0530
changeset 96 3ece0de11641
parent 94 e86755df35da
child 101 fb27be005a5c
permissions -rw-r--r--
Modify views and templates for proceedings to work.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
from __future__ import absolute_import
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
     3
1
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
#python
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
from urlparse import urlparse
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
import os
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
#django
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
from django.conf import settings
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
from django.contrib.auth.decorators import login_required
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
from django.contrib.auth.forms import AuthenticationForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
from django.contrib.auth.forms import PasswordChangeForm
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
    13
from django.contrib.auth.models import User
1
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
from django.core.exceptions import ObjectDoesNotExist
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    15
from django.core.urlresolvers import reverse
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    16
from django.db.models import Q
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    17
from django.http import HttpResponse
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    18
from django.shortcuts import render_to_response
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    19
from django.template import RequestContext
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
    20
from django.utils import simplejson as json
1
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
#PIL
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
from PIL import Image
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
#kiwipycon
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
from project.kiwipycon.utils import set_message_cookie
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
from project.kiwipycon.talk.models import Talk
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
from project.kiwipycon.registration.models import Registration
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
from project.kiwipycon.registration.models import Wifi
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
from project.kiwipycon.registration.forms import WifiForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
from .utils import kiwipycon_createuser
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
from .utils import handle_uploaded_photo
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
from .forms import RegisterForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    35
from .forms import EditProfileForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    36
from .forms import UsernameForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    37
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
@login_required
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
def account(request, template_name="user/account.html"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
    """Displays the main screen of the current user's account.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    41
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    42
    user = request.user
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    43
    profile = user.get_profile()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    44
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    45
    talks = Talk.objects.filter(speaker=user)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    46
    try:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    47
        registration = Registration.objects.get(registrant=user)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    48
    except ObjectDoesNotExist:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    49
        registration = None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    50
    try:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    51
        wifiobj = Wifi.objects.get(user=user)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    52
    except ObjectDoesNotExist:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    53
        wifiobj = None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    54
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    55
    if profile.photo:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
        photo = os.path.join(settings.USER_MEDIA_URL, profile.photo)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    57
    else:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    58
        photo = '/img/user-default.png'
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    59
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    60
    wifi_comment = None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    61
    if wifiobj:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    62
        wifi_form = False
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    63
    else:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    64
        if request.method == "POST":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    65
            wifi_form = WifiForm(request.POST)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    66
            if wifi_form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    67
                wifi_form.save(user)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    68
            wifi_comment = 'Thanks, your wifi preference has been saved'
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    69
            wifi_form = None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    70
        else:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    71
            wifi_form = WifiForm()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    72
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    73
    return render_to_response(template_name, RequestContext(request, {
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    74
        "form" : wifi_form, "comment": wifi_comment,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    75
        "user" : user, "profile" : profile, "photo" : photo,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    76
        "talks" : talks, "registration" : registration,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    77
    }))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    78
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    79
@login_required
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    80
def edit_profile(request, template_name="user/editprofile.html"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    81
    """Allows user to edit profile
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    82
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    83
    user = request.user
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    84
    profile = user.get_profile()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    85
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    86
    if request.method == "POST":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    87
        form = EditProfileForm(data=request.POST,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    88
                               files=request.FILES)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    89
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    90
        if form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    91
            photo = request.FILES.get('photo', None)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    92
            filename= None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    93
            if photo:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    94
                filename = handle_uploaded_photo(user, request.FILES['photo'])
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    95
            if filename:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    96
                profile.photo = filename
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    97
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    98
            user.email = form.data.get("email")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    99
            user.first_name = form.data.get("first_name")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   100
            user.last_name = form.data.get("last_name")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   101
            user.save()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   102
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   103
            profile.url = form.data.get("url")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   104
            profile.about = form.data.get("about")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   105
            profile.save()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   106
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   107
            redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   108
            return set_message_cookie(redirect_to,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   109
                    msg = u"Your profile has been changed.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   110
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   111
    else:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   112
        form = EditProfileForm(initial={"email" : user.email,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   113
                                        "email2" : user.email, # hidden field
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   114
                                        "first_name" : user.first_name,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   115
                                        "last_name" : user.last_name,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   116
                                        "url" : profile.url,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   117
                                        "about" : profile.about,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   118
                                        })
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   119
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   120
    return render_to_response(template_name, RequestContext(request, {
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   121
        "form": form
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   122
    }))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   123
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   124
def login(request, template_name="user/login.html"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   125
    """Custom view to login or register/login a user.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   126
    Integration of register and login form
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   127
    It uses Django's standard AuthenticationForm, though.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   128
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   129
    user = request.user
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   130
    if user.is_authenticated():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   131
        redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   132
        return set_message_cookie(redirect_to,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   133
                msg = u"Redirected to account from login form.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   134
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   135
    # Using Djangos default AuthenticationForm
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   136
    login_form = AuthenticationForm()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   137
    register_form = RegisterForm()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   138
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   139
    if request.POST.get("action") == "login":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   140
        login_form = AuthenticationForm(data=request.POST)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   141
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   142
        if login_form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   143
            redirect_to = request.POST.get("next")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   144
            # Light security check -- make sure redirect_to isn't garbage.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   145
            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   146
                redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   147
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   148
            from django.contrib.auth import login
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   149
            login(request, login_form.get_user())
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   150
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   151
            return set_message_cookie(redirect_to, msg = u"You have been logged in.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   152
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   153
    elif request.POST.get("action") == "register":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   154
        register_form = RegisterForm(data=request.POST)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   155
        if register_form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   156
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   157
            user = kiwipycon_createuser(request, register_form.data)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   158
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   159
            redirect_to = request.POST.get("next")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   160
            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   161
                redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   162
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   163
            return set_message_cookie(
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   164
                redirect_to, msg = u"You have been registered and logged in.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   165
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   166
    # Get next_url
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   167
    next_url = request.REQUEST.get("next")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   168
    if next_url is None:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   169
        next_url = request.META.get("HTTP_REFERER")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   170
    if next_url is None:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   171
        next_url = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   172
    # Get just the path of the url. See django.contrib.auth.views.login for more
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   173
    next_url = urlparse(next_url)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   174
    next_url = next_url[2]
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   175
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   176
    try:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   177
        login_form_errors = login_form.errors["__all__"]
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   178
    except KeyError:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   179
        login_form_errors = None
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   180
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   181
    return render_to_response(template_name, RequestContext(request, {
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   182
        "login_form" : login_form,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   183
        "login_form_errors" : login_form_errors,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   184
        "register_form" : register_form,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   185
        "next_url" : next_url,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   186
    }))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   187
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   188
def logout(request):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   189
    """Custom method to logout a user.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   190
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   191
    The reason to use a custom logout method is just to provide a login and a
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   192
    logoutmethod on one place.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   193
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   194
    from django.contrib.auth import logout
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   195
    logout(request)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   196
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   197
    redirect_to = '/'
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   198
    return set_message_cookie(redirect_to, msg = u"You have been logged out.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   199
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   200
@login_required
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   201
def password(request, template_name="user/password.html"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   202
    """Changes the password of current user.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   203
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   204
    if request.method == "POST":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   205
        form = PasswordChangeForm(request.user, request.POST)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   206
        if form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   207
            form.save()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   208
            redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   209
            return set_message_cookie(redirect_to,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   210
                    msg = u"Your password has been changed.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   211
    else:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   212
        form = PasswordChangeForm(request.user)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   213
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   214
    return render_to_response(template_name, RequestContext(request, {
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   215
        "form" : form
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   216
    }))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   217
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   218
@login_required
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   219
def username(request, template_name="user/username.html"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   220
    """Saves the username from the data form.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   221
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   222
    if request.method == "POST":
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   223
        username_form = UsernameForm(initial={"username" : request.user.username}, data=request.POST)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   224
        if username_form.is_valid():
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   225
            request.user.username = username_form.cleaned_data.get("username")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   226
            request.user.save()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   227
            redirect_to = reverse("kiwipycon_account")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   228
            return set_message_cookie(redirect_to,
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   229
                    msg = u"Your username has been changed.")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   230
    else:        
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   231
        username_form = UsernameForm(initial={"username" : request.user.username})
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   232
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   233
    return render_to_response(template_name, RequestContext(request, {
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   234
        "form": username_form
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   235
    }))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
   236
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   237
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   238
def get_usernames(request):
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   239
    """Returns in json the list of ten possible usernames
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   240
    starting with the last pattern in the comma separated string
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   241
    """
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   242
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   243
    get_params = request.GET
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   244
    search_author = get_params.get('q')
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   245
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   246
    if search_author:
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   247
        search_author = search_author.strip()
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   248
    else:
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   249
        return HttpResponse(json.dumps(''))
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   250
    
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   251
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   252
    users = User.objects.filter(
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   253
        Q(username__istartswith=search_author) | Q(
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   254
        first_name__istartswith=search_author) | Q(
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   255
        last_name__istartswith=search_author))
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   256
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   257
    results = []
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   258
    
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   259
    for user in users:
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   260
        results.append(
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   261
            {'name': str(user.username),
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   262
             'value': '%s (%s)' % (user.get_full_name(), user.username)
94
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   263
            })
e86755df35da Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 1
diff changeset
   264
96
3ece0de11641 Modify views and templates for proceedings to work.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 94
diff changeset
   265
    return HttpResponse(json.dumps(results))