diag: Alphabetischen Bereich der Bankliste zeigen

815 geladene Banken bei ueber 2500 verfuegbaren, und alle Beispiele beginnen
mit A oder B – das deutet auf eine abgeschnittene Liste, nicht auf einen
falschen Suchbegriff. Die Sandbox-Vermutung ist damit widerlegt: "Aachener
Bank" und "BBVA" sind echte Institute.

Die Antwort nennt jetzt den Bereich von/bis und alle vorhandenen
Anfangsbuchstaben. Fehlen N und R, ist die Sache entschieden und die Abfrage
braucht Blaettern – dann suche ich nicht laenger am falschen Ende.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-26 21:54:58 +02:00
co-authored by Claude Opus 5
parent d3e4b0e089
commit 74641aeeac
4 changed files with 34 additions and 8 deletions
+17 -3
View File
@@ -93,9 +93,23 @@ def banken(db: Session, user: User, land: str | None = None,
# gleich aus, egal ob die Liste leer kam, der Suchbegriff nicht passte –
# oder die Anwendung als Sandbox angelegt wurde und lauter Test-Institute
# liefert. An der Kostprobe sieht man Letzteres sofort.
beispiele = sorted({str(b.get("name")) for b in roh if b.get("name")})[:8]
return {"gesamt": len(roh), "treffer": treffer[:MAX_TREFFER],
"gekuerzt": len(treffer) > MAX_TREFFER, "beispiele": beispiele}
# Beispiele ueber den ganzen Bereich streuen, nicht nur den Anfang zeigen.
# Endet die Liste alphabetisch bei „B", ist sie abgeschnitten – und man
# sucht sonst ewig nach einer Bank, die schlicht nicht mitgeliefert wurde.
namen = sorted({str(b.get("name")) for b in roh if b.get("name")})
beispiele = (namen[:3] + namen[len(namen) // 2: len(namen) // 2 + 2] + namen[-3:]
if len(namen) > 8 else namen)
return {
"gesamt": len(roh),
"treffer": treffer[:MAX_TREFFER],
"gekuerzt": len(treffer) > MAX_TREFFER,
"beispiele": beispiele,
"von": namen[0] if namen else None,
"bis": namen[-1] if namen else None,
# Fängt überhaupt eine Bank mit diesen Buchstaben an? Wenn nicht, fehlt
# der Teil des Alphabets, und der Suchbegriff ist unschuldig.
"anfangsbuchstaben": sorted({n[:1].upper() for n in namen}),
}
def starte_verbindung(db: Session, user: User, aspsp_name: str, land: str,