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:
@@ -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,
|
||||
|
||||
@@ -604,8 +604,11 @@
|
||||
"allCountries": "alle Länder",
|
||||
"noMatch": "{{gesamt}} Banken geladen, aber keine passt zum Suchbegriff. Versuch etwas Kürzeres – manche heissen in der Liste anders als im Alltag.",
|
||||
"noneLoaded": "Die Schnittstelle hat gar keine Banken geliefert. Das liegt nicht am Suchbegriff: Prüf, ob deine Anwendung bei Enable Banking schon aktiv ist – sie wird es erst, wenn du dort deine eigenen Konten verknüpft hast.",
|
||||
"sampleTitle": "Beispiele aus der geladenen Liste:",
|
||||
"sandboxHint": "Stehen dort lauter Test- oder Mock-Institute statt echter Banken, ist deine Anwendung im Control Panel als „Sandbox“ angelegt. N26 und Revolut gibt es nur in „Production“ – dort heissen sie genau so, in DE wie in LT."
|
||||
"sampleTitle": "Beispiele quer durch die geladene Liste:",
|
||||
"sandboxHint": "Stehen dort lauter Test- oder Mock-Institute statt echter Banken, ist deine Anwendung im Control Panel als „Sandbox“ angelegt. N26 und Revolut gibt es nur in „Production“ – dort heissen sie genau so, in DE wie in LT.",
|
||||
"range": "Die Liste reicht von „{{von}}“ bis „{{bis}}“.",
|
||||
"letters": "Vorhandene Anfangsbuchstaben",
|
||||
"truncatedHint": "Fehlen ganze Buchstaben – etwa N oder R –, ist die Liste abgeschnitten und deine Bank wurde gar nicht mitgeliefert. Dann liegt es nicht am Suchbegriff, und ich muss die Abfrage blättern lassen."
|
||||
},
|
||||
"bankReturn": {
|
||||
"title": "Rückkehr von der Bank",
|
||||
|
||||
@@ -604,8 +604,11 @@
|
||||
"allCountries": "all countries",
|
||||
"noMatch": "{{gesamt}} banks loaded, but none matches. Try something shorter – some are listed under a different name than the one you know.",
|
||||
"noneLoaded": "The interface returned no banks at all. That is not the search term: check whether your Enable Banking application is active yet – it only becomes active once you have linked your own accounts there.",
|
||||
"sampleTitle": "Examples from the loaded list:",
|
||||
"sandboxHint": "If those are test or mock institutions instead of real banks, your application is registered as “Sandbox” in the Control Panel. N26 and Revolut exist only in “Production”, where they are listed under exactly those names."
|
||||
"sampleTitle": "Examples from across the loaded list:",
|
||||
"sandboxHint": "If those are test or mock institutions instead of real banks, your application is registered as “Sandbox” in the Control Panel. N26 and Revolut exist only in “Production”, where they are listed under exactly those names.",
|
||||
"range": "The list runs from “{{von}}” to “{{bis}}”.",
|
||||
"letters": "Initial letters present",
|
||||
"truncatedHint": "If whole letters are missing – N or R, say – the list is truncated and your bank was never delivered. Then the search term is innocent and the query needs paging."
|
||||
},
|
||||
"bankReturn": {
|
||||
"title": "Back from your bank",
|
||||
|
||||
@@ -282,7 +282,13 @@ export default function Bankanbindung() {
|
||||
style={{ paddingLeft: "1.2em", margin: 0 }}>
|
||||
{(banken.beispiele || []).map((n) => <li key={n}>{n}</li>)}
|
||||
</ul>
|
||||
<p className="muted small">{t("bank.sandboxHint")}</p>
|
||||
<p className="muted small" style={{ marginBottom: 2 }}>
|
||||
{t("bank.range", { von: banken.von, bis: banken.bis })}
|
||||
</p>
|
||||
<p className="muted small selectable">
|
||||
{t("bank.letters")}: {(banken.anfangsbuchstaben || []).join(" ")}
|
||||
</p>
|
||||
<p className="muted small">{t("bank.truncatedHint")}</p>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user