Riunioni e assenze¶
Riunioni¶
Una riunione appartiene a un team e ha un ordine del giorno fatto di punti. Si programma, si svolge e si chiude; da chiusa è in sola lettura finché non la si riapre.
Modelli¶
| Modello | Tabella | Note |
|---|---|---|
Meeting |
meetings |
title, meeting_date, meeting_time (obbligatoria), notes, status, summary_notes, started_at, completed_at, completed_by. |
MeetingItem |
meeting_items |
Punto: section (testo libero), text, notes, status, task_id e presenter_id facoltativi, position. |
| — | meeting_participants |
Partecipanti. |
| — | meeting_tasks |
Task decise in riunione: la task vive nella sua bacheca, la riunione ne tiene il riferimento. |
Stati della riunione: scheduled → in_progress → completed (riapribile).
Stati di un punto: todo, presented, postponed.
Riunioni e punti si eliminano davvero: non passano dal cestino.
MeetingWorkflow¶
Il servizio, usato da frontend e API, applica le regole:
- modificare una riunione richiede
task.updatesul team; una riunione completata non si modifica; - alla creazione tutti i membri del team diventano partecipanti e, a richiesta, i punti non presentati della riunione precedente si riportano con sezione, task e relatore;
start(),complete(riepilogo)ereopen()gestiscono il ciclo di vita;importTasks()porta nell'ordine del giorno le task concluse da una certa data (sezione "Realizzati", saltando quelle già in riunioni precedenti) e le task aperte degli stati scelti (sezione uguale al nome dello stato);createTask()crea una task decisa in riunione: richiedetask.create, la bacheca deve essere del team, gli assegnatari devono essere partecipanti; la task viene collegata alla riunione;- un punto si collega a una task per uuid o per chiave (
GEST-12).
Notifiche¶
MeetingNotifier avvisa i partecipanti alla creazione, un'ora prima dell'inizio
(php yii meeting/send-reminders, ogni 5 minuti, una volta sola per data e
ora) e alla chiusura con il riepilogo.
Assenze¶
Un'assenza è un registro di date, non un flusso di approvazione: chi la crea la vede subito nel calendario di tutti. Non c'è un monte ore da scalare.
Modello Leave¶
- Tipi:
ferie,permesso,malattia. - Le ore (
hours, da 0,5 a 12) si indicano solo per un permesso di un giorno. Da 8 ore in su (FULL_DAY_HOURS) il permesso conta come giornata intera. - Una persona non può avere assenze sovrapposte, salvo più permessi a ore nello stesso giorno.
user_idnon si assegna da modulo: nessuno può intestare un'assenza a un altro.
Regole¶
LeaveServicecrea, modifica ed elimina (definitivamente).- Gestisce un'assenza il proprietario o il super amministratore.
- L'elenco mostra le assenze di tutti gli utenti.
- Le assenze compaiono nel calendario personale e in quello del team, e alimentano l'allarme di copertura nel cruscotto di team (vedi Team e ruoli).