summaryrefslogtreecommitdiff
path: root/controller.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2010-05-25 14:10:44 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2010-05-25 14:10:44 +0200
commitd3fa7f56c85241db83ebb986cdbf64004f5682be (patch)
tree9854e213fc7f80c744839f201ca26589471eddd5 /controller.py
parent0ef8460158520285c89f32a03f387ef6871ce3f1 (diff)
downloadkosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.tar.gz
kosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.tar.bz2
kosten-d3fa7f56c85241db83ebb986cdbf64004f5682be.zip
Added the ability to edit an expense
Diffstat (limited to 'controller.py')
-rw-r--r--controller.py34
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):