Calendario: il 19 e il 20 settembre non sono un buco, sono un evento e una chiusura
Quei due giorni non stanno in nessuna delle due griglie perche' non hanno class: il 19 c'e' la presentazione della nuova apertura, il 20 si sta chiusi. Scritto come avviso con la sua finestra, il vuoto smette di sembrare una trascrizione incompleta e diventa un'informazione. Gli avvisi compaiono in cima al popup e in fondo al PDF - e' il file che gira su WhatsApp, e chi lo riceve non ha la pagina davanti. Spariscono da soli quando sono passati: un avviso scaduto dice che il centro e' chiuso in un giorno gia' trascorso, e chi legge non sa piu' se valga per quest'anno o per il prossimo. Lo spazio riservato in fondo alla pagina cresce con gli avvisi, altrimenti la griglia si allunga fino a spingerli su una seconda pagina. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { APIRoute } from 'astro';
|
||||
import { calendari } from '../../data/calendari';
|
||||
import { avvisiAttivi, calendari } from '../../data/calendari';
|
||||
import { generaCalendarioPdf, nomeFilePdf } from '../../lib/calendario-pdf';
|
||||
|
||||
export const prerender = false;
|
||||
@@ -15,7 +15,9 @@ export const GET: APIRoute = async ({ params }) => {
|
||||
// credere che il calendario sia vuoto.
|
||||
if (!cal) return new Response('Calendario inesistente.', { status: 404 });
|
||||
|
||||
const pdf = await generaCalendarioPdf(cal);
|
||||
// Le giornate fuori griglia stanno anche nel PDF: è il file che gira su WhatsApp, e chi lo
|
||||
// riceve non ha davanti la pagina dove sono scritte.
|
||||
const pdf = await generaCalendarioPdf(cal, avvisiAttivi(new Date()));
|
||||
return new Response(new Uint8Array(pdf), {
|
||||
headers: {
|
||||
'Content-Type': 'application/pdf',
|
||||
@@ -23,8 +25,8 @@ export const GET: APIRoute = async ({ params }) => {
|
||||
// scheda e su telefono resterebbe lì, senza finire fra i file.
|
||||
'Content-Disposition': `attachment; filename="${nomeFilePdf(cal)}"`,
|
||||
'Content-Length': String(pdf.length),
|
||||
// Il calendario cambia solo quando cambia il dato, cioè con un deploy: un'ora di cache
|
||||
// basta a non rigenerarlo a ogni click, e non abbastanza da servire un orario vecchio.
|
||||
// Un'ora: basta a non rigenerarlo a ogni click, e non abbastanza perché un avviso ormai
|
||||
// scaduto (le giornate fuori griglia spariscono da sole) resti in giro un giorno intero.
|
||||
'Cache-Control': 'public, max-age=3600',
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user