Initialisation depuis le code en production
This commit is contained in:
100
utils/db.py
100
utils/db.py
@@ -1,100 +0,0 @@
|
||||
import mysql.connector
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
def lire_alertes_sondes():
|
||||
conn = None
|
||||
cursor = None
|
||||
try:
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
cursor.execute("SELECT * FROM Alertes_Chaufferie ORDER BY Debut_defaut DESC")
|
||||
return cursor.fetchall()
|
||||
except Exception as e:
|
||||
import streamlit as st
|
||||
st.warning(f"Erreur lecture alertes : {e}")
|
||||
return []
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if conn and conn.is_connected():
|
||||
conn.close()
|
||||
|
||||
def acquitter_alerte(id_alerte):
|
||||
conn = None
|
||||
cursor = None
|
||||
try:
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("UPDATE Alertes_Chaufferie SET Etat = 'Acquitté' WHERE Id = %s", (id_alerte,))
|
||||
conn.commit()
|
||||
except Exception as e:
|
||||
import streamlit as st
|
||||
st.warning(f"Erreur lors de l'acquittement : {e}")
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if conn and conn.is_connected():
|
||||
conn.close()
|
||||
|
||||
|
||||
def verifier_utilisateur_commun(login, password):
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
|
||||
query = """
|
||||
SELECT NomUtilisateur FROM Commun.AccesUtilisateurs
|
||||
WHERE NomUtilisateur = %s
|
||||
AND MotDePasse = %s
|
||||
AND (DateExpiration IS NULL OR DateExpiration >= CURDATE())
|
||||
"""
|
||||
cursor.execute(query, (login, password))
|
||||
user = cursor.fetchone()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
return user # None si non trouvée
|
||||
|
||||
def get_connection():
|
||||
return mysql.connector.connect(
|
||||
host=os.getenv("DB_HOST"),
|
||||
user=os.getenv("DB_USER"),
|
||||
password=os.getenv("DB_PASSWORD"),
|
||||
database=os.getenv("DB_NAME")
|
||||
)
|
||||
|
||||
def get_latest_chaufferie():
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
query = """
|
||||
SELECT c1.Sonde, c1.Temperature, c1.Date, c1.Topic
|
||||
FROM Chaufferie c1
|
||||
INNER JOIN (
|
||||
SELECT Sonde, MAX(Date) AS MaxDate
|
||||
FROM Chaufferie
|
||||
GROUP BY Sonde
|
||||
) c2 ON c1.Sonde = c2.Sonde AND c1.Date = c2.MaxDate
|
||||
ORDER BY c1.Topic, c1.Sonde
|
||||
"""
|
||||
cursor.execute(query)
|
||||
data = cursor.fetchall()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
return data
|
||||
|
||||
def get_history_by_sonde(sonde_name):
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
query = """
|
||||
SELECT Date, Temperature
|
||||
FROM Chaufferie
|
||||
WHERE Sonde = %s AND Date >= NOW() - INTERVAL 1 DAY
|
||||
ORDER BY Date ASC
|
||||
"""
|
||||
cursor.execute(query, (sonde_name,))
|
||||
data = cursor.fetchall()
|
||||
cursor.close()
|
||||
conn.close()
|
||||
return data
|
||||
|
||||
Reference in New Issue
Block a user