Vai al contenuto

Matrice Allineamento Compila V3 / Easy Builder / Legacy - 2026-08-02

Obiettivo

Compila V3 deve diventare il runtime principale per RAS, costruito su Easy Builder e compatibile con i dati storici del Compila legacy. Compila V2 non e' piu' una direzione di prodotto: resta solo fallback temporaneo finche' V3 non copre i blocchi critici.

Stato Sintetico

Area Stato V3 Note
Architettura modulare OK JS separati per API, app, render, editor, media, preset, map, AI, markup. Nessun nuovo monolite.
Lettura modello Easy Builder OK Sezioni, domande, label, help, meta, required, choices, detail_fields, document_check.
Salvataggio risposte OK Endpoint V3 dedicato, validazione qid modello, errori visibili in UI.
Tipi campo base OK text, textarea, email, number/numeric/integer/float/decimal, date, checkbox.
Scelte Easy Builder OK choices/options lette da field/config/meta, strict choices rispettate in UI e backend.
Campi obbligatori OK required/obbligatoria/meta.required allineati e blocco locale su vuoto.
Foto domanda OK Limite 4 foto per domanda, identita' key+questionId+photoOrdinal, thumb, parcheggio, cestino.
Foto telefono/QR OK Upload da companion, note foto, parcheggio e riallineamento.
GPS/posizione Parziale Evidenza posizione e modale OSM presenti. Mancano test browser reali e politica finale su obbligatorieta' posizione.
Annotazioni foto legacy-like Parziale avanzato Cerchi, frecce, testo, NC alto-destra, slider, preview, undo/reset, salvataggio copia annotata. Mancano strumenti legacy minori e test visuali browser.
AI foto Parziale Analisi, correzione tecnico, copia esito/evidenza. Da governare permessi per tecnico specifico e qualita' suggerimenti.
Document check Parziale avanzato Stato live, category_id/category_name, riepilogo, esiti manuali. Mancano upload/collegamento documento direttamente dalla domanda V3.
NC RAS Parziale Sync backend su risposta RAS presente. Da verificare flusso completo apertura/risoluzione/chiusura e UI dedicata.
Stampa RAS Parziale Motore esterno preservato, pulsanti PDF presenti. Da validare output verticale RAS V2/legacy e mapping payload completo.
Compatibilita' legacy question id OK legacy_question_id resta nel payload ma non viene mostrato al tecnico.
Compatibilita' dati storici foto OK Record legacy senza photoOrdinal ancora supportati.
V2 retirement Non pronto V2 cestinabile come roadmap, ma non ancora rimovibile da produzione.

Copertura Easy Builder

Contratto Campi Legacy / Easy Builder / V3

Questa e' la matrice operativa per evitare fork tra Easy Builder, legacy Compila e runtime V3. Ogni campo deve essere valutato su quattro passaggi: definizione modello, render V3, salvataggio V3, effetto su stampa/NC/documentale.

