# vim: set fileencoding=utf-8 ts=4 shiftwidth=4 softtabstop=4 expandtab: from usuarios.models import UserProfile, UserProfileForm, UserForm from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.contrib.auth.decorators import user_passes_test from django.http import HttpResponseRedirect def index(request): return lista(request) def lista(request): lista_usuarios = User.objects.all() return render_to_response('usuarios/lista.html', RequestContext(request, { 'lista_usuarios': lista_usuarios, 'user': request.user, })) def ver(request, usuario_id): usuario = get_object_or_404(User, username=usuario_id) if usuario == request.user: show_edit = True else: show_edit = False return render_to_response('usuarios/ver.html', RequestContext(request, { 'usuario': usuario, 'show_edit': show_edit })) def nuevo(request): """Crear un nuevo usuario""" # Si el usuario ya está autenticado lo redirigimos a su perfil if request.user.is_authenticated(): return HttpResponseRedirect('../mi_perfil/') # Si es un POST, creamos el usuario if request.POST: userform = UserCreationForm(request.POST) userform.save() return HttpResponseRedirect('../mi_perfil/') # Si no es un POST, mostramos formulario para crear el usuario else: userform = UserCreationForm() return render_to_response('usuarios/nuevo.html', RequestContext(request, { 'userform': userform })) @user_passes_test(lambda u: u.is_authenticated(), login_url='/usuarios/login/') def mi_perfil(request): """Procesar cambios al perfil (POST) o crear formulario de edición""" if request.POST: try: profile = UserProfile.objects.get(user=request.user) except UserProfile.DoesNotExist: profile = UserProfile(user=request.user) if 'show_email' in request.POST: profile.show_email = True else: profile.show_email = False request.user.first_name = request.POST['first_name'] request.user.last_name = request.POST['last_name'] request.user.email = request.POST['email'] profile.url = request.POST['url'] profile.msn_id = request.POST['msn_id'] profile.jabber_id = request.POST['jabber_id'] request.user.save() profile.save() return HttpResponseRedirect('./') else: try: usuario = UserProfile.objects.get(user=request.user) except UserProfile.DoesNotExist: usuario = UserProfile(user=request.user) dict = usuario.__dict__ dict['first_name'] = request.user.first_name dict['last_name'] = request.user.last_name dict['email'] = request.user.email userform = UserForm(instance=request.user) form = UserProfileForm(instance=usuario) return render_to_response('usuarios/mi_perfil.html', RequestContext(request, { 'userform': userform, 'form': form, 'usuario': usuario }))