Skip to content
Natalia Baeza edited this page Feb 10, 2021 · 5 revisions

Agenda del ministro

I componenti della agenda del ministro sono:

  1. La sezione agenda presente nella homepage e nella pagina ministro
  2. La pagina agenda con l'eleco degli eventi organizzati per mese a partire dal mese corrente
  3. La pagina archivio con l'elenco degli eventi organizzati per mese iniziando dal mese corrente e indietro nel tempo
  4. Le pagine dei singoli eventi

Sezione Agenda

Il codice per questa sezione si trova nel partial "partials/schedule". La parte in alto di questa sezione fa visualizzare dei tab con un massimo di 8 date facendo un loop sulla collezione dates_shown definita in config.rb. La collezione contiene fino a 8 elementi, ogni uno è una stringa che rappresenta una data per la quale c'è almeno un evento nella agenda. All'indice 3 si trova la data più vicina al giorno corrente , mentre i tre elementi precedenti hanno le tre date precedenti a quella centrale, e i 4 elementi alla fine della collezioni sono le quattro date successive a quella centrale.

Gli elementi nella collezione dates_shown sono stringhe create chiamado il metodo strftime("%d%B%Y") su un oggetto DateTime. Invece la data che viene visualizzata deve essere formatata per ogni elemento usando prima DateTime.parse per trasformare l'elemento di nuovo in un oggetto DateTime e poi chiamando strftime("%d")per il numero del giorno del mese ostrftime("%#b")` per il mese.

I tabs della sezione mostrano gli eventi per ogni data facendo un loop sulla collezione dates_shown e poi un altro loop sulla collezione schedule_events_by_day per ogni element in dates_shown.

Pagina Agenda

La pagina agenda è nel template schedule.html e riceve la collezione items che corresponde alla collezione events_by_month definita in config.rb, passata al metodo paginate_with_fallback per renderla accessibile al template schedule.html. La collezione è un Ruby hash con key/value pairs dove ogni key corresponde a un mese, mentre il value è a sua volta una collezione di key/value pairs. In questa collezione ogni key è un giorno e il value e un array di eventi. La collezione accessibile dentro il template schedule.html contiene come primo key il mese corrente e poi i mesi successivi nel tempo.

Pagina Archivio

La struttura è uguale a quella della pagina agenda ma la collezione accessibile at template archive.html contiene come primo key il mese corrente e poi i mesi precedenti andando indietro nel tempo.

Pagine dei singoli eventi

Il template per questa pagina è schedule_event.html e consiste in 2 partial, lo hero e partials/page-content a cui vengono passati tutti i contenuti della pagina provenienti da Dato con la variabile locale page.

Clone this wiki locally