Famiglia campo Fonte Easy Builder / legacy V3 oggi Gap operativo Prossimo intervento
Risposta singola RAS type=select, choices, question_mode=si_no_in_attesa OK: select, strict choices, default Si/No/In attesa Nessuno bloccante Tenere test su scelte da field/config/meta.
Risposta booleana type=boolean/bool, legacy si/no OK: resa come choice Si/No Valutare se legacy usa anche 1/0 in stampa Aggiungere caso di compatibilita' stampa se emerge da payload reale.
Testo breve type=text/email OK: input testo/email Mancano placeholder, maxlength, suffix/prefix in campo principale Portare attributi Easy Builder anche sul controllo principale.
Testo lungo type=textarea/long_text OK: textarea Righe/placeholder non sempre lette dal meta principale Allineare rows, placeholder, maxlength.
Numero/importo type=number/numeric/integer/float/decimal OK: input number step, min, max, suffix non completi sul campo principale Riutilizzare detailControlAttrs anche per field principale.
Data type=date OK Verificare formato legacy/stampa Test payload stampa con data.
Checkbox type=checkbox OK: salva 1 o vuoto Semantica stampa da confermare Mappare label finale in payload stampa.
Multiselect type=multiselect/multi/tags nei preset DUVRI OK base: campo principale multi-select e validazione per singolo valore Da verificare stampa/DUVRI reale Testare su payload Easy Builder reale prima di estendere a DUVRI.
Supplier lookup type=supplier_lookup DUVRI Mancante in V3 RAS Non bloccante RAS, ma blocca riuso runtime per DUVRI Tenere fuori dal P0 RAS, schedulare dopo parita' RAS.
Detail fields generici meta.detail_fields OK per text, textarea, select, number, date, checkbox File/image filtrati; attributi avanzati parziali Separare allegati da foto e completare attributi.
Detail fields In attesa meta.in_attesa_detail_fields OK: switch su valore In attesa Condizionali diversi da In attesa mancanti Definire piccolo motore condizionale Easy Builder.
Foto domanda Legacy immagini + Easy Builder detail_fields.image OK bridge: detail_fields.image abilita il blocco Foto domanda, porta required, max, accept e avviso mancante Da validare su browser reale con modello Easy Builder Test manuale su domanda con immagine obbligatoria e stampa payload.
Document check question_mode=document_check, meta.document_check Parziale avanzato: stato live e risposta manuale Manca upload/associazione documento dalla domanda Prossimo blocco dopo campi base.
NC/Rischio Legacy detail aliases, rischio 1/2/3/4/6/9 Parziale: sync NC e fallback locali Fallback rischio/categoria nel JS V3, non governati da Easy Builder/tabelle Spostare configurazione rischio/categorie in metadati/tabelle e usare fallback solo se assente.
AI foto Foto server + contesto domanda Parziale: suggerisce/corregge e prepara nota/esito Permessi per tecnici specifici e audit correzione da completare Dopo consolidamento foto/campo.
Posizione GPS Foto/campo operativo Parziale: verifica e mappa Policy obbligatorieta' non decisa Definire regola per RAS certificato sul posto.

Gate Per Dire "Campo Allineato"

Un campo e' allineato solo se:

  1. Easy Builder lo puo' definire senza metadati duplicati in V3.
  2. V3 lo legge da field, config o meta senza fallback hardcoded come fonte primaria.
  3. V3 lo rende correttamente su tablet e desktop.
  4. V3 salva nello stesso legacy_dynamic_answer.valore_json usato da legacy/stampa.
  5. La validazione backend accetta solo valori coerenti col modello.
  6. Se il campo incide su NC, stampa o documentale, il relativo effetto e' verificato.

Primo Gap Chiuso

Il primo intervento tecnico e' stato chiuso: campi principali con attributi Easy Builder essenziali (placeholder, min, max, step, maxlength, rows) e campo principale multiselect con salvataggio array e validazione backend per singolo valore.

Il bridge per detail_fields.image e' stato chiuso: V3 non crea una seconda UI upload dentro Compila, ma usa il blocco Foto domanda come implementazione ufficiale del campo immagine Easy Builder.

Coperto

  • field.type: text, textarea, long_text, email, number, numeric, integer, float, decimal, date, checkbox, boolean, select, radio, enum, dropdown, combo, multiselect, multi_select, multi, tags, document_check.
  • choices/options: lette da field, field.config, field.meta.
  • required: letto da required, obbligatoria, meta.required.
  • detail_fields: render e salvataggio per testo, textarea, select/options, number, date, checkbox/boolean.
  • in_attesa_detail_fields: switch automatico quando il valore e' In attesa.
  • document_check: stato live da endpoint documentale e scelta manuale.
  • question_mode: usato per preset risposta e opzioni default si/no/in attesa.
  • description/help/hint: mostrati come aiuto domanda.

