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:
|
||||
st.error(f"Erreur lors de la génération du PDF : {e}")
|
||||
|
||||
# --- Initialisation des variables de session ---
|
||||
if "authenticated" not in st.session_state:
|
||||
st.session_state["authenticated"] = False
|
||||
@@ -113,9 +114,7 @@ if "role" not in st.session_state:
|
||||
if "lieu_autorise" not in st.session_state:
|
||||
st.session_state["lieu_autorise"] = None
|
||||
|
||||
# --- Sidebar (connexion + bouton PDF) ---
|
||||
|
||||
# 🔐 Connexion (toujours affichée)
|
||||
# --- Connexion utilisateur dans la sidebar ---
|
||||
st.sidebar.header("🔐 Connexion")
|
||||
if not st.session_state.get("authenticated"):
|
||||
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["lieu_autorise"] = result["Lieu"]
|
||||
st.success(f"Connecté comme {result['role']} ({result['Lieu']})")
|
||||
st.rerun()
|
||||
else:
|
||||
st.sidebar.error("Identifiants invalides")
|
||||
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}")
|
||||
else:
|
||||
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["role"] = None
|
||||
st.session_state["lieu_autorise"] = None
|
||||
st.rerun()
|
||||
|
||||
# 🔔 Forcer une alerte de test dynamique avec choix de la sonde
|
||||
if st.session_state.get("authenticated"):
|
||||
# 📄 Affichage bouton PDF si une date est choisie
|
||||
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 = (
|
||||
st.session_state.get("lieu_autorise")
|
||||
if st.session_state.get("role") != "superviseur"
|
||||
@@ -186,7 +200,7 @@ if st.session_state.get("authenticated"):
|
||||
|
||||
else:
|
||||
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["role"] = None
|
||||
st.session_state["lieu_autorise"] = None
|
||||
@@ -307,7 +321,7 @@ if st.session_state["authenticated"]:
|
||||
except Exception as e:
|
||||
st.error(f"Erreur MySQL : {e}")
|
||||
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"):
|
||||
nouvelle_sonde = st.text_input("Nom de la sonde")
|
||||
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"]
|
||||
moins, val, plus = st.columns([1, 2, 1])
|
||||
with moins:
|
||||
if st.button("➖", key=f"moins_{chambre['Id']}"):
|
||||
if st.button("-", key=f"moins_{chambre['Id']}"):
|
||||
temp_max -= 1
|
||||
with val:
|
||||
st.markdown(f"<div style='text-align:center;font-size:20px'>{temp_max}°C</div>",
|
||||
unsafe_allow_html=True)
|
||||
with plus:
|
||||
if st.button("➕", key=f"plus_{chambre['Id']}"):
|
||||
if st.button("+", key=f"plus_{chambre['Id']}"):
|
||||
temp_max += 1
|
||||
|
||||
if new_etat != chambre["Etat"] or temp_max != chambre["Temp_Max"]:
|
||||
|
||||
Reference in New Issue
Block a user