diff options
-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 %} |