backend/cuentas.py: restablece en bloque (todos menos leo y claude) y da de alta
a varios desde backend/cuentas/2026-10-23_alta-sitios.json (jesush, miguel, joel,
antonio, danielg); la contraseña la pide en la terminal. Miembros con sitio,
correo y correo_alt; marca contrasena_inicial con aviso en el sitio hasta que la
persona la cambie. Los ids de responsable se recalculan con el equipo de hoy.
Lote 2026-10-23_usuarios-campo. Pruebas: tests-cuentas.sh (47).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016X4CAujMuib2tDqt9JRg6X
Una pestaña por sitio (ICAVE, TIMSA, EIT, LCT, Querétaro): lo que hay, lo que va en camino
y lo que falta del kit para instalar. Movimientos con sitio, envío/recepción, origen «fuera».
Lote 2026-10-23_inventario-sitios.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016X4CAujMuib2tDqt9JRg6X
- backend Flask (backend/): recibe formularios firmados, guarda JSON por
numero de serie en /srv/projects/drogheda/actas, indice CSV, GET /api/actas
+ systemd unit + README de instalacion (nginx /api proxy)
- formularios (docs/formularios/): acta.css/acta.js (motor con autoguardado
y envio), V5 fiel al procedimiento verificado, V4 borrador adaptado,
checklist de ensamble borrador; firma = nombre + conformidad
- docs/actas/index.md + guia-ensamble-qc.md; nav actualizada
- probado end-to-end (headless): envio + validacion + guardado por serie
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt