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 | |
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 | ||||
-rw-r--r-- | templates/edit.mako | 5 | ||||
-rw-r--r-- | templates/show.mako | 4 |
3 files changed, 34 insertions, 9 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): 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 +</%def> 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 @@ <div class="details"> <ul> % for exp in c.all: - <li>${exp.day}.${exp.month}. -- ${exp.description}: ${exp.expense} </li> + <li><a href=${"/edit/%s" % exp.id | url}>${exp.day}.${exp.month}. -- ${exp.description}: ${exp.expense}</a></li> % endfor </ul> </div> @@ -26,7 +26,7 @@ <div class="details"> <ul> % for exp in e.all: - <li>${exp.day}.${exp.month}. -- ${exp.description}: ${exp.expense} </li> + <li><a href=${"/edit/%s" % exp.id | url}>${exp.day}.${exp.month}. -- ${exp.description}: ${exp.expense}</a></li> % endfor </ul> </div> |