Files
cdc-project-management/HORAS_EQUIPO_ETAPA_2_2026-09-01.md
T

2.9 KiB

Horas del equipo — Etapa 2

Objetivo

Agregar al Tablero CDC una vista clara para consultar las horas registradas por persona y por día, combinando automáticamente:

  • Horas históricas migradas desde Registro horas.
  • Horas nuevas creadas desde el módulo Tiempo de la app.

Experiencia de usuario

El encabezado del Tablero incorpora el botón Horas del equipo. Al abrirlo se muestra un módulo visual integrado con el estilo de la aplicación que incluye:

  • Periodos rápidos: hoy, 7 días, 30 días, este mes y todo.
  • Rango personalizado desde/hasta.
  • Filtro por Equipo actual / Histórico / Todos.
  • Búsqueda de personas.
  • Orden por más horas, actividad reciente o nombre.
  • Resumen del periodo: horas, personas con horas, días con actividad y promedio por persona/día.
  • Resumen individual: total, promedio diario y días con registros.
  • Desglose diario seleccionable.
  • Detalle de proyecto, tarea, país, duración y nota.
  • Paginación de actividades.

El promedio diario se calcula sobre los días en los que la persona tiene al menos un registro; no presupone una jornada objetivo ni inventa feriados.

Identidad de personas

Las horas nuevas traen correo y se vinculan directamente al roster activo. Para el histórico, la app realiza una conciliación conservadora por nombre: coincidencia exacta o al menos dos componentes del nombre coincidentes de forma no ambigua. Esto permite unificar, por ejemplo, variantes del nombre usadas antes y después de la app sin fusionar nombres ambiguos como Thaía Suplencia Gerardo.

Seguridad y datos

  • No se modifica tablero_cdc_projects.
  • No se modifica tablero_cdc_project_time_entries.
  • No se modifica tablero_cdc_time_history.
  • No se modifica el workflow de sincronización de Registro horas.
  • No se modifica el sistema de métricas.
  • El módulo reutiliza public.tablero_cdc_time_combined, creada en la Etapa 1.
  • El SQL de esta etapa solo crea public.tablero_cdc_get_team_hours_roster(), un RPC de lectura mínima que devuelve nombre/correo de usuarios activos después de validar que quien consulta tiene acceso al Tablero.

Instalación

  1. Ejecutar supabase_tablero_cdc_team_hours_dashboard.sql en Supabase.
  2. Probar el dist incluido en el ZIP.
  3. Entrar al Tablero y abrir Horas del equipo.
  4. Confirmar que en Equipo actual aparecen también usuarios con 0 horas en el periodo.
  5. Probar 7 días, 30 días, este mes y Todo.
  6. Seleccionar una persona y un día; comprobar el detalle de actividades.

Compatibilidad

El dist actual contiene assets/team-hours-dashboard-v1.js para mantener la misma estrategia de despliegue del ZIP recibido, que ya utiliza módulos complementarios para Tiempo, Listas, Briefs, métricas y persistencia. El código fuente también incluye la implementación nativa React (TeamHoursDialog.tsx + teamHours.ts) para que una compilación futura conserve la funcionalidad sin depender del parche del dist.