File size: 1,927 Bytes
0399906
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import streamlit as st



def check_auth(ui: dict, password: str = "KliWinBa25!") -> None:
    """

    Simple password protection with multilingual support.

    """
    if "authenticated" not in st.session_state:
        st.session_state["authenticated"] = False

    if not st.session_state["authenticated"]:
        st.title(f"{ui['auth']['title']}")
        pw = st.text_input(ui["auth"]["prompt"], type="password")

        if pw == password:
            st.session_state["authenticated"] = True
            st.success(ui["auth"]["success"])
            if st.button(ui["auth"]["continue_button"]):
                st.rerun()
        elif pw != "":
            st.error(ui["auth"]["error"])

        st.stop()



def init_session_state():
    """

    Initializes all required Streamlit session state variables.

    """
    defaults = {
        "eingabedaten": None,
        "df_heizsysteme": None,
        "user_values": {},
        "heizlast_user": None,
        "selected_objekt_id": None,
        "selected_objekt_id_batch_detail": None,
        "szenario_bestaetigt": False,
        "szenario": None,
        "annuitaeten_gesamt_batch": []
    }

    for key, value in defaults.items():
        if key not in st.session_state:
            st.session_state[key] = value



def handle_language_switch(lang):
    if "LANG_PREV" not in st.session_state:
        st.session_state["LANG_PREV"] = lang
    if st.session_state["LANG_PREV"] != lang:
        st.session_state["scenario"] = None
        st.session_state["radio_scenario"] = None
        st.session_state["scenario_confirmed"] = False
        st.session_state["LANG_PREV"] = lang



def ensure_scenario_state():
    if "scenario_confirmed" not in st.session_state:
        st.session_state.scenario_confirmed = False
    if "scenario" not in st.session_state:
        st.session_state.scenario = None