""" 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")