36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from qgis.core import QgsProject, QgsExpressionContextUtils
|
|
|
|
def get_variable(key: str, scope: str = "project") -> str:
|
|
"""
|
|
Liefert den Wert einer sn_* Variable zurück.
|
|
key: Name ohne Präfix, z.B. "verfahrensnummer"
|
|
scope: 'project' oder 'global'
|
|
"""
|
|
projekt = QgsProject.instance()
|
|
var_name = f"sn_{key}"
|
|
|
|
if scope == "project":
|
|
return QgsExpressionContextUtils.projectScope(projekt).variable(var_name) or ""
|
|
elif scope == "global":
|
|
return QgsExpressionContextUtils.globalScope().variable(var_name) or ""
|
|
else:
|
|
raise ValueError("Scope muss 'project' oder 'global' sein.")
|
|
|
|
|
|
def set_variable(key: str, value: str, scope: str = "project"):
|
|
"""
|
|
Schreibt den Wert einer sn_* Variable.
|
|
key: Name ohne Präfix, z.B. "verfahrensnummer"
|
|
value: Wert, der gespeichert werden soll
|
|
scope: 'project' oder 'global'
|
|
"""
|
|
projekt = QgsProject.instance()
|
|
var_name = f"sn_{key}"
|
|
|
|
if scope == "project":
|
|
QgsExpressionContextUtils.setProjectVariable(projekt, var_name, value)
|
|
elif scope == "global":
|
|
QgsExpressionContextUtils.setGlobalVariable(var_name, value)
|
|
else:
|
|
raise ValueError("Scope muss 'project' oder 'global' sein.")
|