feat(F-160): completed feature
This commit is contained in:
@@ -1,23 +1,14 @@
|
||||
# Feature activa: F-159 — Admin responsive collapsible sidebar
|
||||
# Feature activa: F-160 — Fix Reporting sales grouped queries returning 500
|
||||
|
||||
## Objetivo
|
||||
Añadir un único `SidebarToggle` reutilizando el layout y `NAV_ITEMS` existentes.
|
||||
## Causa raíz
|
||||
`runSalesQuery` concatena `${selectExpr}` directamente antes de `COUNT(...)` sin coma, generando SQL inválido en todos los grupos. Además, el grupo `terminal` selecciona `o.store_id` pero agrupa solo por `terminal_id`.
|
||||
|
||||
## Comportamiento
|
||||
- Desktop (`lg+`): expandido a 240px o colapsado a 80px mostrando solo iconos; preferencia guardada en `localStorage`.
|
||||
- Mobile/tablet: sidebar como drawer superpuesto con backdrop; siempre muestra iconos y etiquetas.
|
||||
- El estado del drawer no duplica ni sustituye el estado persistido de desktop.
|
||||
- Transición suave de ancho y desplazamiento.
|
||||
|
||||
## Accesibilidad
|
||||
- Botones con `aria-label`, `aria-expanded` y `aria-controls`.
|
||||
- Drawer cerrado no es visible ni alcanzable por teclado.
|
||||
- Escape cierra el drawer.
|
||||
- Los enlaces conservan etiquetas accesibles y tooltips al colapsar.
|
||||
## Solución
|
||||
- Añadir coma explícita tras las columnas dimensionales.
|
||||
- Agrupar terminal por `store_id, terminal_id`.
|
||||
- Añadir tests de integración del servicio SQL real para day/channel/store/terminal.
|
||||
|
||||
## Aceptación
|
||||
1. Toggle visible y operable por teclado.
|
||||
2. Preferencia desktop persiste tras recarga.
|
||||
3. Sidebar desktop colapsado muestra solo iconos.
|
||||
4. Mobile/tablet usa drawer con backdrop y cierre por Escape.
|
||||
5. Una sola fuente de navegación y build responsive sin regresiones.
|
||||
- Los cuatro endpoints usados por Dashboard responden 200.
|
||||
- No hay interpolación de valores del usuario; solo expresiones de enum controlado.
|
||||
- Build, tests y verify pasan.
|
||||
|
||||
Reference in New Issue
Block a user