Mise à jour de domo91.py depuis develop : PDF + déconnexion + droits test
This commit is contained in:
34
domo91.py
34
domo91.py
@@ -105,6 +105,7 @@ def generer_pdf(site, date_str):
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
st.error(f"Erreur lors de la génération du PDF : {e}")
|
st.error(f"Erreur lors de la génération du PDF : {e}")
|
||||||
|
|
||||||
# --- Initialisation des variables de session ---
|
# --- Initialisation des variables de session ---
|
||||||
if "authenticated" not in st.session_state:
|
if "authenticated" not in st.session_state:
|
||||||
st.session_state["authenticated"] = False
|
st.session_state["authenticated"] = False
|
||||||
@@ -113,9 +114,7 @@ if "role" not in st.session_state:
|
|||||||
if "lieu_autorise" not in st.session_state:
|
if "lieu_autorise" not in st.session_state:
|
||||||
st.session_state["lieu_autorise"] = None
|
st.session_state["lieu_autorise"] = None
|
||||||
|
|
||||||
# --- Sidebar (connexion + bouton PDF) ---
|
# --- Connexion utilisateur dans la sidebar ---
|
||||||
|
|
||||||
# 🔐 Connexion (toujours affichée)
|
|
||||||
st.sidebar.header("🔐 Connexion")
|
st.sidebar.header("🔐 Connexion")
|
||||||
if not st.session_state.get("authenticated"):
|
if not st.session_state.get("authenticated"):
|
||||||
login = st.sidebar.text_input("Nom d'utilisateur")
|
login = st.sidebar.text_input("Nom d'utilisateur")
|
||||||
@@ -131,6 +130,7 @@ if not st.session_state.get("authenticated"):
|
|||||||
st.session_state["role"] = result["role"]
|
st.session_state["role"] = result["role"]
|
||||||
st.session_state["lieu_autorise"] = result["Lieu"]
|
st.session_state["lieu_autorise"] = result["Lieu"]
|
||||||
st.success(f"Connecté comme {result['role']} ({result['Lieu']})")
|
st.success(f"Connecté comme {result['role']} ({result['Lieu']})")
|
||||||
|
st.rerun()
|
||||||
else:
|
else:
|
||||||
st.sidebar.error("Identifiants invalides")
|
st.sidebar.error("Identifiants invalides")
|
||||||
cursor.close()
|
cursor.close()
|
||||||
@@ -139,14 +139,28 @@ if not st.session_state.get("authenticated"):
|
|||||||
st.sidebar.error(f"Erreur lors de la connexion à la base : {e}")
|
st.sidebar.error(f"Erreur lors de la connexion à la base : {e}")
|
||||||
else:
|
else:
|
||||||
st.sidebar.success(f"Connecté ({st.session_state['role']})")
|
st.sidebar.success(f"Connecté ({st.session_state['role']})")
|
||||||
if st.sidebar.button("🔓 Déconnexion"):
|
if st.sidebar.button("🔓 Déconnexion", key="logout_sidebar"):
|
||||||
st.session_state["authenticated"] = False
|
st.session_state["authenticated"] = False
|
||||||
st.session_state["role"] = None
|
st.session_state["role"] = None
|
||||||
st.session_state["lieu_autorise"] = None
|
st.session_state["lieu_autorise"] = None
|
||||||
st.rerun()
|
st.rerun()
|
||||||
|
|
||||||
# 🔔 Forcer une alerte de test dynamique avec choix de la sonde
|
# 📄 Affichage bouton PDF si une date est choisie
|
||||||
if st.session_state.get("authenticated"):
|
site_pdf = (
|
||||||
|
st.session_state.get("lieu_autorise")
|
||||||
|
if st.session_state.get("role") != "superviseur"
|
||||||
|
else st.session_state.get("selected_site")
|
||||||
|
)
|
||||||
|
date_pdf = st.session_state.get("selected_date")
|
||||||
|
if site_pdf and date_pdf:
|
||||||
|
st.sidebar.markdown("---")
|
||||||
|
st.sidebar.subheader("📄 Rapport PDF")
|
||||||
|
if st.sidebar.button("📥 Télécharger l’état du jour (PDF)", key="pdf_btn"):
|
||||||
|
generer_pdf(site_pdf, date_pdf.strftime("%Y-%m-%d"))
|
||||||
|
|
||||||
|
|
||||||
|
# 🔔 Forcer une alerte de test dynamique avec choix de la sonde (réservé aux superviseurs)
|
||||||
|
if st.session_state.get("authenticated") and st.session_state.get("role") == "superviseur":
|
||||||
site_actuel = (
|
site_actuel = (
|
||||||
st.session_state.get("lieu_autorise")
|
st.session_state.get("lieu_autorise")
|
||||||
if st.session_state.get("role") != "superviseur"
|
if st.session_state.get("role") != "superviseur"
|
||||||
@@ -186,7 +200,7 @@ if st.session_state.get("authenticated"):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
st.success(f"Connecté ({st.session_state['role']})")
|
st.success(f"Connecté ({st.session_state['role']})")
|
||||||
if st.button("🔓 Déconnexion"):
|
if st.button("🔓 Déconnexion", key="logout_main"):
|
||||||
st.session_state["authenticated"] = False
|
st.session_state["authenticated"] = False
|
||||||
st.session_state["role"] = None
|
st.session_state["role"] = None
|
||||||
st.session_state["lieu_autorise"] = None
|
st.session_state["lieu_autorise"] = None
|
||||||
@@ -307,7 +321,7 @@ if st.session_state["authenticated"]:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
st.error(f"Erreur MySQL : {e}")
|
st.error(f"Erreur MySQL : {e}")
|
||||||
if st.session_state["role"] == "superviseur":
|
if st.session_state["role"] == "superviseur":
|
||||||
with st.expander("➕ Ajouter une nouvelle chambre froide", expanded=False):
|
with st.expander("+ Ajouter une nouvelle chambre froide", expanded=False):
|
||||||
with st.form("ajout_sonde"):
|
with st.form("ajout_sonde"):
|
||||||
nouvelle_sonde = st.text_input("Nom de la sonde")
|
nouvelle_sonde = st.text_input("Nom de la sonde")
|
||||||
temp_max = st.number_input("Température maximale autorisée (°C)", value=4)
|
temp_max = st.number_input("Température maximale autorisée (°C)", value=4)
|
||||||
@@ -364,13 +378,13 @@ if st.session_state["role"] == "superviseur":
|
|||||||
temp_max = chambre["Temp_Max"]
|
temp_max = chambre["Temp_Max"]
|
||||||
moins, val, plus = st.columns([1, 2, 1])
|
moins, val, plus = st.columns([1, 2, 1])
|
||||||
with moins:
|
with moins:
|
||||||
if st.button("➖", key=f"moins_{chambre['Id']}"):
|
if st.button("-", key=f"moins_{chambre['Id']}"):
|
||||||
temp_max -= 1
|
temp_max -= 1
|
||||||
with val:
|
with val:
|
||||||
st.markdown(f"<div style='text-align:center;font-size:20px'>{temp_max}°C</div>",
|
st.markdown(f"<div style='text-align:center;font-size:20px'>{temp_max}°C</div>",
|
||||||
unsafe_allow_html=True)
|
unsafe_allow_html=True)
|
||||||
with plus:
|
with plus:
|
||||||
if st.button("➕", key=f"plus_{chambre['Id']}"):
|
if st.button("+", key=f"plus_{chambre['Id']}"):
|
||||||
temp_max += 1
|
temp_max += 1
|
||||||
|
|
||||||
if new_etat != chambre["Etat"] or temp_max != chambre["Temp_Max"]:
|
if new_etat != chambre["Etat"] or temp_max != chambre["Temp_Max"]:
|
||||||
|
|||||||
Reference in New Issue
Block a user