NutrigenieLLM / client /pages /user__info_perso.py
Sahm269's picture
Upload 12 files
5b2d4e7 verified
raw
history blame
4.4 kB
import streamlit as st
def info_perso():
# Récupérer le gestionnaire de base de données
db_manager = st.session_state.get("db_manager")
if db_manager is None:
st.error("Erreur : DBManager n'est pas initialisé.")
else:
# Récupérer les informations de l'utilisateur connecté
user_id = st.session_state["user_id"]
query = f"SELECT * FROM utilisateurs WHERE id_utilisateur = {user_id}"
user_info = db_manager.query(query)
if not user_info:
st.error("Utilisateur non trouvé.")
else:
user_info = user_info[0] # Récupérer la première ligne (unique utilisateur)
# print(user_info) # Récupérer et afficher les informations de l'utilisateur
# Premier formulaire (Nom, Email, Mot de passe)
col1, col2, col3 = st.columns(3)
with col1:
nom = st.text_input("Nom", user_info["login"])
with col2:
email = st.text_input("Email", user_info["email"])
# Deuxième formulaire (Objectifs nutritionnels, Poids, Taille)
col1, col2, col3 = st.columns(3)
with col1:
objectifs_nutritionnels_val = (
user_info["objectifs_nutritionnels"]
if user_info["objectifs_nutritionnels"]
else "Vide"
)
objectifs_nutritionnels = st.selectbox(
"Objectifs nutritionnels",
["Prise de masse", "Tonification", "Perdre du poids", "Vide"],
index=[
"Prise de masse",
"Tonification",
"Perdre du poids",
"Vide",
].index(objectifs_nutritionnels_val),
)
with col2:
poids = st.number_input("Poids (kg)", value=user_info["poids"], step=1)
with col3:
taille = st.number_input(
"Taille (cm)", value=user_info["taille"], step=1
)
# Troisième formulaire (Régime particulier, Activité physique, Objectif calorique)
col1, col2, col3 = st.columns(3)
with col1:
regime_particulier = st.text_area(
"Régime particulier", user_info["regime_particulier"]
)
with col2:
# Traitement de la valeur vide pour l'activité physique
activite_physique_val = (
user_info["activite_physique"]
if user_info["activite_physique"]
else "Vide"
)
activite_physique = st.selectbox(
"Activité physique",
["Sédentaire", "Légère", "Modérée", "Intense", "Vide"],
index=["Sédentaire", "Légère", "Modérée", "Intense", "Vide"].index(
activite_physique_val
),
)
with col3:
objectif_calorique = st.text_input(
"Objectif calorique", user_info["objectif_calorique"]
)
# Bouton pour sauvegarder toutes les informations
if st.button("Tout mettre à jour"):
table_name = "utilisateurs"
set_clause = """login = ?, email = ?, objectifs_nutritionnels = ?, poids = ?, taille = ?,
regime_particulier = ?, activite_physique = ?, objectif_calorique = ?"""
condition = "id_utilisateur = ?"
# Rassembler les paramètres à passer à la méthode
params = (
nom,
email,
objectifs_nutritionnels,
poids,
taille,
regime_particulier,
activite_physique,
objectif_calorique,
user_id,
)
# Appel à la méthode update_data avec les bons paramètres
db_manager.update_data(table_name, set_clause, condition, params)
st.success("Informations mises à jour avec succès.")