Compila RAS v2 - Perimetro pilota Roem¶
Data: 2026-07-28
Obiettivo¶
Creare una versione isolata del Compila RAS per pilota Roem, senza sostituire il Compila attuale usato dai tecnici in produzione.
La v2 deve essere uno strumento da campo: compilazione tecnica, foto anche offline, consolidamento dati e preparazione alla stampa. I workflow amministrativi e post-sopralluogo restano fuori.
Principi¶
- Il Compila attuale resta invariato finche la v2 non e validata.
- La v2 viene attivata solo per tenant/utente/documento pilota.
- Il tecnico deve poter lavorare senza internet.
- I riferimenti
local:possono esistere solo sul dispositivo, mai come stato definitivo server. - Stampa e output tecnici devono partire solo da una bozza server consolidata.
- Firma e consegna restano nella view tecnico esistente, fuori dal pack v2.
- Assemblea e gestione NC completa vengono scorporate.
Moduli del Compila attuale¶
| Modulo | Decisione v2 | Note |
|---|---|---|
| Schede tecniche RAS | Tenere subito | Core del sopralluogo. |
| Risposte e note tecniche | Tenere subito | Con autosave locale e sync esplicito. |
| Foto domanda/scheda | Tenere subito | Deve funzionare offline e consolidare su MinIO quando torna rete. |
| Gallery sottoschede | Tenere subito, semplificata | Serve ai tecnici, ma con regole piu rigide su ordinamento e stampa. |
| Libretto dati condominio | Tenere subito | Solo dati necessari al sopralluogo/libretto tecnico. |
| Companion foto | Tenere nel pilota se stabile | Utile in campo, ma deve rispettare le stesse regole di consolidamento. |
| Progress compilazione | Tenere subito | Deve indicare anche stato sync/foto. |
| Preview/stampa bozza | Tenere subito | Solo se non ci sono local: o pending bloccanti. |
| Firma tecnica | Fuori | Gia gestita nella view tecnico. |
| Consegna tecnica | Fuori | Gia gestita nella view tecnico. |
| Assemblea | Scorporare | Contesto amministrativo, non tecnico da campo. |
| NC workflow | Scorporare | Va nel percorso di risanamento post-RAS. |
| Interventi/lavori | Rimandare | Se sono proposte tecniche possono rientrare dopo; se sono gestione lavori restano fuori. |
| DOCX collaborativo | Fuori MVP | Backoffice, non campo. |
| Admin approval | Fuori | Workflow amministrativo separato. |
| Export ZIP | Fuori MVP | Utile come diagnostica/admin, non come azione primaria tecnico. |
| Helper contestuale pesante | Fuori MVP | Da sostituire con micro-stati operativi nel template. |
| Reset/import storico | Fuori MVP | Solo strumenti admin/diagnostici. |
Stati dati richiesti¶
La v2 deve separare in modo esplicito questi stati:
locale: dati e foto salvati nel browser, anche offline.sync_in_corso: upload foto e salvataggio draft server in corso.conflitto: il server ha una revisione diversa e serve una scelta guidata.consolidato: nessunlocal:, nessun pending, draft server allineato.non_finalizzabile: esistono foto locali, upload falliti o conflitti.
Regole foto¶
- Le foto scattate offline restano in IndexedDB finche non vengono caricate.
- Il server non deve salvare
local:inlegacy_dynamic_answer. - Il server puo salvare una bozza non consolidata solo se marcata esplicitamente come non finalizzabile.
- Prima di preview/stampa definitiva, la v2 deve verificare assenza di
local:in tutto il payload. - Il consolidamento deve preservare metadati gallery: caption, ordinamento, include in stampa, note.
Migliorie template per uso da campo¶
La v2 dovrebbe essere piu fluida del template attuale, con meno superfici concorrenti:
- Header compatto con tre stati sempre visibili: rete, sync, consolidamento.
- Barra laterale sezioni piu rapida da scorrere, con stato per sezione: vuota, parziale, completa, foto pending.
- Azione primaria unica:
Salva e sincronizzaquando online,Salva localequando offline. - Pulsante foto sempre vicino alla domanda attiva, senza modal complessi.
- Galleria con ordinamento stabile e thumbnail a dimensione fissa.
- Messaggi brevi e operativi, non testi lunghi di spiegazione.
- Nessun modulo assemblea nel primo viewport.
- Nessun pannello NC nel flusso tecnico.
- Stampa/preview disabilitata con motivo chiaro quando il draft non e consolidato.
- Recupero conflitti in schermata dedicata, non tramite merge silenzioso.
Perimetro MVP Roem¶
Il primo pilota deve coprire:
- Apertura Compila v2 su un condominio di prova.
- Compilazione schede principali.
- Foto offline in interrato/senza rete.
- Ritorno online e consolidamento completo.
- Verifica assenza
local:su server. - Preview/stampa verticale da bozza consolidata.
- Riapertura da altro dispositivo con dati allineati.
Entry point tecnico pilota:
/dynamic/compila-v2/<documento_id>
La rotta e separata da /dynamic/compila/<documento_id> e non sostituisce il Compila attuale.
Feature gate pilota:
- codice feature:
feature.compila.ras_v2_pilot - default: disabilitata
- config opzionale:
document_ids/allowed_document_ids,user_ids/allowed_user_ids,usernames/allowed_usernames,emails/allowed_emails
Esempio attivazione tenant/documento/utente:
flask feature_flag_set \
--tenant-key tenant_netopen \
--feature-code feature.compila.ras_v2_pilot \
--enabled \
--status active \
--config-json '{"document_ids":[1234],"usernames":["roem"]}'
Criteri di accettazione¶
- Il tecnico puo completare il sopralluogo senza rete.
- Nessun
local:viene salvato come risposta autorevole. - La v2 blocca stampa/finalizzazione se restano pending o foto locali.
- Draft e risposte server sono coerenti dopo consolidamento.
- Riaprendo il documento da un secondo dispositivo si vedono le stesse foto.
- Il template e utilizzabile su tablet e telefono senza modali o pannelli superflui.
Decisioni aperte¶
- Companion foto: includerlo nel primo pilota o dopo il consolidamento base?
- Interventi: tenerli come proposta tecnica o spostarli completamente nel risanamento?
- Stampa scheda singola: serve gia in campo o basta preview completa?
- Checkpoint recovery: deve essere visibile al tecnico o solo admin?