diff options
Diffstat (limited to '')
-rw-r--r-- | app/views/categories.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/app/views/categories.py b/app/views/categories.py index e020a11..c7346d3 100644 --- a/app/views/categories.py +++ b/app/views/categories.py @@ -1,15 +1,27 @@ from ..flask_extend import Blueprint -from flask import render_template, request, url_for +from flask import render_template, request, url_for, redirect -from ..model import Category +from ..model import db, Category mod = Blueprint('categories', __name__) def T(tpl): return "categories/%s.jinja" % tpl -@mod.route("/") +@mod.route("/", methods=("GET", "POST")) def manage (): - categories = Category.query.order_by(Category.name).all() - return render_template(T("manage"), cats = categories) + if request.method == "GET": + categories = Category.query.order_by(Category.name).all() + + return render_template(T("manage"), cats = categories) + else: + for id, name in request.form.iteritems(): + if id.startswith("n-"): + db.session.add(Category(name = name)) + else: + Category.get(id).name = name + + db.session.commit() + + return redirect(url_for(".manage")) |