QGIS-Integration von XPlanung Pydantic Models
Auf Basis der in #9 skizzierten Vorarbeiten sollte es kein allzu weiter Weg mehr zu entweder direkt aus den Pydantic Models oder aus der daraus generierbaren JSON Schema Repräsentation des Models erzeugten QGIS Formularen/Eingabemasken sein.
Folgende Projekte können zur Orientierung dienen:
- https://github.com/maxfordham/ipyautoui/tree/main: Pydantic Models -> ipywidgets
- https://github.com/amsico/pyqtschema: JSON Schema -> Qt
- https://github.com/pyapp-kit/magicgui: Python Dataclasses und Pydantic Models -> Qt
- https://github.com/pydantic/FastUI: Pydantic Models -> HTML Forms
- https://pypi.org/project/pydantic-panel/ Pydantic Models -> Panel widgets/ipywidgets
Generell würde dies so aussehen:
- für eine beliebige XPlanungsklasse wird über die Pydantic Model Fields oder die JSON Schema Definition iteriert und ein zum Datentyp des jeweiligen Attributes passendes Qt Widget zum Formular hinzugefügt
- (ggf. bereits vorhandene Daten werden aus einem Coretable-basierten DB-Backend ins Model/Formular geladen)
- Daten werden eingegeben/editiert
- beim Speichern werden die Daten mit bereits implementierten Konvertierungsmethoden in ein Coretable-basiertes DB-Backend geschrieben
Ähnlich - d.h. Anwendung/Plugin stellt eine View bereit zur Bearbeitung von Daten, die im Backend in einer anderen Struktur vorliegen - wurde dies offenbar beim SAGis XPlanung Plugin umgesetzt.
Edited by Tobias Kraft