forked from AG_QGIS/Plugin_SN_Basis
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
"""
|
||
sn_basis/functions/settings_logic.py – Logik zum Lesen und Schreiben der Plugin-Einstellungen
|
||
über den zentralen variable_wrapper.
|
||
"""
|
||
|
||
from sn_basis.functions.variable_wrapper import (
|
||
get_variable,
|
||
set_variable,
|
||
)
|
||
|
||
|
||
class SettingsLogic:
|
||
"""
|
||
Verwaltet das Laden und Speichern der Plugin-Einstellungen.
|
||
Alle Variablen werden als sn_* Projektvariablen gespeichert.
|
||
"""
|
||
|
||
# Alle Variablen, die gespeichert werden sollen
|
||
VARIABLEN = [
|
||
"amt",
|
||
"behoerde",
|
||
"landkreis_user",
|
||
"sachgebiet",
|
||
"bezeichnung",
|
||
"verfahrensnummer",
|
||
"gemeinden",
|
||
"landkreise_proj",
|
||
]
|
||
|
||
def load(self) -> dict[str, str]:
|
||
"""
|
||
Lädt alle Variablen aus dem Projekt.
|
||
Rückgabe: dict mit allen Werten (leere Strings, wenn nicht gesetzt).
|
||
"""
|
||
daten: dict[str, str] = {}
|
||
for key in self.VARIABLEN:
|
||
daten[key] = get_variable(key, scope="project")
|
||
return daten
|
||
|
||
def save(self, daten: dict[str, str]) -> None:
|
||
"""
|
||
Speichert alle übergebenen Variablen im Projekt.
|
||
daten: dict mit key → value
|
||
"""
|
||
for key, value in daten.items():
|
||
if key in self.VARIABLEN:
|
||
set_variable(key, value, scope="project")
|