From 5c217cff01216eb1784fab6d78fb9032363ca3b5 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Fri, 25 Jul 2008 04:26:17 +0000 Subject: [PATCH] Add edit function for expenditures --- bluechips/controllers/spend.py | 34 ++++++++++++++++++++++++---- bluechips/templates/spend/index.mako | 2 +- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/bluechips/controllers/spend.py b/bluechips/controllers/spend.py index 27ded4b..a3f502d 100644 --- a/bluechips/controllers/spend.py +++ b/bluechips/controllers/spend.py @@ -20,13 +20,37 @@ class SpendController(BaseController): return render('/spend/index.mako') - @validate(form=spend.new_spend_form, error_handler='index') - def new(self): - e = model.Expenditure() + def edit(self, id): + c.title = 'Edit an Expenditure' + + c.expenditure = meta.Session.query(model.Expenditure).get(id) + + return render('/spend/index.mako') + + def update(self, id=None): + # Validate the submission + if not valid(self, spend.new_spend_form): + if id is None: + return self.index() + else: + return self.edit(id) + + # Either create a new object, or, if we're editing, get the + # old one + if id is None: + e = model.Expenditure() + else: + e = meta.Session.query(model.Expenditure).get(id) + + # Set the fields that were submitted update_sar(e, self.form_result) - meta.Session.save(e) + meta.Session.save_or_update(e) + + if id is None: + e.even_split() + else: + e.update_split() - e.even_split() meta.Session.commit() h.flash('Expenditure recorded.') diff --git a/bluechips/templates/spend/index.mako b/bluechips/templates/spend/index.mako index 09f5e2b..e828330 100644 --- a/bluechips/templates/spend/index.mako +++ b/bluechips/templates/spend/index.mako @@ -5,4 +5,4 @@ import bluechips.widgets.spend as forms %> -${forms.new_spend_form(c.expenditure, action=h.url_for(action='new'))} +${forms.new_spend_form(c.expenditure, action=h.url_for(action='update'))} -- 2.45.2