Calendrier académique
Vérifié contre le produit le .
| Domaine | Calendrier académique — périodes, gel, trame de créneaux, fuseau, réglages de placement |
| Durée | ~8 min |
| Niveau | complet |
| Étiquette | automatisable — tout se joue par formulaires, et chaque effet en aval est observable |
Préparation
Section intitulée « Préparation »Socle B, avec l’année académique créée par Pédagogie — le calendrier habille une année, il ne la crée pas.
Compte : alice (administratrice, porte referential.manage).
1. Sans année, rien
Section intitulée « 1. Sans année, rien »| # | Action | Résultat attendu |
|---|---|---|
| 1.1 | Sur un établissement sans année, ouvrir Calendrier | « Aucune année académique. Créez-en une depuis la section Pédagogie. » |
C’est le premier enchaînement à connaître : l’ année académique La période de référence sur laquelle un établissement organise ses enseignements, d'une rentrée à la suivante. se crée en Pédagogie, le calendrier l’habille de ses périodes Une tranche nommée de l'année — un semestre, une session d'examens, des vacances — qui peut être gelée pour interdire toute modification du planning. et de ses créneaux Une bande horaire de la trame hebdomadaire — lundi 08:00–10:00, par exemple — sur laquelle un cours peut être posé. .
2. Les périodes
Section intitulée « 2. Les périodes »| # | Action | Résultat attendu |
|---|---|---|
| 2.1 | Ouvrir Calendrier avec l’année créée | la « Timeline de l’année », ses dates, et « … semaines générées » |
| 2.2 | Sous la timeline | « Aucune période définie pour cette année. » |
| 2.3 | « Ajouter une période » : « Semestre 1 », type « Semestre », de septembre à janvier | elle apparaît en bande colorée sur la timeline et en ligne dans le tableau |
| 2.4 | Ajouter une seconde période « Semestre » qui chevauche la première | « Une période du même type chevauche déjà ces dates. » |
| 2.5 | Ajouter une période dont les dates sortent de l’année | « La période doit être comprise dans les dates de l’année académique. » |
| 2.6 | Ajouter une période portant un nom déjà pris | « Une période porte déjà ce nom sur cette année. » |
| 2.7 | Ajouter « Vacances de Noël », type « Vacances », sans cocher « Geler les réservations » | elle apparaît, colonne « Gel » vide |
Vérification en aval : Réservation → chercher une date dans « Vacances de Noël » → aucun bandeau, les salles sont réservables. Une période de type Vacances ne bloque rien.
3. Le gel
Section intitulée « 3. Le gel »| # | Action | Résultat attendu |
|---|---|---|
| 3.1 | Modifier « Vacances de Noël » et cocher « Geler les réservations » | l’aide précise « Aucune réservation ni séance ne pourra être créée sur cette période. » ; la ligne porte l’étiquette « Gelée » |
| 3.2 | Réservation → chercher une date dans cette période | le bandeau « Les réservations sont gelées pendant “Vacances de Noël”. » ; les salles restent listées |
| 3.3 | Tenter de réserver malgré tout | « Période gelée “Vacances de Noël” : aucune réservation possible sur cette période. » |
| 3.4 | Planification → tenter de poser une séance dans cette période | le refus porte « Période gelée » |
| 3.5 | Décocher le gel | les deux écrans redeviennent permissifs |
Le gel est vérifié avant tout le reste, avant même les règles de profil, et il ne se désactive pas par rôle.
4. La trame de créneaux
Section intitulée « 4. La trame de créneaux »| # | Action | Résultat attendu |
|---|---|---|
| 4.1 | Section « Trame de créneaux » sur une année neuve | « Aucun créneau » sur chaque jour |
| 4.2 | Planification avant toute saisie | « Aucune trame horaire définie pour cette année — configurez-la dans le calendrier. » |
| 4.3 | Ajouter les créneaux 08:00–09:30 et 09:45–11:15, du lundi au vendredi | ils apparaissent par jour |
| 4.4 | Réajouter un créneau identique sur le même jour | « Ce créneau existe déjà pour ce jour. » |
| 4.5 | Ajouter un créneau dont la fin précède le début | « La fin doit être postérieure au début. » |
Vérification en aval : Planification → la grille affiche désormais ses bandes de trame, aux horaires saisis, du lundi au vendredi. Le samedi reste grisé, non planifiable.
5. Le fuseau et les réglages de placement
Section intitulée « 5. Le fuseau et les réglages de placement »| # | Action | Résultat attendu |
|---|---|---|
| 5.1 | Section « Fuseau horaire » | « Fuseau unique de l’établissement : les horaires sont stockés en UTC et affichés dans ce fuseau. » |
| 5.2 | Changer le fuseau, enregistrer | « Fuseau horaire mis à jour. » |
| 5.3 | Section « Placement des séances » → régler « Granularité », « Ouverture » = 08:00 et « Fermeture » = 20:00 | « Réglages de placement mis à jour. » |
| 5.4 | Saisir une ouverture postérieure à la fermeture | « L’heure d’ouverture doit précéder l’heure de fermeture. » |
Vérification en aval : Planification → l’axe des heures de la grille commence à 08:00 et finit à 20:00. Lancer une détection sur un cours long, sur un créneau tardif → la cellule est écartée avec « Dépasse les heures d’ouverture (08:00 – 20:00) ».
6. Ce qu’un changement rétroactif ne fait pas
Section intitulée « 6. Ce qu’un changement rétroactif ne fait pas »| # | Action | Résultat attendu |
|---|---|---|
| 6.1 | Poser une séance sur un créneau existant | elle apparaît sur la grille |
| 6.2 | Supprimer ce créneau de la trame | « Le créneau sera définitivement supprimé de la trame. », puis il disparaît |
| 6.3 | Revenir sur la grille | la séance est toujours là, à ses heures réelles — elle est simplement hors trame |
Les séances gardent leurs heures ; ce sont les repères qui bougent sous elles. Une séance peut se retrouver hors trame, ou hors de la plage d’ouverture, et rester parfaitement valide.
Pièges connus
Section intitulée « Pièges connus »- Le type d’une période ne gèle rien. Seule la case « Geler les réservations » interdit les écritures, et elle est indépendante du type. Le cas 2.7 le vérifie explicitement.
- La trame et les semaines n’ont pas la même origine : les semaines sont générées par l’année, en Pédagogie ; la trame se saisit ici.
- Cet écran ne se met pas à jour tout seul. Un changement fait par un collègue exige un rechargement.
Les pièges transverses — environnement, authentification, fraîcheur des données — sont rassemblés sur Les pièges connus.
Traçabilité
Section intitulée « Traçabilité »| Ce qui est couvert | Story | Vue |
|---|---|---|
| Périodes, gel, trame, fuseau | STORY-008 |
V45 |
| Réglages de placement, plage d’ouverture | STORY-005 |
— |
| Effet du gel sur la réservation | STORY-012, STORY-015 |
— |
| Effet de la trame sur la grille | STORY-025 |
V10 |
| Audit des périodes et créneaux | STORY-010 |
V62 |
Couvert par les tests automatisés : apps/api/src/calendar/calendar.e2e.spec.ts. Les
périodes, le chevauchement, la trame et les réglages y sont couverts ; les vérifications en aval
sur la grille et la recherche ne le sont pas.
Checklist
Section intitulée « Checklist »- Sans année → « Aucune année académique. Créez-en une depuis la section Pédagogie. »
- Timeline affichée avec « … semaines générées »
- Période créée → bande colorée + ligne de tableau
- Chevauchement du même type → « Une période du même type chevauche déjà ces dates. »
- Hors de l’année → « La période doit être comprise dans les dates de l’année académique. »
- Période « Vacances » non gelée → aucune restriction en réservation
- Case « Geler les réservations » cochée → étiquette « Gelée »
- Réservation dans la période → « Les réservations sont gelées pendant “Vacances de Noël”. »
- Placement d’une séance → refus « Période gelée »
- Sans trame → « Aucune trame horaire définie pour cette année — configurez-la dans le calendrier. »
- Créneau en double → « Ce créneau existe déjà pour ce jour. »
- La grille affiche les bandes de trame aux horaires saisis ; le samedi reste grisé
- Ouverture après fermeture → « L’heure d’ouverture doit précéder l’heure de fermeture. »
- L’axe de la grille suit la plage d’ouverture, et un débordement donne « Dépasse les heures d’ouverture (08:00 – 20:00) »
- Créneau supprimé → la séance posée reste à ses heures réelles
Écrans concernés
Section intitulée « Écrans concernés »- Calendrier académique — l’écran principal.
- Structure pédagogique — où l’année se crée.
- Grille de planning et Réservations — les deux écrans consommateurs.
- Analytique d'occupation — où le type « Vacances » compte réellement.