Prenotare slot multipli nel componente "dynamic calendars" del widget
Riportare anche nel componente del widget formio la modifica presente su stanza
Durante la prenotazione di un appuntamento su un calendario con slot dinamici prevederela possibilità di specifica più volte lo stesso slot in giorni successivi.
Individuato il primo slot di interesse l'utente può indicare altre date in cui lo stesso slot è disponibile.
nota: l'attuale componente di form.io invia i dati in un campo testuale, con l'occasione sarebbe bene rivedere quella modalità e inviare i dati degli slot in un formato strutturato json.
Attuale soluzione per specificare più volte lo stesso slot in giorni successivi
Implementazione tecnica
Attualmente il widget salva il dato nel modo seguente
2024-09-10 @ 10:30-11:00 (calendar_id#meeting_id#opening_hour_id)
Andrebbe trasformato nel modo seguente:
[{
"date": "YYYY-MM-DD",
"slot": "HH:ii-HH:ii",
"calendar_id": "uuid",
"meeting_id": "uuid",
"opening_hour_id": "uuid",
}]
Da fare attenzione: La nuova versione del calendario dovrà essere compatibile con il vecchio metodo di salvataggio soprattutto nel caso di visualizzazione di una vecchia pratica.
Deve quindi interpretare il data slavato e parsarlo di conseguenza
Test Case
-
come cittadino compilare la pratica del servizio -
verificare la possibilità di selezionare appuntamenti multipli ripetendo la selezione del giorno nel calendario e dello slot nella modale per aggiungere nuovi appuntementi -
verificare la possibilità di cancellare un appuntamento nella lista in fase di selezione tramite l'icona del cestino -
aggiungere una prenotazione con slot orario personalizzato (ridotto) rispetto all'intera fascia oraria proposta: selezionare il giorno, nella modale selezionare uno slot tra quelli proposti e con il controllo sottostante variare l'orario di inizio e fine scegliendone uno personalizzato e confermare; verificare che aggiungendo una nuova prenotazione venga riproposto come primo slot tra quelli disponibili l'ultimo slot custom scelto in precedenza (se non disponile viene mostrato disabilitato) -
verificare che la prenotazione viene presa per tutti i giorni selezionati
