Merge branch 'lavoro/goldrake-i5' into lavoro/goldrake

This commit is contained in:
2026-09-26 13:06:22 +00:00
7 changed files with 496 additions and 1 deletions
+2 -1
View File
@@ -64,7 +64,8 @@ const referto = sessioneId !== null ? refertoDi(db, sessioneId) : null;
<p>
InsanityLab Longevity monitora il tuo percorso nel tempo: più compilazioni
raccontano come cambi, non solo come stai oggi.
<a href="/longevity/questionario">Compila di nuovo il questionario</a>.
<a href="/longevity/progressione">Guarda il tuo andamento nel tempo</a> o
<a href="/longevity/questionario">compila di nuovo il questionario</a>.
</p>
</section>
</div>
@@ -0,0 +1,47 @@
---
// L'andamento nel tempo del cliente: una sessione per punto, i punteggi congelati che
// quella sessione ha davvero. Stesso modello di io.astro: la pagina non interroga il
// database da sola (c'è un test che lo verifica, referto.test.ts, esteso a tutte le pagine
// sotto src/pages/longevity/), il codice cliente arriva da codicePerUtenteLoggato
// (anagrafica.ts, l'unico modulo autorizzato a toccare identity), i punti da progressioneDi
// (progressione.ts, che legge SOLO score — mai un ricalcolo).
import Longevity from '../../layouts/Longevity.astro';
import Progressione from '../../components/longevity/Progressione';
import { getLongevityDb } from '../../lib/longevity/db';
import { codicePerUtenteLoggato } from '../../lib/longevity/anagrafica';
import { progressioneDi } from '../../lib/longevity/progressione';
export const prerender = false;
const user = Astro.locals.user!;
const codice = codicePerUtenteLoggato(user.id);
const db = getLongevityDb();
const punti = codice ? progressioneDi(db, codice) : [];
---
<Longevity title="Andamento nel tempo" crumbs={['Andamento nel tempo']}>
{!codice && (
<div class="lg-card">
<p>Nessun fascicolo è ancora collegato al tuo account. Contatta lo staff InsanityLab.</p>
</div>
)}
{codice && punti.length < 2 && (
<div class="lg-card lg-card--incompleto">
<p>Serve almeno un secondo check-up o questionario per vedere un andamento.</p>
<p><a href="/longevity/io">Torna al tuo referto</a>.</p>
</div>
)}
{codice && punti.length >= 2 && (
<div class="lg-referto">
<section class="lg-card">
<h2>Il tuo andamento</h2>
<Progressione client:load punti={punti} />
</section>
<section class="lg-card">
<p><a href="/longevity/io">Torna al tuo referto</a>.</p>
</section>
</div>
)}
</Longevity>