diff --git a/finance/app/routers/gui.py b/finance/app/routers/gui.py index 113d728..f29a3f3 100644 --- a/finance/app/routers/gui.py +++ b/finance/app/routers/gui.py @@ -159,6 +159,11 @@ def _scenario_rows(session: Session, scenarios: list, loans: list) -> list[dict] return rows +@router.get("/hilfe", dependencies=[Depends(gui_session)]) +def hilfe_page(request: Request): + return templates.TemplateResponse(request, "hilfe.html", {}) + + @router.get("/planung", dependencies=[Depends(gui_session)]) def planung_page(request: Request, session: Session = Depends(get_session)): categories = session.execute(select(Category)).scalars().all() diff --git a/finance/app/templates/base.html b/finance/app/templates/base.html index 16a4cb9..8d2ffbd 100644 --- a/finance/app/templates/base.html +++ b/finance/app/templates/base.html @@ -13,6 +13,7 @@ Import Buchungen Planung + Hilfe Grafana
diff --git a/finance/app/templates/hilfe.html b/finance/app/templates/hilfe.html new file mode 100644 index 0000000..6833512 --- /dev/null +++ b/finance/app/templates/hilfe.html @@ -0,0 +1,82 @@ +{% extends "base.html" %} +{% block title %}Hilfe – Finanzberatung{% endblock %} +{% block content %} +

Gebrauchsanleitung

+ +

Was dieses Tool ist

+

+ Liquiditätsplanung auf Basis echter Kontoauszüge: Ist-Stand aus importierten + Auszügen, Zukunft aus gepflegten Planposten und durchgerechneten Szenarien. +

+ +

Konzepte

+ + +

Empfohlener Arbeitsablauf

+ + +

Grundregeln

+ +{% endblock %} diff --git a/finance/tests/test_gui.py b/finance/tests/test_gui.py index a70f379..6fb85f0 100644 --- a/finance/tests/test_gui.py +++ b/finance/tests/test_gui.py @@ -1,5 +1,5 @@ def test_pages_require_login(client): - for path in ("/", "/buchungen", "/import", "/planung"): + for path in ("/", "/buchungen", "/import", "/planung", "/hilfe"): r = client.get(path, follow_redirects=False) assert r.status_code in (302, 303), path assert r.headers["location"] == "/login" @@ -7,10 +7,11 @@ def test_pages_require_login(client): def test_pages_render_after_login(client): client.post("/login", data={"username": "admin", "password": "geheim"}) - for path in ("/", "/buchungen", "/import", "/planung"): + for path in ("/", "/buchungen", "/import", "/planung", "/hilfe"): r = client.get(path) assert r.status_code == 200 assert "Finanzberatung" in r.text + assert "Gebrauchsanleitung" in client.get("/hilfe").text def test_import_page_has_dropzone_and_list(client):