diff options
author | Madhusudan.C.S | 2010-07-20 19:28:45 +0530 |
---|---|---|
committer | Madhusudan.C.S | 2010-07-20 19:28:45 +0530 |
commit | 91c05162499472c6262560a5f5554329b71d596d (patch) | |
tree | beb600b6f4bcf8710ad936d5d795c9fde9b440c0 | |
parent | a25047b9ba995885c00858ef67a2b5f6a6deb7f3 (diff) | |
download | scipycon-91c05162499472c6262560a5f5554329b71d596d.tar.gz scipycon-91c05162499472c6262560a5f5554329b71d596d.tar.bz2 scipycon-91c05162499472c6262560a5f5554329b71d596d.zip |
Add scope as a parameter to all view functions for user app and adjusted the URLs to accommodate scope.
-rw-r--r-- | project/scipycon/user/models.py | 12 | ||||
-rw-r--r-- | project/scipycon/user/utils.py | 62 | ||||
-rw-r--r-- | project/scipycon/user/views.py | 53 |
3 files changed, 67 insertions, 60 deletions
diff --git a/project/scipycon/user/models.py b/project/scipycon/user/models.py index 3bb9add..4688b79 100644 --- a/project/scipycon/user/models.py +++ b/project/scipycon/user/models.py @@ -24,15 +24,3 @@ class UserProfile(base_models.ScopedBase): def fullname(self): return '%s %s' % (self.user.first_name, self.user.last_name) - -def add_profile(sender, instance, signal, *args, **kwargs): - """Create user profile on create of new user""" - if not instance.is_superuser: - try: - profile, new = UserProfile.objects.get_or_create(user=instance) - if new: - profile.save() - except: - pass - -post_save.connect(add_profile, sender=User, weak=False) diff --git a/project/scipycon/user/utils.py b/project/scipycon/user/utils.py index f978cd9..fb9a428 100644 --- a/project/scipycon/user/utils.py +++ b/project/scipycon/user/utils.py @@ -1,27 +1,23 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -#python imports import os -#django from django.conf import settings from django.core.exceptions import ObjectDoesNotExist - -#django.contrib from django.contrib.auth.models import User -#PIL from PIL import Image +from project.scipycon.user.models import UserProfile + def scipycon_createregistrant(request, data): - """Create user""" - email = data.get("email") - name = data.get("name") - username = data.get("username") + """Create user + """ + + email = data.get('email') + name = data.get('name') + username = data.get('username') - n = name.split(" ") + n = name.split(' ') if len(n) > 1: first_name = ' '.join(n[:-1]) last_name = n[-1] @@ -38,38 +34,50 @@ def scipycon_createregistrant(request, data): return user -def scipycon_createuser(request, data): - """Create user""" - email = data.get("email") - username = data.get("username") - password = data.get("password_1") - password = data.get("password_1") +def scipycon_createuser(request, data, scope): + """Create user + """ + + from django.contrib.auth import authenticate + from django.contrib.auth import login + + from project.scipycon.base.models import Event + + email = data.get('email') + username = data.get('username') + password = data.get('password_1') + password = data.get('password_1') # Create user user = User.objects.create_user( username=username, email=email, password=password) - user.first_name = data.get("first_name") - user.last_name = data.get("last_name") + user.first_name = data.get('first_name') + user.last_name = data.get('last_name') user.save() # Log in user - from django.contrib.auth import authenticate + user = authenticate(username=username, password=password) - from django.contrib.auth import login login(request, user) - profile = user.get_profile() + scope_entity = Event.objects.get(scope=scope) + + try: + profile = user.get_profile() + except: + profile, new = UserProfile.objects.get_or_create( + user=user, scope=scope_entity) + photo = request.FILES.get('photo', None) filename= None if photo: filename = handle_uploaded_photo(user, request.FILES['photo']) if filename: profile.photo = filename - #print photo, filename - profile.url = data.get("url") - profile.about = data.get("about") + profile.url = data.get('url') + profile.about = data.get('about') profile.save() return user diff --git a/project/scipycon/user/views.py b/project/scipycon/user/views.py index dd8a3d7..d65b913 100644 --- a/project/scipycon/user/views.py +++ b/project/scipycon/user/views.py @@ -55,8 +55,6 @@ def account(request, scope, template_name="user/account.html"): else: photo = '/img/user-default.png' - qstring = "" - wifi_comment = None if wifiobj: wifi_form = False @@ -105,7 +103,8 @@ def edit_profile(request, scope, template_name="user/editprofile.html"): profile.about = form.data.get("about") profile.save() - redirect_to = reverse("scipycon_account") + redirect_to = reverse('scipycon_account', + kwargs={'scope': scope}) return set_message_cookie(redirect_to, msg = u"Your profile has been changed.") @@ -119,14 +118,16 @@ def edit_profile(request, scope, template_name="user/editprofile.html"): }) return render_to_response(template_name, RequestContext(request, { - "form": form + 'params': {'scope': scope}, + 'form': form })) def login(request, scope, template_name="user/login.html"): """Custom view to login or register/login a user. - Integration of register and login form - It uses Django's standard AuthenticationForm, though. + Integration of register and login form + It uses Django's standard AuthenticationForm, though. """ + user = request.user if user.is_authenticated(): redirect_to = reverse("scipycon_account", kwargs={'scope': scope}) @@ -144,7 +145,8 @@ def login(request, scope, template_name="user/login.html"): redirect_to = request.POST.get("next") # Light security check -- make sure redirect_to isn't garbage. if not redirect_to or '//' in redirect_to or ' ' in redirect_to: - redirect_to = reverse("scipycon_account") + redirect_to = reverse('scipycon_account', + kwargs={'scope': scope}) from django.contrib.auth import login login(request, login_form.get_user()) @@ -159,7 +161,8 @@ def login(request, scope, template_name="user/login.html"): redirect_to = request.POST.get("next") if not redirect_to or '//' in redirect_to or ' ' in redirect_to: - redirect_to = reverse("scipycon_account") + redirect_to = reverse('scipycon_account', + kwargs={'scope': scope}) return set_message_cookie( redirect_to, msg = u"You have been registered and logged in.") @@ -169,8 +172,10 @@ def login(request, scope, template_name="user/login.html"): if next_url is None: next_url = request.META.get("HTTP_REFERER") if next_url is None: - next_url = reverse("scipycon_account") - # Get just the path of the url. See django.contrib.auth.views.login for more + next_url = reverse('scipycon_account', kwargs={'scope': scope}) + + # Get just the path of the url. + # See django.contrib.auth.views.login for more next_url = urlparse(next_url) next_url = next_url[2] @@ -193,23 +198,25 @@ def logout(request, scope): The reason to use a custom logout method is just to provide a login and a logoutmethod on one place. """ + from django.contrib.auth import logout logout(request) - redirect_to = '/' + redirect_to = '/%s' % (scope) return set_message_cookie(redirect_to, msg = u"You have been logged out.") @login_required -def password(request, scope, template_name="user/password.html"): +def password(request, scope, template_name='user/password.html'): """Changes the password of current user. """ - if request.method == "POST": + + if request.method == 'POST': form = PasswordChangeForm(request.user, request.POST) if form.is_valid(): form.save() - redirect_to = reverse("scipycon_account") + redirect_to = reverse('scipycon_account', kwargs={'scope': scope}) return set_message_cookie(redirect_to, - msg = u"Your password has been changed.") + msg = u'Your password has been changed.') else: form = PasswordChangeForm(request.user) @@ -219,22 +226,26 @@ def password(request, scope, template_name="user/password.html"): })) @login_required -def username(request, scope, template_name="user/username.html"): +def username(request, scope, template_name='user/username.html'): """Saves the username from the data form. """ - if request.method == "POST": - username_form = UsernameForm(initial={"username" : request.user.username}, data=request.POST) + if request.method == 'POST': + username_form = UsernameForm( + initial={'username' : request.user.username}, + data=request.POST) if username_form.is_valid(): request.user.username = username_form.cleaned_data.get("username") request.user.save() - redirect_to = reverse("scipycon_account") + redirect_to = reverse('scipycon_account', + kwargs={'scope': scope}) return set_message_cookie(redirect_to, msg = u"Your username has been changed.") else: username_form = UsernameForm(initial={"username" : request.user.username}) return render_to_response(template_name, RequestContext(request, { - "form": username_form + 'params': {'scope': scope}, + 'form': username_form })) @@ -271,4 +282,4 @@ def get_usernames(request, scope): json_response = {'results': results} - return HttpResponse(json.dumps(json_response))
\ No newline at end of file + return HttpResponse(json.dumps(json_response)) |