7 from datetime import date
9 from bluechips.lib.base import *
11 from pylons import request
12 from pylons.decorators import validate
14 from formencode import Schema, validators
16 log = logging.getLogger(__name__)
19 class TransferSchema(Schema):
20 "Validate a transfer."
21 allow_extra_fields = False
22 debtor_id = validators.Int(not_empty=True)
23 creditor_id = validators.Int(not_empty=True)
24 amount = model.types.CurrencyValidator(not_empty=True)
25 description = validators.UnicodeString()
26 date = validators.DateConverter()
29 class TransferController(BaseController):
33 def edit(self, id=None):
34 c.users = meta.Session.query(model.User.id, model.User.name)
36 c.title = 'Add a New Transfer'
37 c.transfer = model.Transfer()
38 c.transfer.debtor_id = request.environ['user'].id
39 c.transfer.date = date.today()
41 c.title = 'Edit a Transfer'
42 c.transfer = meta.Session.query(model.Transfer).get(id)
43 return render('/transfer/index.mako')
45 @validate(schema=TransferSchema(), form='edit')
46 def update(self, id=None):
51 t = meta.Session.query(model.Transfer).get(id)
53 update_sar(t, self.form_result)
57 h.flash('Transfer created.')
59 h.flash('Transfer updated.')
61 return h.redirect_to('/')