Aller au contenu

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

Heatmap et score de créneau

Vérifié contre le produit le .

Route de l’application : /planning, une fois la détection lancée

La heatmap La coloration de la grille qui montre d'un coup d'œil, semaine entière sous les yeux, où un cours se poserait le mieux. répond à une seule question, et elle y répond pour un cours précis : « où puis-je poser celui-ci, et à quel prix ? » Elle colore chaque créneau de la semaine selon la qualité du placement qu’il permettrait, chiffre à l’appui, pour qu’un planificateur choisisse en regardant plutôt qu’en essayant.

Permission requise : Modifier le planning planning.edit .

La portent Administrateur, Planificateur — plus, le cas échéant, les rôles personnalisés de votre établissement qui la contiennent.

Sans cette permission, l'entrée n'existe pas dans le menu. Elle n'y figure ni grisée ni cadenassée : la navigation est filtrée sur les droits résolus, pas désactivée. Une section absente n'est donc pas une panne — et au tout premier affichage, le menu peut être plus court une fraction de seconde, le temps que les permissions arrivent.

Une permission peut être limitée à certains campus ou formations. Dans ce cas l'écran s'ouvre, mais les ressources hors périmètre en sont absentes — voir Portée.

La heatmap n’a pas de permission propre : elle fait partie de la grille et suit la sienne. Sa lecture n’expose rien de plus que la grille elle-même.

La heatmap n’existe pas dans l’absolu. Un score de créneau Une note de 0 à 100 qui dit à quel point poser ce cours ici, dans cette salle, serait un bon choix. qualifie un triplet (cours, créneau, salle) — jamais un créneau seul. Tant que le panneau « Créer un cours » n’a pas de cours sélectionné et que « Détecter les créneaux éligibles » n’a pas été actionné, la grille reste nue. C’est ce qui surprend le plus souvent : il n’y a pas de heatmap « du lundi matin », il y a une heatmap de ce cours-là.

Une fois la détection lancée, chaque créneau Une bande horaire de la trame hebdomadaire — lundi 08:00–10:00, par exemple — sur laquelle un cours peut être posé. de la trame porte une bande colorée. Sa hauteur n’est pas celle du créneau : c’est celle de la fenêtre réellement évaluée, [début du créneau, début + durée du cours). Un cours de trois heures posé sur un créneau de 90 minutes affiche donc une bande qui déborde sur le suivant — vous voyez l’empreinte vraie, pas la case.

Chaque bande porte deux modalités, jamais la couleur seule :

  • la couleur de la rampe de score ;
  • le score en chiffres, en haut à droite de la bande, dans un contraste calculé pour rester lisible sur sa propre couleur.

Le survol d’une bande notée ouvre une infobulle : « Score 78/100 », la fenêtre réelle (« 08:00 – 11:00 »), « Meilleure salle : B-204 — Amphithéâtre Nord » et, en récurrence, « Agrégé sur 12 semaines (pire semaine) ».

Elle est permanente, au-dessus de la grille, et décrit cinq états. Chacun se reconnaît par son motif autant que par sa teinte.

État de la légende Ce qu’il signale Comment il se reconnaît sans la couleur
« Score du créneau » la rampe continue de 0 à 100 les chiffres 0 et 100 encadrent la rampe, et chaque bande porte le sien
« Impossible » le placement est refusé, quel qu’en soit le prix hachures obliques + icône d’interdiction
« Occupé » quelque chose occupe déjà cette plage à l’écran semis de points + icône d’horloge
« Hors trame » la journée n’a pas de créneau à cette hauteur aplat neutre, sans motif
« Libre » en mode Occupation seulement : rien n’occupe la plage aplat sans motif

La bascule Heatmap / Occupation, dans la barre d’actions, choisit lequel des deux calques s’affiche. Le mode Occupation ne note rien : il montre les plages déjà prises, aux minutes réelles, y compris hors trame. C’est la lecture à faire quand la question n’est pas « quel est le meilleur créneau ? » mais « qu’est-ce qui bloque ? ».

Une bande notée et occupée existe : elle garde sa couleur et son chiffre, et reçoit le semis de points par-dessus. Ce n’est pas une contradiction — la salle proposée est libre, la plage contient déjà autre chose à l’écran.

Sous le panneau de détection, une liste ordonnée : « 1. Mardi 08:00–10:00 · 92 · B-204 », avec jusqu’à trois salles de remplacement par ligne. Survoler une ligne cerne la cellule correspondante dans la grille, et survoler la cellule surligne la ligne ; un clic amène le focus sur la cellule.

C’est le cœur du produit, et cela tient en trois phrases.

  1. Les contraintes dures passent en premier. Si l’une d’elles est violée, le placement est impossible : la cellule est exclue, et aucune contrainte souple n’est même évaluée.
  2. Les contraintes souples se partagent 100 points. Chaque contrainte souple active reçoit une part proportionnelle à son poids Le chiffre de 0 à 10 qui dit combien il est gênant de ne pas respecter une règle souple, comparé aux autres. : part = 100 × poids ÷ somme des poids actifs. La somme des parts fait donc exactement 100.
  3. Chaque contrainte souple pénalisée reprend une fraction de sa part. L’évaluateur produit une pénalité entre 0 et 1 ; le malus vaut part × pénalité. Le score est 100 − somme des malus, arrondi à une décimale.

