diff --git a/finance/app/routers/gui.py b/finance/app/routers/gui.py
index 7c79b2d..b5b71ed 100644
--- a/finance/app/routers/gui.py
+++ b/finance/app/routers/gui.py
@@ -291,7 +291,6 @@ def planung_page(request: Request, session: Session = Depends(get_session)):
recurring = _list_recurring(session=session)
planned = _list_planned(session=session)
loans = _list_loans(session=session)
- scenarios = _list_scenarios(session=session)
return templates.TemplateResponse(request, "planning.html", {
"categories": categories,
"category_names": {c.id: c.name for c in categories},
@@ -300,8 +299,23 @@ def planung_page(request: Request, session: Session = Depends(get_session)):
"suggestions": _recurring_suggestions(session=session),
"planned": planned,
"loans": loans,
- "scenario_rows": _scenario_rows(session, scenarios, loans),
"rhythms": ["monthly", "quarterly", "yearly"],
"repayment_types": ["annuity", "bullet"],
+ })
+
+
+@router.get("/szenarien", dependencies=[Depends(gui_session)])
+def szenarien_page(request: Request, session: Session = Depends(get_session)):
+ categories = session.execute(select(Category)).scalars().all()
+ recurring = _list_recurring(session=session)
+ loans = _list_loans(session=session)
+ scenarios = _list_scenarios(session=session)
+ return templates.TemplateResponse(request, "szenarien.html", {
+ "categories": categories,
+ "category_names": {c.id: c.name for c in categories},
+ "recurring": recurring,
+ "recurring_names": {r.id: r.name for r in recurring},
+ "loans": loans,
+ "scenario_rows": _scenario_rows(session, scenarios, loans),
"modifier_kinds": ["percent", "absolute", "remove", "ende"],
})
diff --git a/finance/app/templates/base.html b/finance/app/templates/base.html
index 431ed95..c334915 100644
--- a/finance/app/templates/base.html
+++ b/finance/app/templates/base.html
@@ -14,6 +14,7 @@
Buchungen
Salden
Planung
+ Szenarien
Admin
Hilfe
Grafana
@@ -74,6 +75,12 @@
return JSON.stringify(out);
}
});
+
+ function toggleEdit(prefix, id, editing) {
+ // UX-Regel: Zeilen werden versteckt (hidden), nie aus dem DOM entfernt.
+ document.getElementById(prefix + '-row-' + id).hidden = editing;
+ document.getElementById(prefix + '-edit-' + id).hidden = !editing;
+ }