from pylons import request, app_globals as g
from pylons.decorators.rest import dispatch_on
from pylons.decorators import validate
+from pylons.controllers.util import abort
from formencode import validators, Schema
from formencode.foreach import ForEach
else:
c.title = 'Edit an Expenditure'
c.expenditure = meta.Session.query(model.Expenditure).get(id)
+ if c.expenditure is None:
+ abort(404)
+ c.values = {}
+ for ii, user_row in enumerate(c.users):
+ user_id, user = user_row
+ try:
+ share = [s.share for s in c.expenditure.splits
+ if s.user == user][0]
+ percent = (Decimal(100) * Decimal(int(share)) /
+ Decimal(int(c.expenditure.amount))).\
+ quantize(Decimal("0.001"))
+ except IndexError:
+ percent = 0
+ c.values['shares-%d.amount' % ii] = percent
+
return render('/spend/index.mako')
@validate(schema=ExpenditureSchema(), form='edit', variable_decode=True)
op = 'created'
else:
e = meta.Session.query(model.Expenditure).get(id)
+ if e is None:
+ abort(404)
op = 'updated'
# Set the fields that were submitted