Linkliste: Kartenwahl hakt die passenden Dienste vor
Erik, 06.10.2026: neben dem Thema eine zweite Gliederung — für welche Karten ein Dienst gedacht ist (Wege- und Gewässerplan, Neugestaltungsgrundsätze, Wertermittlung; mehrfach). Der Manager liefert dafür je Eintrag `karten` und den Katalog unter GET /linkliste/karten. Über der Dienstliste steht jetzt je Karte ein Häkchen (Katalog vom Server, Rückfall auf die drei Karten bei älterem Server). Eine oder mehrere Karten gewählt: angehakt sind die Dienste mit mindestens einer passenden Karte (linkliste.vorhaken), ohne Wahl alle wie bisher; von Hand nachjustieren bleibt möglich, eine neu geholte Liste übernimmt die Wahl. Karten im Tooltip. Fassung bleibt 0.7.0 (noch nicht ausgeliefert). Tests ohne Netz erweitert, beide grün. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,6 +91,26 @@ pruefe(zweiter.name() == "Biotope" and len(oben.children()) == 2 and len(natur.c
|
||||
"zweiter Ladelauf legt nichts doppelt an")
|
||||
pruefe(sonst.name() == "Sonstiges" and not sonst.children(), "ohne Untergruppe direkt in die Gruppe")
|
||||
|
||||
print("== Karten: Katalog und Vorhaken ==")
|
||||
from vln_karten.linkliste import KARTEN_VORGABE, karten_laden, vorhaken
|
||||
d = [{"name": "A", "karten": ["p41"]}, {"name": "B", "karten": ["ngg", "we"]}, {"name": "C"}]
|
||||
pruefe(vorhaken(d, []) == [True, True, True], "ohne Kartenwahl alles angehakt")
|
||||
pruefe(vorhaken(d, ["p41"]) == [True, False, False], "Wege- und Gewässerplan: nur A")
|
||||
pruefe(vorhaken(d, ["p41", "we"]) == [True, True, False], "zwei Karten: A und B (mehrfach)")
|
||||
k = ac.KartenApiClient(api_key="pruef")
|
||||
k._request = lambda m, p, **kw: {"karten": [{"schluessel": "p41", "name": "Wege- und Gewässerplan"},
|
||||
{"schluessel": "kas", "name": "Karte alter Stand"}]}
|
||||
pruefe([x["schluessel"] for x in karten_laden(k)] == ["p41", "kas"],
|
||||
"Katalog vom Server (neue Karte ohne neue Plugin-Fassung)")
|
||||
|
||||
|
||||
def kein_katalog(m, p, **kw):
|
||||
raise ac.ApiError("GET /linkliste/karten lieferte HTTP 404", 404)
|
||||
|
||||
|
||||
k._request = kein_katalog
|
||||
pruefe(karten_laden(k) == KARTEN_VORGABE, "aelterer Server: Vorgabe der drei Karten")
|
||||
|
||||
print("== Ergebnis: %d Fehler ==" % len(FEHLER))
|
||||
for f in FEHLER:
|
||||
print(" -", f)
|
||||
|
||||
@@ -88,6 +88,27 @@ panel.set_dienste([{"name": "Denkmal Punkte", "gruppe_name": "Kultur", "untergru
|
||||
pruefe(panel.dienste_liste.item(0).text().startswith("Denkmal Punkte · Kultur › Denkmal · "),
|
||||
"Untergruppe in der Dienstliste: %r" % panel.dienste_liste.item(0).text())
|
||||
pruefe(panel.dienste_liste.item(1).text().startswith("Wald · Natur · "), "ohne Untergruppe wie bisher")
|
||||
|
||||
print("== Karten: Wahl hakt vor ==")
|
||||
from vln_karten.linkliste import KARTEN_VORGABE
|
||||
panel.set_karten(KARTEN_VORGABE)
|
||||
pruefe(list(panel.karten_haken) == ["p41", "ngg", "we"] and panel.karten_beschriftung.isVisibleTo(panel),
|
||||
"je Karte ein Haekchen")
|
||||
panel.set_dienste([{"name": "Biotope", "gruppe_name": "Natur", "karten": ["ngg"]},
|
||||
{"name": "Wege", "gruppe_name": "Verkehr", "karten": ["p41", "ngg"]},
|
||||
{"name": "Bodenwert", "gruppe_name": "Boden", "karten": ["we"]}])
|
||||
an = lambda: [panel.dienste_liste.item(i).checkState() == Qt.CheckState.Checked
|
||||
for i in range(panel.dienste_liste.count())]
|
||||
pruefe(an() == [True, True, True], "ohne Wahl alles angehakt")
|
||||
panel.karten_haken["p41"].setChecked(True)
|
||||
pruefe(an() == [False, True, False], "Wege- und Gewaesserplan: nur passende: %r" % an())
|
||||
panel.karten_haken["we"].setChecked(True)
|
||||
pruefe(an() == [False, True, True], "zwei Karten zugleich: %r" % an())
|
||||
panel.set_dienste([{"name": "Neu", "karten": ["we"]}, {"name": "Ohne"}])
|
||||
pruefe(an() == [True, False], "neue Liste uebernimmt die Kartenwahl: %r" % an())
|
||||
pruefe("Karten: Wertermittlung" in panel.dienste_liste.item(0).toolTip(), "Karten im Tooltip")
|
||||
for haken in panel.karten_haken.values():
|
||||
haken.setChecked(False)
|
||||
panel.set_angemeldet(False)
|
||||
GERUFEN.clear()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user