summaryrefslogtreecommitdiff
path: root/project/kiwipycon/user/views.py
diff options
context:
space:
mode:
authorMadhusudan.C.S2010-07-13 17:59:47 +0530
committerMadhusudan.C.S2010-07-13 17:59:47 +0530
commite9ed5af643f96f92f2a9e97c3b751efff8727b6d (patch)
tree95df3b99b6bc3afe90dab26158bd056a82eaf20f /project/kiwipycon/user/views.py
parentf245bcffa2d4bd4efc6ab934db85eb76626ec599 (diff)
downloadscipycon-e9ed5af643f96f92f2a9e97c3b751efff8727b6d.tar.gz
scipycon-e9ed5af643f96f92f2a9e97c3b751efff8727b6d.tar.bz2
scipycon-e9ed5af643f96f92f2a9e97c3b751efff8727b6d.zip
Moved the files to new Django app named scipycon and modified settings.
Diffstat (limited to 'project/kiwipycon/user/views.py')
-rw-r--r--project/kiwipycon/user/views.py278
1 files changed, 0 insertions, 278 deletions
diff --git a/project/kiwipycon/user/views.py b/project/kiwipycon/user/views.py
deleted file mode 100644
index 8b890c1..0000000
--- a/project/kiwipycon/user/views.py
+++ /dev/null
@@ -1,278 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
-#python
-from urlparse import urlparse
-import json
-import urllib
-import os
-
-#django
-from django.conf import settings
-from django.db.models import Q
-from django.http import HttpResponse
-from django.shortcuts import render_to_response
-from django.template import RequestContext
-from django.core.urlresolvers import reverse
-from django.db.models.signals import post_save
-
-#django.contrib
-from django.contrib.auth.decorators import login_required
-from django.contrib.auth.forms import AuthenticationForm
-from django.contrib.auth.forms import PasswordChangeForm
-from django.contrib.auth.models import User
-from django.core.exceptions import ObjectDoesNotExist
-
-#PIL
-from PIL import Image
-
-#kiwipycon
-from project.kiwipycon.utils import set_message_cookie
-from project.kiwipycon.talk.models import Talk
-from project.kiwipycon.registration.models import Registration
-from project.kiwipycon.registration.models import Wifi
-from project.kiwipycon.registration.forms import WifiForm
-from project.kiwipycon.sponsor.models import Sponsor
-
-from .utils import kiwipycon_createuser
-from .utils import handle_uploaded_photo
-from .forms import RegisterForm
-from .forms import EditProfileForm
-from .forms import UsernameForm
-
-@login_required
-def account(request, template_name="user/account.html"):
- """Displays the main screen of the current user's account.
- """
- user = request.user
- profile = user.get_profile()
-
- talks = Talk.objects.filter(speaker=user)
- try:
- registration = Registration.objects.get(registrant=user)
- except ObjectDoesNotExist:
- registration = None
- try:
- wifiobj = Wifi.objects.get(user=user)
- except ObjectDoesNotExist:
- wifiobj = None
-
- if profile.photo:
- photo = os.path.join(settings.USER_MEDIA_URL, profile.photo)
- else:
- photo = '/img/user-default.png'
-
- qstring = ""
-
- wifi_comment = None
- if wifiobj:
- wifi_form = False
- else:
- if request.method == "POST":
- wifi_form = WifiForm(request.POST)
- if wifi_form.is_valid():
- wifi_form.save(user)
- wifi_comment = 'Thanks, your wifi preference has been saved'
- wifi_form = None
- else:
- wifi_form = WifiForm()
-
- return render_to_response(template_name, RequestContext(request, {
- "form" : wifi_form, "comment": wifi_comment,
- "user" : user, "profile" : profile, "photo" : photo,
- "talks" : talks, "registration" : registration,
- }))
-
-@login_required
-def edit_profile(request, template_name="user/editprofile.html"):
- """Allows user to edit profile
- """
- user = request.user
- profile = user.get_profile()
-
- if request.method == "POST":
- form = EditProfileForm(data=request.POST,
- files=request.FILES)
-
- if form.is_valid():
- photo = request.FILES.get('photo', None)
- filename= None
- if photo:
- filename = handle_uploaded_photo(user, request.FILES['photo'])
- if filename:
- profile.photo = filename
-
- user.email = form.data.get("email")
- user.first_name = form.data.get("first_name")
- user.last_name = form.data.get("last_name")
- user.save()
-
- profile.url = form.data.get("url")
- profile.about = form.data.get("about")
- profile.save()
-
- redirect_to = reverse("kiwipycon_account")
- return set_message_cookie(redirect_to,
- msg = u"Your profile has been changed.")
-
- else:
- form = EditProfileForm(initial={"email" : user.email,
- "email2" : user.email, # hidden field
- "first_name" : user.first_name,
- "last_name" : user.last_name,
- "url" : profile.url,
- "about" : profile.about,
- })
-
- return render_to_response(template_name, RequestContext(request, {
- "form": form
- }))
-
-def login(request, 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.
- """
- user = request.user
- if user.is_authenticated():
- redirect_to = reverse("kiwipycon_account")
- return set_message_cookie(redirect_to,
- msg = u"Redirected to account from login form.")
-
- # Using Djangos default AuthenticationForm
- login_form = AuthenticationForm()
- register_form = RegisterForm()
-
- if request.POST.get("action") == "login":
- login_form = AuthenticationForm(data=request.POST)
-
- if login_form.is_valid():
- 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("kiwipycon_account")
-
- from django.contrib.auth import login
- login(request, login_form.get_user())
-
- return set_message_cookie(redirect_to, msg = u"You have been logged in.")
-
- elif request.POST.get("action") == "register":
- register_form = RegisterForm(data=request.POST)
- if register_form.is_valid():
-
- user = kiwipycon_createuser(request, register_form.data)
-
- redirect_to = request.POST.get("next")
- if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
- redirect_to = reverse("kiwipycon_account")
-
- return set_message_cookie(
- redirect_to, msg = u"You have been registered and logged in.")
-
- # Get next_url
- next_url = request.REQUEST.get("next")
- if next_url is None:
- next_url = request.META.get("HTTP_REFERER")
- if next_url is None:
- next_url = reverse("kiwipycon_account")
- # 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]
-
- try:
- login_form_errors = login_form.errors["__all__"]
- except KeyError:
- login_form_errors = None
-
- return render_to_response(template_name, RequestContext(request, {
- "login_form" : login_form,
- "login_form_errors" : login_form_errors,
- "register_form" : register_form,
- "next_url" : next_url,
- }))
-
-def logout(request):
- """Custom method to logout a user.
-
- 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 = '/'
- return set_message_cookie(redirect_to, msg = u"You have been logged out.")
-
-@login_required
-def password(request, template_name="user/password.html"):
- """Changes the password of current user.
- """
- if request.method == "POST":
- form = PasswordChangeForm(request.user, request.POST)
- if form.is_valid():
- form.save()
- redirect_to = reverse("kiwipycon_account")
- return set_message_cookie(redirect_to,
- msg = u"Your password has been changed.")
- else:
- form = PasswordChangeForm(request.user)
-
- return render_to_response(template_name, RequestContext(request, {
- "form" : form
- }))
-
-@login_required
-def username(request, 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 username_form.is_valid():
- request.user.username = username_form.cleaned_data.get("username")
- request.user.save()
- redirect_to = reverse("kiwipycon_account")
- 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
- }))
-
-
-def get_usernames(request):
- """Returns in json the list of ten possible usernames
- starting with the last pattern in the comma separated string
- """
-
- get_params = request.GET
- authors_str = get_params.get('input')
-
- if not authors_str:
- return HttpResponse(json.dumps(''))
-
- authors = authors_str.split(',')
- search_author = authors[-1].strip()
-
- users = User.objects.filter(
- Q(username__istartswith=search_author) | Q(
- first_name__istartswith=search_author) | Q(
- last_name__istartswith=search_author))
-
- results = [{'id': '',
- 'info': 'plugin_header',
- 'value': 'User Names'
- }]
-
- for user in users:
- results.append(
- {'id': 'author_name',
- 'info': str(user.get_full_name()),
- 'value': str(user.username)
- })
-
- json_response = {'results': results}
-
- return HttpResponse(json.dumps(json_response)) \ No newline at end of file