X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=bluechips%2Fcontrollers%2Ftransfer.py;h=5c147bc35456a97a3b70ae439929d2291f62020d;hb=94a556a2cc75c26c623e6855039d214ab62e17de;hp=5aa8be20601ad651d978db51f48de37f20abe352;hpb=c777d1a13b3d6c22a3b18c6453f4edd6801ccc8a;p=bluechips.git diff --git a/bluechips/controllers/transfer.py b/bluechips/controllers/transfer.py index 5aa8be2..5c147bc 100644 --- a/bluechips/controllers/transfer.py +++ b/bluechips/controllers/transfer.py @@ -10,6 +10,7 @@ from bluechips.lib.base import * from pylons import request, app_globals as g from pylons.decorators import validate +from pylons.decorators.secure import authenticate_form from pylons.controllers.util import abort from formencode import Schema, validators @@ -47,6 +48,8 @@ class TransferController(BaseController): abort(404) return render('/transfer/index.mako') + @redirect_on_get('edit') + @authenticate_form @validate(schema=TransferSchema(), form='edit') def update(self, id=None): if id is None: @@ -72,3 +75,33 @@ class TransferController(BaseController): g.handle_notification((t.debtor, t.creditor), show, body) return h.redirect_to('/') + + def delete(self, id): + c.title = 'Delete a Transfer' + c.transfer = meta.Session.query(model.Transfer).get(id) + if c.transfer is None: + abort(404) + + return render('/transfer/delete.mako') + + @redirect_on_get('delete') + @authenticate_form + def destroy(self, id): + t = meta.Session.query(model.Transfer).get(id) + if t is None: + abort(404) + + if 'delete' in request.params: + meta.Session.delete(t) + + meta.Session.commit() + show = ("Transfer of %s from %s to %s deleted." % + (t.amount, t.debtor, t.creditor)) + h.flash(show) + + body = render('/emails/transfer.txt', + extra_vars={'transfer': t, + 'op': 'deleted'}) + g.handle_notification((t.debtor, t.creditor), show, body) + + return h.redirect_to('/')