Skip to content

# Installation

## Voraussetzungen

Das Plugin benötigt QGIS (>= 3.40.15) sowie eine PostgreSQL-Datenbank (>= 12) mit PostGIS-Erweiterung (>= 3.2).

## Installation

Das Plugin setzt sich aus zwei Komponenten zusammen: dem eigentlichen Plugin sowie der komplementären XMAS-App, die durch das Plugin in QGIS integriert wird. Die beiden Komponenten werden über das PyQtWebEngine Framework miteinander verbunden.

### XMAS-Plugin

Dieses kann über den QGIS Erweiterungsmanager installiert werden. Alternativ steht das ZIP-Archiv im Plugin-Repo zur Verfügung.

#### PyQtWebEngine

Diese zusätzliche Abhängigkeit kann nach der Installation des Plugins über die QGIS-Oberfläche in die Python-Umgebung von QGIS installiert werden, sofern sie dort noch nicht vorhanden ist.

Falls das Paket im Nutzerordner installiert wird (z.B. weil keine Schreibberechtigung im QGIS-Ordner besteht), ist für dessen Verwendung ein Neustart von QGIS erforderlich.

### XMAS-App

Hierbei handelt es sich um eine Python-Webanwendung, in der ein Großteil der Geschäftslogik für die unterstützten Anwendungsschemas implementiert ist. Sie generiert u.a. das Datenbank-Schema sowie Attributformulare für die unterschiedlichen Objektarten, validiert Eingaben und persistiert Änderungen.

Für die Bereitstellung gibt es zwei Varianten:

- durch das Plugin: die App kann durch das Plugin in der QGIS Python Umgebung installiert und gestartet werden1; hierzu auf den
  -Button im unteren linken Bereich des Plugin-Panels klicken
- extern: die App kann extern installiert und gestartet werden, z.B. auf einem dedizierten Server; siehe hierzu die Dokumentation.

Die App muss für den QGIS-Client erreichbar sein und die Datenbank muss für die App erreichbar sein.

## Vor dem ersten Start des Plugins

Über die QGIS Datenquellenverwaltung muss eine PostGIS-Verbindung für die zu verwendende Datenbank erstellt werden. Diese wird anschließend in den Plugin-Einstellungen referenziert.

Um ein bestimmtes Datenbankschema zu verwenden, kann dieses entweder explizit in den Verbindungseinstellungen angegeben oder durch den Datenbankadministrator per `SEARCH_PATH` gesteuert werden.

1. erfordert entsprechende Berechtigungen: Installation von Python-Paketen via `pip` sowie Starten eines Python-Webservers auf localhost und einem freien Port ↩