From d3fa7f56c85241db83ebb986cdbf64004f5682be Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Tue, 25 May 2010 14:10:44 +0200 Subject: Added the ability to edit an expense --- controller.py | 34 +++++++++++++++++++++++++++------- templates/edit.mako | 5 +++++ templates/show.mako | 4 ++-- 3 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 templates/edit.mako diff --git a/controller.py b/controller.py index 617bab5..370391a 100644 --- a/controller.py +++ b/controller.py @@ -47,24 +47,29 @@ class Show: class Add: dformat = "%d.%m.%Y" + template = "add" def GET(self): - return render("add", form = self.form()) + return render(self.template, form = self.form()) def POST(self): f = self.form() if f.validates(): - e = SingleExpense(category = Category.get_by(name = f.category.value)) - + category = Category.get_by(name = f.category.value) + + e = self.get_expense() + e.category = category e.date = datetime.datetime.strptime(f.date.value, self.dformat) e.expense = decimal.Decimal(f.expense.value) e.description = f.description.value raise web.seeother("/") else: - return render("add", form = f) + return render(self.template, form = f) + + def get_expense(self): + return SingleExpense() - @property def form(self): return form.Form( form.Textbox( @@ -90,9 +95,24 @@ class Add: )) ) -class Edit: +class Edit (Add): + + template = "edit" + def GET(self, id): - return "Edit " + id + exp = SingleExpense.get(id) + self.get_expense = lambda *x: exp + + fvalues = { "date" : exp.date.strftime(self.dformat), "expense" : str(exp.expense), "description" : exp.description, "category" : exp.category.name } + f = self.form() + f.fill(fvalues) + + return render(self.template, form = f) + + def POST(self, id): + exp = SingleExpense.get(id) + self.get_expense = lambda *x: exp + return Add.POST(self) class Const: def GET(self): diff --git a/templates/edit.mako b/templates/edit.mako new file mode 100644 index 0000000..09d5ea4 --- /dev/null +++ b/templates/edit.mako @@ -0,0 +1,5 @@ +<%inherit file="/add.mako" /> + +<%def name="heading()"> + Edit expense + diff --git a/templates/show.mako b/templates/show.mako index 88d802c..dc23b9c 100644 --- a/templates/show.mako +++ b/templates/show.mako @@ -9,7 +9,7 @@
@@ -26,7 +26,7 @@
-- cgit v1.2.3-54-g00ecf