X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Fcontrollers%2Ftransfer.py;h=50948456fad832da5bd81035aee1ea08a6d15d8c;hb=01eb085c206c4ba88045fb88a2f1076622bd2585;hp=0fb9a557f6948b8899e69b602b2bd1f43259d34c;hpb=b57666fb3255e06ec0d55cabd26a01c83d214326;p=bluechips.git diff --git a/bluechips/controllers/transfer.py b/bluechips/controllers/transfer.py index 0fb9a55..5094845 100644 --- a/bluechips/controllers/transfer.py +++ b/bluechips/controllers/transfer.py @@ -8,11 +8,14 @@ from datetime import date from bluechips.lib.base import * -from pylons import request +from pylons import request, app_globals as g from pylons.decorators import validate +from pylons.controllers.util import abort from formencode import Schema, validators +from mailer import Message + log = logging.getLogger(__name__) @@ -40,22 +43,33 @@ class TransferController(BaseController): else: c.title = 'Edit a Transfer' c.transfer = meta.Session.query(model.Transfer).get(id) + if c.transfer is None: + abort(404) return render('/transfer/index.mako') + @redirect_on_get('edit') @validate(schema=TransferSchema(), form='edit') def update(self, id=None): if id is None: t = model.Transfer() meta.Session.add(t) + op = 'created' else: t = meta.Session.query(model.Transfer).get(id) + if t is None: + abort(404) + op = 'updated' update_sar(t, self.form_result) meta.Session.commit() - if id is None: - h.flash('Transfer created.') - else: - h.flash('Transfer updated.') - + show = ('Transfer of %s from %s to %s %s.' % + (t.amount, t.debtor, t.creditor, op)) + h.flash(show) + + # Send email notification to involved users if they have an email set. + body = render('/emails/transfer.txt', extra_vars={'transfer': t, + 'op': op}) + g.handle_notification((t.debtor, t.creditor), show, body) + return h.redirect_to('/')