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>
- Auswahl über GET /tgen/auswahl (Manager seit 06.10.2026): oben die eigenen Landkreise
(„… — Linkliste des Landkreises“), dann die Verfahren; als oFB die Verfahren des Landkreises
mit „(nur lesen)“. Älterer Server ohne die Route: Rückfall auf /tgen.
- Landkreis gewählt: „Liste holen“ lädt die Linkliste des ganzen Landkreises; „Layer laden“
erklärt, dass es für einen Landkreis keine Verfahrenslayer gibt.
- 401 und 403 getrennt: nur 401 (AuthError) meldet ab, 403 (KeinZugriff) zeigt eine Meldung.
Bis 0.6.0 verwarf jedes 403 den gespeicherten API-Key.
- OGC-Sammlungen mit vln:schreibbar: false werden schreibgeschützt geladen; Meldungen für Stil
und Verkehrszeichen nennen „nur lesen“ als Grund.
- Linkliste: Gruppe › Untergruppe › Layer im Ebenenbaum (linkliste.zielgruppe), Untergruppe
auch in der Dienstliste.
- README: Abschnitt „Geodienste aus der Linkliste“; Tests ohne Netz:
tools/headless_linkliste_test.py (neu), tools/headless_panel_test.py erweitert — beide grün
mit QGIS 4.2 offscreen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Daniel Helbig (LK Meissen) am 14.09.2026: ist die Seitenleiste hoeher als der Bildschirm,
schiebt sie den unteren Rand des QGIS-Fensters ins Unsichtbare. Grund: ein QDockWidget
reicht die Mindesthoehe seines Inhalts an das Hauptfenster weiter.
Der Inhalt haengt jetzt in einer QScrollArea (widgetResizable, kein Rahmen, waagerechter
Balken aus). Damit meldet das Dock nur noch 88 px Mindesthoehe statt 931; der Inhalt bleibt
ueber einen senkrechten Rollbalken erreichbar. Die Mindestbreite wandert auf die Rollflaeche
und bekommt die Balkenbreite aufgeschlagen (278 px), damit nichts angeschnitten wird. Die
Diensteliste gibt sich mit 90 statt 140 px zufrieden -- ihre Mindesthoehe zaehlt in die des
Docks hinein.
Geprueft mit tools/headless_panel_test.py (QGIS 4.2 offscreen, 0 Fehler): Rollflaeche da,
Dock verlangt 88 px bei 931 px Inhalt, Rollbalken wird gebraucht, kein waagerechter Balken.
Der Test laeuft neuerdings auch ohne VLN_TOKEN -- der Online-Teil wird dann uebersprungen,
die Layout-Pruefung nicht.
Closes#1
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Erik, 08.09.2026: "in die GUI das Speichern via OGC einbauen, GeoJSON nicht mehr
verwenden."
- Seitenleiste hat jetzt zwei Bloecke: "Layer" (Auswahl, laden, Aenderungen
speichern) und "Darstellung" (Stil, Vorlage-Haken).
- Neuer Knopf "Aenderungen speichern" -> VlnKartenPlugin.run_save_edits():
schliesst die offenen Bearbeitungssitzungen ALLER geladenen OAPIF-Layer auf
einmal; ohne offene Bearbeitung kommt ein Hinweis statt einer Aktion.
Zurueckgeschrieben wird ohnehin je Feature (Part 4), der Knopf beendet nur die
Sitzung.
- Der GeoJSON-Weg ist raus: die vier Datensatz-Knoepfe, "Aktiven Layer
hochladen", DATASETS, run_load_dataset, run_upload_active_layer,
_confirm_replace_existing, vln_karten/layer_manager.py sowie
KartenApiClient.load_layer_complete/save_feature_collection.
- Stil-Hinweise angepasst: den Stil des eigenen Verfahrens darf jeder speichern,
die Vorlage nur die Gruppe MODUL_KARTENSTIL (Server-PR #565).
Geprueft headless mit QGIS 4.2 gegen die Live-API (TG Test 27998): ohne
Bearbeitung Hinweis, mit Aenderung Sitzung geschlossen, API zaehlt +1, Feature
sichtbar, danach wieder aufgeraeumt. Panel-Test deckt die neuen Knoepfe ab.
metadata.txt 0.5.0.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Der OAPIF-Provider fragt je Sammlung nacheinander Sammlung, Schema, Stil,
OPTIONS und die erste Seite ab — bei 27 Sammlungen dauert das Anlegen 20,5 s
(gemessen 08.09.2026, Berbisdorf).
- ogc_layers.vorwaermen(): holt Landing, OpenAPI, Conformance, Sammlung, Schema
und Stil vorab und gleichzeitig ueber Qts Ereignisschleife (unter 1,5 s fuer
84 Antworten). layer_hinzufuegen ruft es vor dem ersten Layer auf. Ergebnis
14,2 s statt 20,5 s, und die Zeit schwankt deutlich weniger.
- Seitenleiste: drei Haken (Verfahren / Vorerhebung / Massnahmenblaetter) waehlen
aus, was geladen wird. Nur Verfahren 11,1 s (21 Layer), nur Vorerhebung oder
nur Massnahmenblaetter je 1,6 s (3 Layer).
Bewusst NICHT parallel: ein in einem Python-Thread gebauter OAPIF-Layer laesst
sich zwar in 0,9 s erzeugen, stuerzt aber beim ersten getFeatures() ab
(Segfault, gemessen) — der Provider gehoert dem Thread, der ihn gebaut hat.
tools/headless_panel_test.py prueft die neue Auswahl mit. metadata.txt 0.4.0.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Erik, 08.09.2026: "ich will keine Toolbar, sondern so eine Seitenleiste auf der
rechten Seite."
- vln_karten/panel.py (neu): andockbares QDockWidget, rechts angedockt, mit den
Abschnitten Anmeldung, Verfahren, OGC API und Klassisch (GeoJSON) sowie einer
Statuszeile. Reine Oberflaeche; Klicks gehen als Rueckrufe ans Plugin.
- Verfahrensliste bekommt ein Suchfeld (Hausregel: Auswahllisten immer mit
Filter). Die Auswahl bleibt beim Filtern erhalten, "kein Treffer" liefert
kein VKZ.
- Der Stil-Knopf hat jetzt ein Haekchen "als Vorlage fuer alle Verfahren"; die
Umschalttaste wirkt weiterhin.
- Abmelden ist ein eigener Knopf (verwirft den gespeicherten API-Key).
- Menue Web -> VLN Karten -> "Seitenleiste anzeigen" blendet sie wieder ein.
- tools/headless_panel_test.py: prueft Zustaende, Filter, Rueckrufe und rendert
das Layout als PNG (QGIS 4.2 offscreen). Lauf am 08.09.2026: 17 Pruefungen,
0 Fehler, 285 Verfahren in der Liste.
- README und metadata.txt (0.3.0) nachgezogen.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>