Aller au contenu

Vue filtrée pour Administrateur Planificateur Gestionnaire de patrimoine Enseignant Étudiant Tout afficher

Indisponibilités de salle

Vérifié contre le produit le .

Domaine Indisponibilités de salle — création, aperçu d’impact, récurrence, effet sur la recherche
Durée ~10 min
Niveau complet
Étiquette automatisable, sauf le bloc 4 (temps réel), qui exige deux navigateurs

Socle B. Le montage est sur la préparation commune.

Comptes : alice (administratrice, porte referential.manage), bob (« Demandeur », ne le porte pas).

État de départ : les quatre salles existent, aucune indisponibilité Une fermeture temporaire d'un espace — travaux, maintenance, réquisition — pendant laquelle plus rien ne peut y être posé. n’est déclarée.

Compte aliceRéférentiel & parc → salle A-102 → section « Indisponibilités », en bas de la fiche.

# Action Résultat attendu
1.1 Ouvrir la fiche A-102 la section affiche « Aucune indisponibilité à venir. »
1.2 « Ajouter une indisponibilité » : type « Travaux », demain 08:00 → 18:00, motif « Réfection du sol » l’aperçu annonce « Aucune occupation impactée. » ; le bouton « Créer l’indisponibilité » est actif
1.3 Créer « Indisponibilité créée » ; la ligne apparaît avec son type, sa période et son motif
1.4 Réservation → chercher demain 09:00–10:00 A-102 n’est pas dans les résultats — elle est écartée par le veto
1.5 Cocher « Inclure les salles indisponibles » A-102 réapparaît, grisée, avec « Indisponible — Réfection du sol », et son bouton « Réserver » est inactif
1.6 Se connecter en bob et refaire la même recherche la case « Inclure les salles indisponibles » n’est pas affichée — elle demande referential.manage

2. L’aperçu d’impact — rien n’est détruit en silence

Section intitulée « 2. L’aperçu d’impact — rien n’est détruit en silence »
# Action Résultat attendu
2.1 alice réserve A-101 après-demain 09:00–11:00 « Réservation confirmée. » ; la ligne est dans « Mes réservations »
2.2 Fiche A-101« Ajouter une indisponibilité » : « Maintenance », après-demain 08:00 → 12:00 l’aperçu affiche « 1 occupation(s) en conflit » puis « 1 réservation(s) et 0 cours impactés », avec la ligne concernée
2.3 Créer « Indisponibilité créée » — et la réservation de 2.1 est toujours « Confirmée » : elle n’a pas été annulée
2.4 Retourner dans « Mes réservations » la réservation porte désormais l’étiquette « En conflit »
2.5 Rechercher ce créneau sans la case gestionnaire A-101 n’apparaît pas

C’est le point central du domaine : déclarer une indisponibilité ne défait rien. Elle crée des conflits qu’un humain doit résoudre, et l’aperçu est le seul moment où le produit les montre spontanément.

# Action Résultat attendu
3.1 Fiche A-103« Ajouter une indisponibilité » : « Fermeture », lundi prochain 08:00 → 12:00, cocher « Répéter cette indisponibilité », chaque semaine, jusqu’à trois semaines plus tard l’aperçu annonce « 4 occurrence(s) seront créées »
3.2 Créer quatre lignes apparaissent
3.3 Supprimer la deuxième« Cette occurrence » seule celle-ci disparaît ; il en reste trois
3.4 Supprimer la deuxième restante → « Celle-ci et les suivantes » celle-ci et la dernière disparaissent ; la première reste
3.5 Rechercher un créneau libéré A-103 est de retour dans les résultats

Deux navigateurs : alice sur la fiche A-102, bob sur une recherche incluant A-102 demain matin.

# Action Résultat attendu
4.1 alice crée une indisponibilité sur ce créneau chez bob, A-102 disparaît des résultats sans rechargement
4.2 alice la supprime chez bob, A-102 réapparaît seule
# Action Résultat attendu
5.1 Saisir une fin antérieure au début le bouton « Créer l’indisponibilité » reste inactif
5.2 Laisser un champ de date ou d’heure incomplet bouton inactif, aucun aperçu lancé
5.3 Cocher « Répéter cette indisponibilité » sans date de fin bouton inactif
  • Seules les indisponibilités à venir sont listées. La section affiche « Aucune indisponibilité à venir. » même quand la salle en a eu par le passé — ce n’est pas une perte de données.
  • La case « Inclure les salles indisponibles » est un privilège de gestionnaire. Son absence chez bob au cas 1.6 est le résultat attendu, pas un bug d’affichage.
  • Une indisponibilité déclarée sur une salle archivée n’a aucun effet visible : la salle n’était déjà proposée nulle part.

Les pièges transverses — environnement, authentification, fraîcheur des données — sont rassemblés sur Les pièges connus.

Ce qui est couvert Story Vue
Indisponibilités, récurrence, aperçu d’impact STORY-018 V35
Occupation unifiée session / réservation STORY-013
Temps réel STORY-014
Fiche de salle STORY-013 V40

Couvert par les tests automatisés : apps/api/src/occupancy/unavailabilities.e2e.spec.ts. La création, la récurrence, la suppression en série et le veto sur la recherche y sont couverts ; l’aperçu d’impact côté interface et le bloc 4 ne le sont pas.

  • Fiche A-102 → « Aucune indisponibilité à venir. »
  • Créer une indisponibilité « Travaux »« Aucune occupation impactée. » puis « Indisponibilité créée »
  • Rechercher ce créneau → A-102 absente des résultats
  • Cocher « Inclure les salles indisponibles » → A-102 grisée, « Réserver » inactif
  • Avec bob → la case n’est pas affichée
  • Réserver A-101, puis poser une « Maintenance » dessus → « 1 réservation(s) et 0 cours impactés »
  • Après création → la réservation est toujours « Confirmée », avec l’étiquette « En conflit »
  • Récurrence sur A-103 → « 4 occurrence(s) seront créées »
  • Supprimer « Cette occurrence » → il en reste trois
  • Supprimer « Celle-ci et les suivantes » → il en reste une
  • Deux navigateurs → l’indisponibilité fait disparaître la salle sans rechargement
  • Fin avant début → le bouton « Créer l’indisponibilité » reste inactif
Documentation technique source (2)