zmiany uxowe w panelu
This commit is contained in:
32
app.py
32
app.py
@@ -3720,10 +3720,10 @@ def recalculate_filesizes_all():
|
||||
return redirect(url_for("admin_receipts", id="all"))
|
||||
|
||||
|
||||
@app.route("/admin/mass_edit_categories", methods=["GET", "POST"])
|
||||
@app.route("/admin/edit_categories", methods=["GET", "POST"])
|
||||
@login_required
|
||||
@admin_required
|
||||
def admin_mass_edit_categories():
|
||||
def admin_edit_categories():
|
||||
page, per_page = get_page_args(default_per_page=50, max_per_page=200)
|
||||
|
||||
lists_query = ShoppingList.query.options(
|
||||
@@ -3752,13 +3752,13 @@ def admin_mass_edit_categories():
|
||||
db.session.commit()
|
||||
flash("Zaktualizowano kategorie dla wybranych list", "success")
|
||||
return redirect(
|
||||
url_for("admin_mass_edit_categories", page=page, per_page=per_page)
|
||||
url_for("admin_edit_categories", page=page, per_page=per_page)
|
||||
)
|
||||
|
||||
query_string = urlencode({k: v for k, v in request.args.items() if k != "page"})
|
||||
|
||||
return render_template(
|
||||
"admin/mass_edit_categories.html",
|
||||
"admin/edit_categories.html",
|
||||
lists=lists,
|
||||
categories=categories,
|
||||
page=page,
|
||||
@@ -3768,6 +3768,30 @@ def admin_mass_edit_categories():
|
||||
query_string=query_string,
|
||||
)
|
||||
|
||||
@app.route("/admin/edit_categories/<int:list_id>/save", methods=["POST"])
|
||||
@login_required
|
||||
@admin_required
|
||||
def admin_edit_categories_save(list_id):
|
||||
l = db.session.get(ShoppingList, list_id)
|
||||
if not l:
|
||||
return jsonify(ok=False, error="not_found"), 404
|
||||
|
||||
data = request.get_json(silent=True) or {}
|
||||
ids = data.get("category_ids", [])
|
||||
|
||||
try:
|
||||
ids = [int(x) for x in ids]
|
||||
except (TypeError, ValueError):
|
||||
return jsonify(ok=False, error="bad_ids"), 400
|
||||
|
||||
l.categories.clear()
|
||||
if ids:
|
||||
cats = Category.query.filter(Category.id.in_(ids)).all()
|
||||
l.categories.extend(cats)
|
||||
|
||||
db.session.commit()
|
||||
return jsonify(ok=True, count=len(l.categories)), 200
|
||||
|
||||
|
||||
@app.route("/admin/list_items/<int:list_id>")
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user