54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
"""
|
||
sn_plan41/ui/tab_b_logic.py – Fachlogik für Tab B (Druck)
|
||
"""
|
||
from __future__ import annotations
|
||
from sn_basis.functions.variable_wrapper import set_variable
|
||
from sn_basis.modules.Pruefmanager import Pruefmanager
|
||
|
||
|
||
KARTENNAME_VAR = "sn_kartenname"
|
||
PLOTMASSSTAB_VAR = "sn_plotmassstab"
|
||
THEMA_38 = "§38"
|
||
THEMA_41 = "§41"
|
||
MASSSTAB_WIE_KARTENFENSTER = "Wie Kartenfenster"
|
||
|
||
KARTENNAME_BY_THEMA = {
|
||
THEMA_38: "Planungsübersicht §38 FlurbG",
|
||
THEMA_41: "Karte zum Plan über die gemeinschaftlichen und öffentlichen Anlagen (§ 41 FlurbG)",
|
||
}
|
||
|
||
PLOTMASSSTAB_BY_AUSWAHL = {
|
||
"1:5.000": "5000",
|
||
"1:10.000": "10000",
|
||
"1:15.000": "15000",
|
||
"1:20.000": "20000",
|
||
"1:25.000": "25000",
|
||
"1:50.000": "50000",
|
||
"1:100.000": "100000",
|
||
}
|
||
|
||
class TabBLogic:
|
||
"""
|
||
Kapselt die Fachlogik von Tab B.
|
||
"""
|
||
|
||
def __init__(self, pruefmanager: Pruefmanager) -> None:
|
||
self.pruefmanager = pruefmanager
|
||
|
||
def set_kartenname_for_thema(self, thema: str) -> None:
|
||
"""Setzt die Projektvariable ``sn_kartenname`` anhand des gewählten Druckthemas."""
|
||
kartenname = KARTENNAME_BY_THEMA.get(thema, "")
|
||
set_variable(KARTENNAME_VAR, kartenname, scope="project")
|
||
|
||
def set_plotmassstab_for_auswahl(self, auswahl: str, aktueller_massstab: float | None = None) -> None:
|
||
"""Setzt die Projektvariable ``sn_plotmassstab`` anhand der Maßstabsauswahl."""
|
||
if auswahl == MASSSTAB_WIE_KARTENFENSTER:
|
||
if aktueller_massstab and aktueller_massstab > 0:
|
||
set_variable(PLOTMASSSTAB_VAR, str(int(round(aktueller_massstab))), scope="project")
|
||
else:
|
||
set_variable(PLOTMASSSTAB_VAR, "", scope="project")
|
||
return
|
||
|
||
value = PLOTMASSSTAB_BY_AUSWAHL.get(auswahl, "")
|
||
set_variable(PLOTMASSSTAB_VAR, value, scope="project")
|
||
|