import streamlit as stimport osimport jsonimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom datetime import datetimefrom turni_analyzer import TurniAnalyzer
# Configurazione della paginast.set_page_config( page_title="Analizzatore Turni Lavorativi", page_icon="📊", layout="wide", initial_sidebar_state="expanded")
# Funzioni di utilitàdef load_results(results_path): """Carica i risultati dell'analisi da file JSON""" with open(results_path, 'r', encoding='utf-8') as f: return json.load(f)
def display_metrics(metrics): """Visualizza le metriche globali""" global_metrics = metrics['globali'] col1, col2, col3, col4 = st.columns(4) with col1: st.metric("Numero Dipendenti", global_metrics['numero_dipendenti']) with col2: st.metric("Totale Turni", global_metrics['totale_turni']) with col3: st.metric("Durata Media Turno", f"{global_metrics['durata_media_turno']:.2f} ore") with col4: st.metric("% Turni Notturni", f"{global_metrics['percentuale_turni_notturni']:.1f}%")
def plot_employee_metrics(metrics, employee_id): """Visualizza metriche per un singolo dipendente""" if employee_id not in metrics['per_dipendente']: st.warning(f"Dipendente {employee_id} non trovato nei dati") return emp_metrics = metrics['per_dipendente'][employee_id] col1, col2, col3 = st.columns(3)