Mercurial > personas_backend
view personasbackend/personas/views.py @ 134:aaa032194990
Got rid of a TODO by renaming a file.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 03 Apr 2008 12:34:26 -0700 |
parents | 09c808e39a98 |
children | bc25c5570ad8 |
line wrap: on
line source
from django.http import HttpResponseRedirect, HttpResponseForbidden from django.http import Http404 from django.http import HttpResponse, HttpResponseBadRequest from django.template import RequestContext from django.contrib.auth.decorators import login_required from django.core.urlresolvers import reverse from django.shortcuts import render_to_response, get_object_or_404 from personasbackend.personas import models from personasbackend.personas import forms def _render_static_persona( img_src, action ): if action == "footer": position = "bottom left" else: position = "top right" return render_to_response( "personas/static_persona.xul", { "image" : img_src, "position" : position }, mimetype = "application/vnd.mozilla.xul+xml" ) def hosted_static_persona( request, persona_id ): persona = get_object_or_404( models.Persona, id=persona_id ) if not (persona.header_img and persona.footer_img): raise Http404( "Persona is not statically hosted." ) action = request.GET.get( "action", "" ) if action == "footer": img_src = persona.get_absolute_footer_img_url() elif action == "header": img_src = persona.get_absolute_header_img_url() else: return HttpResponseBadRequest( "Invalid or unsupported action: %s" % action ) return _render_static_persona( img_src, action ) def legacy_cbeard_persona( request, name ): urldict = {"name" : name} action = request.GET.get( "action", "" ) if action == "footer": img_src = models.LEGACY_FOOTER_URL % urldict elif action == "header": img_src = models.LEGACY_HEADER_URL % urldict else: return HttpResponseBadRequest( "Invalid or unsupported action: %s" % action ) return _render_static_persona( img_src, action ) def list_view( request ): personas = models.Persona.objects.filter( status="published" ) return render_to_response( "personas/list.html", { "personas" : personas, "title" : "Browse Personas" }, context_instance = RequestContext(request) ) def home_view( request ): return render_to_response( "personas/home.html", { "title" : "Home" }, context_instance = RequestContext(request) ) def todo_view( request ): return render_to_response( "personas/todo.html", { "title" : "Under Construction" }, context_instance = RequestContext(request) ) def new_view( request ): return edit_view( request ) @login_required def edit_view( request, persona_id=None ): if persona_id is None: persona = None pageTitle = "Create a new Persona" else: persona = get_object_or_404( models.Persona, id=persona_id ) if not persona.can_user_edit( request.user ): return HttpResponseForbidden( "<h1>You do not have permission to edit " "this Persona.</h1>" ) pageTitle = "Edit Persona" if request.method == "POST": form = forms.PersonaForm( request.POST, request.FILES, instance=persona ) if form.is_valid(): newPersona = form.save( commit=False ) newPersona.save( updater = request.user ) if persona is None: msgText = ("Persona created successfully. It will need " "to be reviewed by a staff member " "before it is published.") else: msgText = ("Persona edited successfully. Your changes " "will need to be approved by a staff member " "before they can take effect.") request.user.message_set.create( message = msgText ) url = reverse("edit-persona", args=[newPersona.id]) return HttpResponseRedirect( url ) else: form = forms.PersonaForm( instance=persona ) return render_to_response( "personas/edit.html", { "form" : form, "title" : pageTitle }, context_instance = RequestContext(request) )