CoolFace
Apppublic

fmatituy/selectospromanager

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
dashboard.py40 linesDownload Raw Back to modules
1from nicegui import ui
2from database.queries import get_projects
3from database.queries import db_fetchone
4from datetime import datetime
5
6@ui.refreshable
7def render_dashboard():
8    # Cargar datos dinámicos (Data re-fetched on every refresh)
9    proyectos = get_projects()
10    proy_activos = len([p for p in proyectos if p['estado'] != 'Cerrado'])
11    
12    # Pendientes SST (Accidentes/Incidentes no cerrados)
13    pend_sst = db_fetchone("SELECT COUNT(*) as c FROM accidentes_laborales WHERE estado != 'Cerrado'")[0]
14    pend_incs = db_fetchone("SELECT COUNT(*) as c FROM sst_incidentes WHERE estado != 'Resuelto'")[0]
15    total_sst = pend_sst + pend_incs
16
17    # Solicitudes de materiales pendientes
18    sol_pendientes = db_fetchone("SELECT COUNT(*) as c FROM material_requests WHERE estado = 'Pendiente'")[0]
19
20    with ui.column().classes('w-full gap-8'):
21        with ui.row().classes('w-full items-center justify-between'):
22            with ui.column().classes('gap-1'):
23                ui.label('DASHBOARD OPERATIVO').classes('text-2xl font-black text-slate-800 tracking-tight')
24                ui.label(f"Última actualización: {datetime.now().strftime('%H:%M:%S')}").classes('text-[10px] text-slate-400 font-bold')
25            
26            # Anuncio de Fase de Desarrollo
27            with ui.row().classes('px-6 py-2 bg-amber-50 border border-amber-200 rounded-2xl items-center gap-3 animate-pulse'):
28                ui.icon('construction', color='amber-700')
29                ui.label('MÓDULO EN FASE DE DESARROLLO - PRÓXIMAMENTE').classes('text-[10px] font-black text-amber-900 tracking-widest')
30
31        # El contenido de abajo se mantiene pero bajo un velo de "Desarrollo" o se simplifica
32        with ui.column().classes('w-full items-center gap-6 mt-12 opacity-40 grayscale pointer-events-none'):
33            ui.icon('analytics', size='64px', color='slate-300')
34            ui.label('Visualización de Análisis Temporales y KPIs Avanzados').classes('text-lg font-bold text-slate-400')
35            ui.label('Este componente está siendo optimizado para integrarse con Sara IA.').classes('text-xs text-slate-400 -mt-4')
36
37            # Render de gráficos removido/ocultado del flujo principal según solicitud "retira esto"
38            # with ui.grid(columns=1).classes('w-full max-w-6xl mx-auto gap-8 md:grid-cols-2 mt-4'):
39                # ... (gráficos comentados o removidos)
40