diff --git a/apps/platforms/src/lib/longevity/gestionale.ts b/apps/platforms/src/lib/longevity/gestionale.ts index 16b98d4..8ae508a 100644 --- a/apps/platforms/src/lib/longevity/gestionale.ts +++ b/apps/platforms/src/lib/longevity/gestionale.ts @@ -56,6 +56,197 @@ export function campiDelCheckup(db: Database.Database, alla: string): GruppoChec return ordine.map((asse) => ({ asse, campi: perAsse.get(asse)! })); } +// --- Struttura del modulo di check-up (#13, manuale di Nicola del 27/09/2026) -------------- +// A differenza di campiDelCheckup (raggruppato per asse, invariato: lo usa ancora la pagina +// di dettaglio sessione, sessione/[id].astro, per la vista di sola lettura), qui l'ordine e +// il raggruppamento sono quelli del modulo cartaceo: Pre-test -> Mobilità -> Equilibrio -> +// Presa -> Core -> Forza spinta -> Forza trazione -> Arti inferiori -> Aerobico -> Strumenti. +// Una sezione o e' a campi fissi, o e' "ad alternative" (piu' protocolli per la stessa +// sotto-metrica, uno solo si compila: radio button, mai + + )) : ( +
+ {s.alternative.map((alt) => ( +
+ + + + {alt.soglia &&

{alt.soglia}

} + {alt.campi.map((c) => ( + + ))} + {alt.dettagli && alt.dettagli.length > 0 && ( +
+ Frequenza cardiaca per step (7,5-14,5 km/h) + {alt.dettagli.map((c) => ( + + ))} +
+ )} +
+ ))} +
+ )} + + ))} + + {modulo.altreMisure.length > 0 && ( +
+

Altre misure

+ {modulo.altreMisure.map((c) => ( ))}
- ))} + )} + + {!sessione && ( +
+

Note operatore

+ +
+ )}
Annulla @@ -73,3 +136,19 @@ const errore = Astro.url.searchParams.get('errore');
+ + diff --git a/apps/platforms/src/styles/longevity.css b/apps/platforms/src/styles/longevity.css index 2f338b2..56ceef6 100644 --- a/apps/platforms/src/styles/longevity.css +++ b/apps/platforms/src/styles/longevity.css @@ -156,6 +156,15 @@ .lg-field--consenso legend { padding: 0 4px; font-weight: 500; color: var(--c-heading); } .lg-field--consenso label { display: flex; align-items: center; gap: 8px; font-weight: 400; } +/* Sezioni ad alternative del check-up (#13): un fieldset per protocollo, radio in legenda. */ +.lg-form__alternative { display: flex; flex-direction: column; gap: 12px; } +.lg-form__alternativa { border: 1px solid var(--lg-line); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; } +.lg-form__alternativa legend { padding: 0 4px; } +.lg-form__alternativa legend label { display: flex; align-items: center; gap: 8px; font-weight: 500; color: var(--c-heading); } +.lg-form__soglia { margin: 0; font-size: .8rem; color: var(--c-text-light); } +.lg-form__alternativa details { font-size: .85rem; } +.lg-form__alternativa summary { cursor: pointer; color: var(--c-text-light); } + .lg-form__errore { color: var(--c-heading); font-weight: 600; margin: 0; } .lg-form__nav { display: flex; justify-content: space-between; gap: 12px; }