Mercurial > personas_backend
diff PersonasBackend/personas/views.py @ 34:f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 28 Feb 2008 17:01:15 -0800 |
parents | 2b5a8b3b8bef |
children | d65b749fe547 |
line wrap: on
line diff
--- a/PersonasBackend/personas/views.py Thu Feb 28 16:27:06 2008 -0800 +++ b/PersonasBackend/personas/views.py Thu Feb 28 17:01:15 2008 -0800 @@ -61,16 +61,40 @@ return HttpResponse( template.render(context) ) @login_required -def new_view( request ): +def edit_view( request, persona_id=None ): + # TODO: Perform permissions check to see if user has + # the rights to edit the persona or create a new one. + if persona_id is None: + persona = None + else: + # TODO: Consider using get_object_or_404() here. + persona = models.Persona.objects.get( id=persona_id ) + if request.method == "POST": - form = forms.PersonaForm(request.POST) + if persona: + form = forms.PersonaForm( request.POST, + instance=persona ) + else: + form = forms.PersonaForm( request.POST ) persona = form.save( commit=False ) persona.updater = request.user + # TODO: Based on the permissions of the user, the status + # should be set to "needs review" or "published", depending on + # how much we trust them. persona.status = "needs_review" + # TODO: Add validation to ensure that all required fields + # are properly filled out. persona.save() + # TODO: Redirect user back to editing page or some other + # location. return HttpResponse( "Persona saved." ) else: template = loader.get_template( "personas/edit.html" ) - form = forms.PersonaForm() + if persona: + # We're editing an existing persona. + form = forms.PersonaForm( instance=persona ) + else: + # We're creating a new persona. + form = forms.PersonaForm() context = Context({ "form" : form }) return HttpResponse( template.render(context) )