diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2010-05-25 14:10:44 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2010-05-25 14:10:44 +0200 |
commit | d3fa7f56c85241db83ebb986cdbf64004f5682be (patch) | |
tree | 9854e213fc7f80c744839f201ca26589471eddd5 /controller.py | |
parent | 0ef8460158520285c89f32a03f387ef6871ce3f1 (diff) | |
download | kosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.tar.gz kosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.tar.bz2 kosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.zip |
Added the ability to edit an expense
Diffstat (limited to '')
-rw-r--r-- | controller.py | 34 |
1 files changed, 27 insertions, 7 deletions
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): |