-
Notifications
You must be signed in to change notification settings - Fork 8
Agenda
I componenti della agenda del ministro sono:
- La sezione agenda presente nella homepage e nella pagina ministro
- La pagina agenda con l'eleco degli eventi organizzati per mese a partire dal mese corrente
- La pagina archivio con l'elenco degli eventi organizzati per mese iniziando dal mese corrente e indietro nel tempo
- Le pagine dei singoli eventi
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 o
strftime("%#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
.
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.
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.
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
.