Add week planner entry editing popups

This commit is contained in:
2026-04-13 14:57:36 +02:00
parent 7b751b4d47
commit 6c7c1f01c9
4 changed files with 204 additions and 2 deletions
+10 -1
View File
@@ -3815,6 +3815,7 @@ def planner():
week_hints=build_week_hints(week_start),
upcoming_entries=fetch_upcoming_shopping_needs(limit=8),
household_settings=get_household_settings(),
visibility_options=VISIBILITY_FORM_OPTIONS,
)
@@ -3941,6 +3942,7 @@ def planner_generated_meal():
@login_required
def planner_update(entry_id: int):
selected_date = parse_plan_date(request.form.get("plan_date"))
return_week = request.form.get("return_week", "").strip()
entry = get_db().execute(
f"""
SELECT plan_entries.*,
@@ -3960,19 +3962,24 @@ def planner_update(entry_id: int):
ensure_can_edit(describe_record(dict(entry)), "Diesen Planeintrag kannst du gerade nicht bearbeiten.")
except PermissionError as exc:
flash(str(exc), "error")
if return_week:
return redirect(url_for("main.planner", week=return_week))
return redirect(url_for("main.planner_day", date=selected_date.isoformat()))
visibility = normalize_visibility(request.form.get("visibility"), entry["visibility"])
note = request.form.get("note", "").strip()
update_plan_entry(entry_id, visibility=visibility, note=note)
flash("Der Planeintrag wurde angepasst.", "success")
if return_week:
return redirect(url_for("main.planner", week=return_week))
return redirect(url_for("main.planner_day", date=selected_date.isoformat(), daypart_id=entry["daypart_id"]))
@main_bp.post("/planner/<int:entry_id>/remove")
@login_required
def planner_remove(entry_id: int):
selected_date = request.args.get("date", "")
selected_date = request.args.get("date", "") or request.form.get("plan_date", "").strip()
return_week = request.form.get("return_week", "").strip()
entry = get_db().execute(
f"""
SELECT plan_entries.*,
@@ -3994,6 +4001,8 @@ def planner_remove(entry_id: int):
flash("Der Planeintrag wurde entfernt.", "info")
except PermissionError as exc:
flash(str(exc), "error")
if return_week:
return redirect(url_for("main.planner", week=return_week))
if selected_date:
return redirect(url_for("main.planner_day", date=selected_date))
return redirect(url_for("main.planner"))