feat: Kontenreihenfolge selbst bestimmen
Die Liste stand in der Anlegereihenfolge, die selten die gewuenschte ist.
Neuer Endpunkt PUT /accounts/order nimmt die IDs in der gewuenschten Folge
und schreibt die Position; er muss vor /{account_id} stehen, sonst faengt
die ID-Route den Pfad ab. Fremde IDs werden abgewiesen.
In der Kontenliste zwei Pfeile je Zeile, optimistisch sortiert, damit die
Liste beim Klicken nicht springt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -200,3 +200,24 @@ def test_konto_loeschen_erhaelt_zugang_beim_zielkonto(admin):
|
||||
assert admin.get(f"/api/accounts/{ziel['id']}").json()["balance_cents"] == 20000
|
||||
assert admin.delete(f"/api/accounts/{quelle['id']}").status_code == 204
|
||||
assert admin.get(f"/api/accounts/{ziel['id']}").json()["balance_cents"] == 20000
|
||||
|
||||
|
||||
def test_kontenreihenfolge_laesst_sich_setzen(admin):
|
||||
"""Die Liste stand in der Anlegereihenfolge; die will man selbst bestimmen."""
|
||||
a = _mk_account(admin, name="Zuerst angelegt")
|
||||
b = _mk_account(admin, name="Danach angelegt")
|
||||
c = _mk_account(admin, name="Zuletzt angelegt")
|
||||
namen = lambda: [x["name"] for x in admin.get("/api/accounts").json()
|
||||
if x["name"].endswith("angelegt")]
|
||||
assert namen() == ["Zuerst angelegt", "Danach angelegt", "Zuletzt angelegt"]
|
||||
|
||||
r = admin.put("/api/accounts/order", json={"ids": [c["id"], a["id"], b["id"]]})
|
||||
assert r.status_code == 204, r.text
|
||||
assert namen() == ["Zuletzt angelegt", "Zuerst angelegt", "Danach angelegt"]
|
||||
|
||||
|
||||
def test_kontenreihenfolge_nimmt_keine_fremden_konten(admin, client):
|
||||
"""Fremde Konto-IDs in der Liste dürfen nichts verschieben."""
|
||||
eigen = _mk_account(admin, name="Eigenes Konto")
|
||||
r = admin.put("/api/accounts/order", json={"ids": [eigen["id"], 999999]})
|
||||
assert r.status_code == 404
|
||||
|
||||
Reference in New Issue
Block a user