diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:54:17 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:54:17 +0100 |
commit | b57452f68de8f73c63222c61fdae84f900c3a190 (patch) | |
tree | 89d7af037d3bbaa1cfd303bcc2d87bb9507cc0ba /profiles | |
parent | 24dc7c5a0c996945a0709f8e82b026914ee9dbfc (diff) | |
download | troggle-b57452f68de8f73c63222c61fdae84f900c3a190.tar.gz troggle-b57452f68de8f73c63222c61fdae84f900c3a190.tar.bz2 troggle-b57452f68de8f73c63222c61fdae84f900c3a190.zip |
[svn] Enable profile setup forms.
Profiles are Person model instances, and are linked to django's built in User model by a one to one foreign key.
We are using the django-registration and django-profiles pluggables.
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8247 by aaron @ 2/18/2009 9:35 PM
Diffstat (limited to 'profiles')
-rw-r--r-- | profiles/urls.py | 3 | ||||
-rw-r--r-- | profiles/views.py | 29 |
2 files changed, 29 insertions, 3 deletions
diff --git a/profiles/urls.py b/profiles/urls.py index 05ff9e4..a703e9b 100644 --- a/profiles/urls.py +++ b/profiles/urls.py @@ -28,6 +28,9 @@ from profiles import views urlpatterns = patterns('', + url(r'^select/$', + views.select_profile, + name='profiles_select_profile'), url(r'^create/$', views.create_profile, name='profiles_create_profile'), diff --git a/profiles/views.py b/profiles/views.py index c119165..b3e3672 100644 --- a/profiles/views.py +++ b/profiles/views.py @@ -2,7 +2,6 @@ Views for creating, editing and viewing site-specific user profiles. """ - from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.core.exceptions import ObjectDoesNotExist @@ -13,11 +12,35 @@ from django.shortcuts import get_object_or_404 from django.shortcuts import render_to_response from django.template import RequestContext from django.views.generic.list_detail import object_list +from django import forms + +from expo.models import Person + +from troggle.alwaysUseRequestContext import render_response from profiles import utils -import troggle.settings as settings +from django.conf import settings + +class SelectPersonForm(forms.Form): #This and the select_profile view + person = forms.ModelChoiceField(queryset=Person.objects.all()) +def select_profile(request): + + if request.method == 'POST': + form = SelectPersonForm(request.POST) + if form.is_valid(): + profile_obj=form.cleaned_data['person'] + profile_obj.user=request.user + profile_obj.save() + return HttpResponseRedirect(profile_obj.get_absolute_url()) + else: + form = SelectPersonForm() + context = RequestContext(request) + return render_to_response('profiles/select_profile.html', { + 'form':form,}, + context_instance=context + ) def create_profile(request, form_class=None, success_url=None, @@ -81,7 +104,7 @@ def create_profile(request, form_class=None, success_url=None, """ try: profile_obj = request.user.get_profile() - return HttpResponseRedirect(reverse('profiles_edit_profile')) + return HttpResponseRedirect(profile_obj.get_absolute_url()) except ObjectDoesNotExist: pass |