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