diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2013-04-14 19:43:41 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2013-04-14 19:43:41 +0200 |
commit | 17ac923320afc0851862778ad492062b14b532ca (patch) | |
tree | fd4d59b8f23da81aa221c7a038d651fa51c4dba2 | |
parent | 21c591327c8c4c8bbf34831a23f4439fec32f3b2 (diff) | |
download | kosten-17ac923320afc0851862778ad492062b14b532ca.tar.gz kosten-17ac923320afc0851862778ad492062b14b532ca.tar.bz2 kosten-17ac923320afc0851862778ad492062b14b532ca.zip |
Edit expense
Diffstat (limited to '')
-rw-r--r-- | app/views/expenses.py | 36 | ||||
-rw-r--r-- | templates/pages/edit.jinja (renamed from templates/pages/edit.mako) | 10 |
2 files changed, 34 insertions, 12 deletions
diff --git a/app/views/expenses.py b/app/views/expenses.py index da01308..312d0c2 100644 --- a/app/views/expenses.py +++ b/app/views/expenses.py @@ -10,6 +10,11 @@ from ..forms import ExpenseForm mod = Blueprint('expenses', __name__) +def expense_form(obj=None): + form = ExpenseForm(obj=obj) + form.category.query = Category.query.order_by("name") + return form + def is_last(exp): return exp.date >= datetime.date.today().replace(day = 1) @@ -69,21 +74,38 @@ def show(year = None, month = None): return render_show([first, second], is_last(first)) -@mod.route("/edit/<int:id>") +@mod.route("/edit/<int:id>", methods=("GET", "POST")) def edit(id): - return render_template("page.jinja") + exp = SingleExpense.get(id) + form = expense_form(exp) + + ret = lambda: render_template("pages/edit.jinja", form=form) + + if request.method == "POST": + if "deleteB" in request.form: + db.session.delete(exp) + + elif form.validate(): # change + form.populate_obj(exp) + + else: + return ret() + + db.session.commit() + return redirect(url_for("index")) + + return ret() @mod.route("/add/", methods=("GET", "POST")) def add(): - form = ExpenseForm() - form.category.query = Category.query.order_by("name") + form = expense_form() if form.validate_on_submit(): - se = SingleExpense() + exp = SingleExpense() - form.populate_obj(se) + form.populate_obj(exp) - db.session.add(se) + db.session.add(exp) db.session.commit() return redirect(url_for("index")) diff --git a/templates/pages/edit.mako b/templates/pages/edit.jinja index 1343136..c1f4d5b 100644 --- a/templates/pages/edit.mako +++ b/templates/pages/edit.jinja @@ -1,10 +1,10 @@ -<%inherit file="add.mako" /> +{% extends "pages/add.jinja" %} -<%block name="heading"> +{% block heading %} Bearbeite Kosteneintrag -</%block> +{% endblock %} -<%block name="form_buttons"> +{% block form_buttons %} <input type="submit" name="changeB" /> <input type="submit" name="deleteB" value="Eintrag löschen" /> -</%block> +{% endblock %} |