feat: arrastrar con el mouse para reordenar actividades y tareas
Hook reutilizable useDragReorder (drag & drop nativo HTML5, sin libreria nueva) usado en dos lugares: ListView (opt-in via onReorder, deshabilitado mientras haya un ordenamiento por columna activo) para el listado de actividades de un proyecto, y el listado de tareas de una actividad. Orden persistido en sort_order (activities y tasks, migracion 012, posiciones siempre 1..N). Fix real encontrado durante las pruebas: sincronizar el estado interno del hook por la REFERENCIA del arreglo de entrada entraba en loop infinito de renders cuando el llamador pasa "algo || []" (un arreglo nuevo en cada render mientras los datos cargan). Corregido para sincronizar por el contenido (ids), no por referencia. Probado en dev con curl (persistencia del orden) y Playwright (arrastrar filas en el navegador, orden visible y guardado correctamente, sin errores de consola tras el fix). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,10 @@
|
||||
proceso del backend (`setInterval` cada 15 min, sin cron del SO ni cola nueva).
|
||||
- `system_settings.value` para `smtp_pass_enc` va **cifrado** (AES-256-GCM, `ENCRYPTION_KEY` del
|
||||
`.env`) — nunca en texto plano, nunca se devuelve por la API (solo `configured: true/false`).
|
||||
- `activities.sort_order`/`tasks.sort_order`: orden manual (arrastrar con el mouse en la UI). `0` =
|
||||
nunca reordenado a mano (la migración `012` lo inicializa con el `id` para preservar el orden
|
||||
previo); el endpoint de reordenar siempre escribe posiciones `1..N`, nunca `0`, para que esa
|
||||
migración siga siendo idempotente en deploys futuros sin pisar un orden real ya guardado.
|
||||
- Borrado lógico donde aplique (`users.is_active`); nunca DELETE físico de usuarios **activos** con
|
||||
historial (los `pending_approval` rechazados sí se borran, ver arriba).
|
||||
- `projects.deleted_at`/`deleted_by`: eliminación lógica (quien puede editar el proyecto puede
|
||||
|
||||
Reference in New Issue
Block a user