Pedido del equipo de campo (Leo, 28-oct 12:10). Cada foto de un acta tiene «Tomar foto» (cámara) y «Elegir de la
galería»; sección «Documentos» al final de toda acta para el documento terminado. /api/archivos acepta PDF, Word,
Excel, ODT/ODS y PowerPoint revisando los primeros bytes; /api/adjunto con nosniff, descarga lo que no es foto, PDF
o texto. Pruebas: tests-1028.sh (15) + 1027 (55) + 1023 (35) + campeón (25). Desplegado: páginas con rsync y
backend con HUP a gunicorn (DESPLIEGUE A12). Lote 2026-10-28_actas-galeria-documentos.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013SfRSvDd335NPYEbBrDFGE
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