7 from bluechips.lib.base import *
9 from pylons import request
10 from pylons.decorators import validate
12 from formencode import Schema, validators
14 log = logging.getLogger(__name__)
17 class TransferSchema(Schema):
18 "Validate a transfer."
19 allow_extra_fields = False
20 debtor_id = validators.Int(not_empty=True)
21 creditor_id = validators.Int(not_empty=True)
22 amount = validators.Number(not_empty=True)
23 description = validators.UnicodeString()
24 date = validators.String()
27 class TransferController(BaseController):
31 def edit(self, id=None):
32 c.users = meta.Session.query(model.User.id, model.User.name)
34 c.title = 'Add a New Transfer'
35 c.transfer = model.Transfer()
36 c.transfer.debtor_id = request.environ['user'].id
38 c.title = 'Edit a Transfer'
39 c.transfer = meta.Session.query(model.Transfer).get(id)
40 return render('/transfer/index.mako')
42 @validate(schema=TransferSchema(), form='edit')
43 def update(self, id=None):
48 t = meta.Session.query(model.Transfer).get(id)
50 t.amount = self.form_result.pop('amount') * 100
51 update_sar(t, self.form_result)
54 h.flash('Transfer updated.')
56 return h.redirect_to('/')