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 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