C’est cette arithmétique que le panneau de détail rend visible, ligne par ligne, sous la forme « 100 − 22 de pénalités = 78/100 ». Le détail est décrit sur Pastilles de contrainte et explicabilité.

  • 100 : aucune contrainte souple n’est pénalisée. Le créneau est parfait pour ce cours, et avec les poids réglés par votre établissement — les deux réserves comptent autant que le chiffre.
  • Un score bas : une ou plusieurs contraintes souples coûtent cher. Le placement reste possible, il est simplement moins bon, et le détail dit lesquelles.
  • 0 ne se lit presque jamais : il faudrait que toutes les contraintes souples soient pénalisées au maximum. Un créneau vraiment inutilisable n’est pas noté 0, il est exclu.

C’est la distinction qui rend la heatmap lisible, et la première source de malentendu. Une contrainte dure Une règle qui ne se négocie pas : tant qu'elle est violée, le placement est impossible — une salle déjà prise, un enseignant absent. oppose un veto ; une contrainte souple Une préférence que l'on cherche à respecter sans y être obligé : la violer coûte des points, elle n'interdit rien. se contente de faire payer.

Contrainte dure Contrainte souple
Effet rend le créneau impossible rend le créneau moins bon
Rendu hachures + icône d’interdiction, aucun chiffre couleur + score chiffré
Réglable ? non — elle n’a pas de poids oui, par son poids de 0 à 10
Exemple « La salle B-204 est déjà occupée de 10:00 à 11:30 (séance planifiée). » « Crée un trou de 120 min dans la journée du groupe L1 A. »

Le catalogue compte huit contraintes dures et huit souples. Une cellule exclue ne porte donc jamais de score : la question « pourquoi 0 et pas 20 ? » n’a pas lieu d’être, il n’y a pas de note du tout.

Deux cas où le score n’est pas celui qu’on croit

Section intitulée « Deux cas où le score n’est pas celui qu’on croit »

Les séances du cours en cours de placement sont ignorées par les contraintes d’occupation : salle occupée, groupe déjà en cours, enseignant déjà en cours. La heatmap répond à « où puis-je (re)placer ce cours ? », y compris quand il est déjà posé quelque part. Cliquer une séance placée rouvre donc exactement la même évaluation, sans que la séance se refuse à elle-même.

Un cours avec récurrence La règle qui répète un cours ou une réservation à intervalle régulier — chaque semaine, ou une semaine sur deux. n’est pas évalué sur la semaine affichée mais sur toutes les semaines de sa série. Le panneau l’annonce : « Récurrence : agrégation sur 12 semaines (pire semaine). »

  • La cellule porte le pire score hebdomadaire des meilleures salles : elle vaut ce que vaut la semaine la plus contrainte, puisque c’est elle qui décidera.
  • Une cellule n’est valide que si chaque semaine de la série a au moins une salle valide.
  • Une cellule agrégée peut être valide sans proposer la moindre salle de remplacement : une salle ne qualifie au classement que si elle est tenable toutes les semaines, ce qui est plus exigeant que le score de la cellule.
  • Une bande exclue peut porter « Valide 11/12 semaines — une autre semaine bloque ce créneau. » : la semaine que vous regardez va très bien, une autre non.
Action Permission Où c’est expliqué
Lancer la détection sur un cours Modifier le planning planning.edit Placement d'une séance
Basculer entre Heatmap et Occupation Modifier le planning planning.edit cette page
Ouvrir le détail chiffré d’une cellule Modifier le planning planning.edit Pastilles de contrainte et explicabilité
Régler les poids qui produisent ces scores Gérer les contraintes constraint.manage Contraintes

La procédure complète — choisir un cours, lire la heatmap, poser la séance — est dans le guide du planificateur.

Ce que vous voyez Ce que ça veut dire
La grille reste nue, sans couleur aucun cours n’est sélectionné, ou la détection n’a pas été lancée : il n’y a pas de heatmap sans cours de référence
« Détection en cours… » le calcul des cellules est en route ; en attendant, les couleurs de la détection précédente restent affichées
« Impossible de calculer les créneaux éligibles. » le calcul a échoué : aucune cellule n’est colorée, et les compteurs de possibles et d’exclus n’existent pas
« Raison indisponible » au survol d’une bande hachurée la cellule est bien exclue, mais le détail qui porte la raison n’a pas pu être chargé
« Dépasse les heures d’ouverture (08:00 – 20:00) » la fenêtre du cours sortirait de la plage d’ouverture : la cellule est écartée avant toute évaluation, elle n’a jamais eu de score
Une bande grise, sans motif ni chiffre il n’y a pas de créneau de trame à cette hauteur, ce jour-là
« Valide 11/12 semaines — une autre semaine bloque ce créneau. » récurrence : la semaine affichée est bonne, une autre ne l’est pas
Les couleurs changent sans que vous ayez rien fait quelqu’un a modifié le planning ou les poids : les scores sont recalculés et la grille suit

Sur le chargement pendant un geste : lors d’un glisser-déposer, la heatmap est recalculée pour le cours déplacé. Le résultat est presque toujours déjà en cache — c’est son usage principal — mais lorsqu’il ne l’est pas, les calques apparaissent en cours de geste sans jamais le bloquer.

Sur la fraîcheur : les scores sont mis en cache et invalidés par les événements du produit — placement, déplacement, réservation, indisponibilité de salle, changement de poids. Vous ne voyez donc jamais un score périmé ; vous pouvez voir un score absent le temps qu’il se recalcule.

Documentation technique source (2)