longevity: 'Il mio referto' porta il trainer in una pagina senza uscita #10

Closed
opened 2026-09-26 13:44:39 +00:00 by Adriano · 3 comments
Owner

src/layouts/Longevity.astro:61 — la barra del gestionale mostra sempre 'Il mio referto' → /longevity/io. Per un trainer/admin senza fascicolo io.astro mostra 'Nessun fascicolo collegato' nella variante 'referto', che non ha alcun link (né gestionale, né Piattaforme). Riprodotto da Adriano con trainer-prova, 2026-09-26. Anche il cliente, nella variante referto, non ha un link a /piattaforme.

src/layouts/Longevity.astro:61 — la barra del gestionale mostra sempre 'Il mio referto' → /longevity/io. Per un trainer/admin senza fascicolo io.astro mostra 'Nessun fascicolo collegato' nella variante 'referto', che non ha alcun link (né gestionale, né Piattaforme). Riprodotto da Adriano con trainer-prova, 2026-09-26. Anche il cliente, nella variante referto, non ha un link a /piattaforme.
Adriano added the bug label 2026-09-26 13:44:39 +00:00
Author
Owner

ESITO: richiesta
RIF: gitea:Adriano/InsanityLab-web#10
COSA: nessuna pagina Longevity deve essere senza uscita; "Il mio referto" solo a chi ha un fascicolo.
FILE (tutti sotto apps/platforms/):

  1. src/layouts/Longevity.astro
    • frontmatter: const user = Astro.locals.user; const staff = user?.role === 'admin' || user?.role === 'trainer';
      const haFascicolo = user ? codicePerUtenteLoggato(user.id) !== null : false; (import da '../lib/longevity/anagrafica').
    • variante gestionale: il link "Il mio referto" (riga ~61) solo se haFascicolo.
    • variante referto: nell'header lg-top, dopo le crumbs, un gruppo di link a destra:
      se staff → <a href="/longevity/gestionale">← Gestionale</a>; sempre → <a href="/piattaforme">Piattaforme</a>.
      Classe nuova lg-top__link (prefisso lg-, solo colori var(--c-...) già usati nel foglio, es. quelli di .lg-home).
  2. src/pages/longevity/io.astro — ramo !codice: se l'utente è admin/trainer il testo diventa
    "Il tuo account è da staff: non ha un fascicolo personale." con link "Torna al gestionale" (/longevity/gestionale);
    per gli altri resta il testo attuale più un link a /piattaforme.
  3. src/styles/longevity.css — regola .lg-top__link e, se serve, display flex su .lg-top per metterli a destra; su mobile devono andare a capo senza scroll orizzontale.
    TEST: tests/longevity/pagine.test.ts, test statici nuovi:
    • il layout contiene href="/piattaforme" e href="/longevity/gestionale" nel ramo referto, e il link /longevity/io è condizionato (cerca haFascicolo &&);
    • io.astro contiene un href a /longevity/gestionale.
      Comandi: cd apps/platforms && npx vitest run && npx tsc --noEmit -p . && npm run build
      NON TOCCARE: RULES in src/lib/auth.ts; lib/longevity/*.ts; nessun import di db identity nel layout oltre codicePerUtenteLoggato.
      TRAPPOLE: tests/longevity/anagrafica.test.ts vieta che un file .ts/.astro contenga insieme le stringhe "Identity" e "Longevity" (il layout si chiama Longevity: non scrivere "Identity" né in codice né nei commenti). tests/longevity/referto.test.ts intercetta la parola "select" (anche in HTML/commenti): non usarla. Test sui colori ammessi in longevity.css: riusa solo var() già presenti.
ESITO: richiesta RIF: gitea:Adriano/InsanityLab-web#10 COSA: nessuna pagina Longevity deve essere senza uscita; "Il mio referto" solo a chi ha un fascicolo. FILE (tutti sotto apps/platforms/): 1. src/layouts/Longevity.astro - frontmatter: `const user = Astro.locals.user;` `const staff = user?.role === 'admin' || user?.role === 'trainer';` `const haFascicolo = user ? codicePerUtenteLoggato(user.id) !== null : false;` (import da '../lib/longevity/anagrafica'). - variante gestionale: il link "Il mio referto" (riga ~61) solo se `haFascicolo`. - variante referto: nell'header `lg-top`, dopo le crumbs, un gruppo di link a destra: se `staff` → `<a href="/longevity/gestionale">← Gestionale</a>`; sempre → `<a href="/piattaforme">Piattaforme</a>`. Classe nuova `lg-top__link` (prefisso lg-, solo colori var(--c-...) già usati nel foglio, es. quelli di .lg-home). 2. src/pages/longevity/io.astro — ramo `!codice`: se l'utente è admin/trainer il testo diventa "Il tuo account è da staff: non ha un fascicolo personale." con link "Torna al gestionale" (/longevity/gestionale); per gli altri resta il testo attuale più un link a /piattaforme. 3. src/styles/longevity.css — regola .lg-top__link e, se serve, display flex su .lg-top per metterli a destra; su mobile devono andare a capo senza scroll orizzontale. TEST: tests/longevity/pagine.test.ts, test statici nuovi: - il layout contiene href="/piattaforme" e href="/longevity/gestionale" nel ramo referto, e il link /longevity/io è condizionato (cerca `haFascicolo &&`); - io.astro contiene un href a /longevity/gestionale. Comandi: cd apps/platforms && npx vitest run && npx tsc --noEmit -p . && npm run build NON TOCCARE: RULES in src/lib/auth.ts; lib/longevity/*.ts; nessun import di db identity nel layout oltre codicePerUtenteLoggato. TRAPPOLE: tests/longevity/anagrafica.test.ts vieta che un file .ts/.astro contenga insieme le stringhe "Identity" e "Longevity" (il layout si chiama Longevity: non scrivere "Identity" né in codice né nei commenti). tests/longevity/referto.test.ts intercetta la parola "select" (anche in HTML/commenti): non usarla. Test sui colori ammessi in longevity.css: riusa solo var() già presenti.
Adriano added the assegnata:goldrake label 2026-09-26 13:44:55 +00:00
Author
Owner

🤖 goldrake — preso in carico 2026-09-26T13:44:55Z
ramo: lavoro/goldrake · capacità: docker, pubblica, sempre-accesa, systemd

🤖 goldrake — **preso in carico** 2026-09-26T13:44:55Z ramo: `lavoro/goldrake` · capacità: docker, pubblica, sempre-accesa, systemd
Author
Owner

Soluzione

Commit 22a400b, merge 8f95a38 in main, in produzione 2026-09-26 13:49 UTC. Longevity.astro: 'Il mio referto' nella barra del gestionale solo se codicePerUtenteLoggato(user.id) non è null; variante referto con link '← Gestionale' (admin/trainer) e 'Piattaforme' (tutti) nell'header. io.astro: senza fascicolo, lo staff vede 'account da staff' con link al gestionale, il cliente un link a /piattaforme. PROVA: vitest 261/261, tsc 0; da produzione con trainer-prova: nessun link 'Il mio referto' nel gestionale, /longevity/io mostra i link di ritorno.

**Soluzione** Commit 22a400b, merge 8f95a38 in main, in produzione 2026-09-26 13:49 UTC. Longevity.astro: 'Il mio referto' nella barra del gestionale solo se codicePerUtenteLoggato(user.id) non è null; variante referto con link '← Gestionale' (admin/trainer) e 'Piattaforme' (tutti) nell'header. io.astro: senza fascicolo, lo staff vede 'account da staff' con link al gestionale, il cliente un link a /piattaforme. PROVA: vitest 261/261, tsc 0; da produzione con trainer-prova: nessun link 'Il mio referto' nel gestionale, /longevity/io mostra i link di ritorno.
Adriano removed the assegnata:goldrake label 2026-09-26 13:49:16 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/InsanityLab-web#10