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) )