tools/baue_paket.py schnuert aus dem Arbeitsstand das ZIP (genau ein Ordner vln_karten/,
ohne __pycache__) und schreibt die passende plugins.xml. Beides gehoert danach in den
Manager nach api/qgis/; von dort liefert der Server es unter /v2/qgis/ aus, und QGIS bietet
neue Fassungen von selbst an.
metadata.txt: Fassung 0.6.0, Beschreibung und Changelog auf den heutigen Stand (Widmungen
und Verkehrszeichen, Palette, Werkzeuge, Rollbalken). dist/ bleibt aus dem Git heraus.
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>
Seit dem 07.09.2026 bietet die API OGC API Features (Part 1/2/3/4) unter /v2/ogc. Neu:
- vln_karten/ogc_layers.py: Auth-Konfiguration "APIHeader" (X-API-Key aus dem Login,
kein Passwort in QGIS), GET /ogc/collections?vkz=, je Sammlung ein QgsVectorLayer(...,
"OAPIF") in Gruppen (Vorerhebung / Massnahmenblaetter / Verfahren); Speicher-CRS je
Sammlung (EPSG:25833 bzw. CRS84).
- plugin.py: Toolbar-Aktion "Alle Layer (OGC API) laden" (run_load_ogc).
- README: Weg ohne Plugin (Datenquellenverwaltung, Basic oder API-Header), Sammlungs-IDs,
Schreibregeln (in place, Vorerhebung nur "bearbeitung", Massnahmenblatt blatt_*),
Routenuebersicht; klassischer GeoJSON-Weg bleibt als zweiter Abschnitt.
- metadata: 0.2.0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Das Repo ist als Beispiel für die Ansteuerung der Karten-API aus QGIS
gedacht: README beginnt jetzt mit einem PyQGIS-Minimalbeispiel
(Login -> GET -> PUT), benennt die drei Stolpersteine (EPSG:25833,
gemischte Geometrietypen, PUT ersetzt alles) und führt das Plugin als
Referenz-Implementierung ein. metadata.txt-Beschreibung entsprechend.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lädt Verfahrensgebiet, Plan 41, Karte alter Stand (KAS) und Wertermittlung
(WE) je VKZ vollständig aus KARTE_OBJEKT (Listen-Endpunkt mit Paging) und
schreibt sie per PUT zurück. Einmaliger Login (mail/password -> userauth),
API-Key persistiert in QSettings; Verfahrens-Auswahl in der Toolbar wird
je QGIS-Projekt gemerkt. Gemischte Geometrietypen werden beim Laden in
Punkte-/Linien-/Flächen-Layer gesplittet und beim Hochladen wieder
vereint. Qt5/Qt6-kompatibel (QGIS 3.22+ und QGIS 4).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>