jaimalklyde commited on
Commit
4849684
·
verified ·
1 Parent(s): d697600

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +29 -18
src/streamlit_app.py CHANGED
@@ -359,28 +359,39 @@ def run_vortex_system():
359
 
360
  # Vérification de l'import
361
  if Validation_Contract:
362
- # Bouton d'action
363
- if st.button("🚀 Exécuter le Pipeline ETL", type="primary"):
364
-
365
- # 1. Instanciation du moteur
366
- etl_engine = Validation_Contract.ETL_Engine(client, SHEET_NAME)
367
-
368
- # 2. Exécution avec Spinner
369
- with st.spinner("🔄 Nettoyage et Validation des données en cours..."):
370
- success, result_explorer = etl_engine.run_etl()
371
-
372
- # 3. Affichage du rapport
373
- if success:
374
- # result_explorer est l'objet DataExplorer qui contient la méthode d'affichage
375
- result_explorer.show_etl_report()
376
- else:
377
- st.error(f"❌ Échec critique du pipeline : {result_explorer}")
378
 
379
- else:
380
- st.info("Cliquez ci-dessus pour lancer le nettoyage des données et voir le rapport d'impact.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
 
382
  else:
383
  st.error("❌ Le module Validation_Contract n'est pas chargé.")
 
384
 
385
  else:
386
  st.error("❌ Impossible de se connecter à Google Sheets")
 
359
 
360
  # Vérification de l'import
361
  if Validation_Contract:
362
+ # Instanciation du moteur
363
+ etl_engine = Validation_Contract.ETL_Engine(client, SHEET_NAME)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
364
 
365
+ # --- AUTOMATISATION (AUTO-RUN) ---
366
+ # On vérifie si les données manquent. Si oui, on lance l'ETL automatiquement.
367
+ if 'data_explorer' not in st.session_state:
368
+ with st.spinner("🚀 Démarrage automatique du Pipeline ETL..."):
369
+ success, result = etl_engine.run_etl()
370
+
371
+ if not success:
372
+ st.error(f"❌ Échec critique du pipeline : {result}")
373
+
374
+ # --- AFFICHAGE DU RAPPORT ---
375
+ # À ce stade, soit l'ETL vient de tourner, soit les données étaient déjà là.
376
+ if 'data_explorer' in st.session_state:
377
+ explorer = st.session_state.data_explorer
378
+
379
+ # Petit header de statut
380
+ col_status, col_btn = st.columns([3, 1])
381
+ with col_status:
382
+ st.success(f"✅ Données synchronisées (Dernière MAJ : {explorer.load_timestamp.strftime('%H:%M:%S')})")
383
+ with col_btn:
384
+ # Bouton optionnel pour forcer la mise à jour si les données Google Sheets ont changé
385
+ if st.button("🔄 Forcer Rechargement"):
386
+ del st.session_state['data_explorer']
387
+ st.rerun()
388
+
389
+ # Affichage des graphiques de performance
390
+ explorer.show_etl_report()
391
 
392
  else:
393
  st.error("❌ Le module Validation_Contract n'est pas chargé.")
394
+
395
 
396
  else:
397
  st.error("❌ Impossible de se connecter à Google Sheets")