]> asedeno.scripts.mit.edu Git - bluechips.git/commitdiff
Add edit function for transfers
authorEvan Broder <broder@mit.edu>
Fri, 25 Jul 2008 04:26:26 +0000 (04:26 +0000)
committerEvan Broder <broder@mit.edu>
Fri, 25 Jul 2008 04:26:26 +0000 (04:26 +0000)
bluechips/controllers/transfer.py
bluechips/templates/transfer/index.mako

index 5a3767d238a541170a4f4ab9d88fce5ef6ee6855..68d8b44a4d73ffa2ab32c9292a5d0ac80c7dc431 100644 (file)
@@ -20,11 +20,29 @@ class TransferController(BaseController):
         
         return render('/transfer/index.mako')
     
         
         return render('/transfer/index.mako')
     
+    def edit(self, id):
+        c.title = 'Edit a Transfer'
+        
+        c.transfer = meta.Session.query(model.Transfer).get(id)
+        
+        return render('/transfer/index.mako')
+    
     @validate(form=transfer.new_transfer_form, error_handler='index')
     @validate(form=transfer.new_transfer_form, error_handler='index')
-    def new(self):
-        t = model.Transfer()
+    def update(self, id=None):
+        # Validate the submission
+        if not valid(self, transfer.new_transfer_form):
+            if id is None:
+                return self.index()
+            else:
+                return self.edit(id)
+        
+        if id is None:
+            t = model.Transfer()
+        else:
+            t = meta.Session.query(model.Transfer).get(id)
+        
         update_sar(t, self.form_result)
         update_sar(t, self.form_result)
-        meta.Session.save(t)
+        meta.Session.save_or_update(t)
         meta.Session.commit()
         
         h.flash('Transfer recorded.')
         meta.Session.commit()
         
         h.flash('Transfer recorded.')
index a6684241c6f298c79ae9a091b2ab545207f5e6f2..73a7042c6e2e033f8b3e975680a42e81f7b4daf3 100644 (file)
@@ -5,4 +5,4 @@
 import bluechips.widgets.transfer as forms
 %>
 
 import bluechips.widgets.transfer as forms
 %>
 
-${forms.new_transfer_form(c.transfer, action=h.url_for(action='new'))}
+${forms.new_transfer_form(c.transfer, action=h.url_for(action='update'))}