Parziale

  • detail_fields di tipo file, image, photo, picture: per immagini/foto sono gestiti tramite bridge verso il blocco Foto domanda. Allegati non fotografici restano fuori dal bridge.
  • document_check.allow_manual_override: letto nel riepilogo se presente nel payload, ma non c'e' ancora una UI dedicata per impostarlo come override formale.
  • document_check.match_scope: l'endpoint attuale lavora su tenant/cliente. Serve verificare se tutti gli scope legacy sono equivalenti.
  • conditional_document_check: presente nei preset Easy Builder, non ancora eseguito come regola runtime V3 completa.
  • campi condizionali generici: non ancora una matrice runtime completa.

Mancante

  • motore condizionale completo Easy Builder lato V3.
  • upload documento direttamente dalla domanda document_check.
  • gestione allegati non fotografici dentro domanda.
  • audit per singola regola Easy Builder: visibile, salvata, stampata, sincronizzata NC.
  • test automatico su browser autenticato con screenshot mobile/desktop.

Copertura Legacy Compila

Coperto o equivalente

  • domande con numerazione e label pulite.
  • risposta e note operative.
  • foto per domanda, cestino, parcheggio, ripristino.
  • annotazioni principali: NC, cerchi, frecce, testo, undo/reset.
  • compatibilita' record storici foto senza photoOrdinal.
  • pulsanti verso V2/legacy ancora disponibili come fallback.
  • generazione/apertura PDF tramite motore esterno, senza incorporare il motore in V3.

Parziale

  • flusso NC completo legacy: apertura automatica c'e', ma serve test end-to-end su modifica risposta, revisione, risoluzione e stampa.
  • stampa verticale RAS legacy/V2: serve audit payload e confronto PDF.
  • documenti richiesti legacy: V3 legge e mostra stato, ma non fa ancora tutto il ciclo upload/associazione/override dalla domanda.
  • annotazioni: strumenti principali presenti, ma il legacy va confrontato strumento per strumento per evitare regressioni operative.

Mancante o da decidere

  • regole legacy speciali per sezioni/domande non ancora censite in matrice.
  • eventuali automazioni legacy legate a chiusura intervento/RAS.
  • policy finale: quando una posizione GPS e' obbligatoria per certificare presenza.

Cosa Blocca Il Cestino Di V2

V2 puo' essere considerato dismesso solo dopo questi gate:

  1. Stampa RAS verticale validata su documento reale e confrontata con output legacy/V2.
  2. Flusso NC completo verificato: risposta NC, apertura NC, modifica risposta OK, risoluzione/coerenza stato, stampa.
  3. Document check completo: stato live, risposta manuale, upload/associazione documento, override, stampa.
  4. Condizionali Easy Builder minimi: almeno in_attesa, document check condizionale, visibilita' campi/dettagli.
  5. Test browser autenticato mobile e desktop su documento demo pulito.
  6. Piano migrazione dati/fallback: cosa succede ai record V2 esistenti e ai link gia' mandati ai tecnici.

Priorita' Prossime

Priorita' Lavoro Motivo
P0 Audit stampa RAS V3 vs legacy/V2 Senza stampa validata non si puo' togliere V2.
P0 Matrice campi speciali legacy reali Serve sapere esattamente cosa manca, non a sensazione.
P1 Document check upload/associazione dalla domanda E' il pezzo documentale piu' operativo.
P1 Flusso NC end-to-end RAS senza NC affidabile non e' completo.
P1 Condizionali Easy Builder runtime Necessario per modelli reali non lineari.
P2 Test visuali Playwright autenticati Serve stabilizzare mobile, thumb, modali, markup.
P2 Pulizia documento demo 7176 o clone baseline I dati di test attuali sono misti e possono falsare verifiche.

Decisione Operativa

  • Continuare sviluppo solo su V3.
  • Non aggiungere nuove feature a V2.
  • Tenere V2 accessibile come fallback finche' i gate P0 non sono chiusi.
  • Usare legacy come specifica funzionale, non come base architetturale.
  • Aggiornare questa matrice ad ogni blocco completato.