Réservation de ressources
La Réservation de ressources (module rbs) est
disponible en natif dans l'application mobile, ouverte depuis le lanceur
« Mes apps » (famille Vie de l'établissement, comme sur le
portail web). Réserver une salle ou du matériel depuis un couloir, entre deux cours, est
typiquement ce qu'on ne fait pas sur un ordinateur.
Mes réservations
Deux onglets, calculés à partir de la fin du créneau : À venir (la plus proche d'abord) et Passées (la plus récente d'abord). Chaque carte porte la ressource, le jour et la plage horaire, l'état en couleur — En attente, Validée, Refusée, Suspendue —, le motif de la demande et, le cas échéant, le motif du refus.
Une réservation à venir peut être annulée depuis la carte, après confirmation.
Réserver
Le bouton Réserver une ressource ouvre la demande, en quatre gestes :
- la ressource, parmi celles qui sont réellement partagées à l'utilisateur (salles, laboratoires, gymnase, matériel…), avec sa description et la mention Indisponible le cas échéant ;
- le jour, parmi les cinq prochains jours ouvrés (samedi et dimanche exclus) ;
- le créneau, d'une heure, entre 8h et 18h ;
- le motif, obligatoire — c'est lui que lit le modérateur.
Parcours capturé en test e2e live —
apps/mobile/e2e/lanceur/parcours-reservation.yaml(compte enseignant réellilit.upreti001, ressources et réservations réelles du collège). Le test n'envoie pas la demande : aucune réservation n'est créée.
Si la ressource est modérée, la demande naît En attente et devra être validée ; sinon
elle est validée d'emblée. Un refus est expliqué à l'utilisateur : créneau déjà pris, ou
hors des délais autorisés par la ressource (min_delay / max_delay).
Données réelles
- Source : module
rbs.GET /rbs/bookings(mes réservations),GET /rbs/resources(ressources visibles),POST /rbs/resource/:id/booking(demande),DELETE /rbs/resource/:id/booking/:id/false(annulation de cette occurrence seule). - Nom de la ressource : il n'est pas porté par la réservation ; il est résolu depuis le catalogue des ressources, chargé en parallèle — une requête pour toute la liste.
- Dates : le module stocke des
TIMESTAMPsans fuseau, lus en heure locale (ce sont les horaires de l'établissement) ; la création, elle, attend des horodatages UNIX en secondes et l'identifiant de fuseau IANA de l'auteur. - Visibilité pilotée par les droits : l'application n'apparaît dans « Mes apps » que si
l'instance l'autorise ; réserver exige en outre le droit
rbs.contribsur la ressource.
Tests
- Jest : mapping pur — lecture des dates PostgreSQL, libellés jour/heure, états de
réservation, répartition à venir / passées, index des noms de ressources, jours ouvrés et
créneau d'une heure en secondes UNIX
(
apps/mobile/__tests__/reservation-mapping.test.ts). - e2e Maestro live :
apps/mobile/e2e/lanceur/parcours-reservation.yaml.