Détecter et résoudre les conflits (à la génération)
Omniscol détecte les conflits en continu pendant la préparation d'un emploi du temps et à chaque positionnement manuel. Le diagnostic distingue les conflits bloquants des contraintes non respectées et des avertissements qui demandent un arbitrage, et il code cette gravité par une couleur — sur les créneaux candidats et les listes de sélection quand vous placez une séance, et sur chaque ligne du panneau de diagnostic. La génération automatique est un calcul séparé (le solveur place sous contraintes, ou laisse une séance non posée) : son diagnostic est traité dans Diagnostiquer une génération qui échoue.
Ce que le diagnostic vérifie
- Occupation (double-réservation) — un professeur, une classe, un groupe, un élève, une salle ou une ressource ne peut pas servir à deux séances qui se chevauchent, sauf modélisation explicite (groupes compatibles, partitions, grandes salles).
- Disponibilités et contraintes horaires — période déclarée indisponible, ou contrainte horaire non respectée (professeur, classe, groupe, salle, matière, site), graduée selon la priorité de la contrainte. Une fenêtre de dates imposée, elle, est toujours bloquante.
- Capacité et service — sur-effectif d'une salle, ressource demandée en trop d'exemplaires, salle inadaptée (capacité, spécialisation, site), ou heures de service d'un professeur dépassées.
- Débordement de grille — les heures de cours à placer dépassent, ou approchent, le nombre de créneaux ouverts de la grille, pour un professeur ou pour une classe entière.
- Lieux et déplacements — temps de trajet insuffisant entre deux sites pour un professeur ou une classe, ou deux matières déclarées incompatibles placées au même moment.
- Calendrier — séance posée sur une absence (professeur ou classe), un jour fermé / des vacances, ou un événement incompatible.
- Modélisation — alignement rompu (groupes alignés sans séance commune), nombre de séances différent entre groupes d'une même partition ou d'un même alignement, professeur ou salle manquant, ou configuration incomplète (site, grille, paramètre nécessaire avant la génération).
Niveaux de gravité
La même échelle de gravité — vert, jaune, orange, rouge — colore plusieurs endroits de l'édition.
Sur les créneaux candidats, quand vous positionnez une séance (voir Positionnement manuel). Et sur chaque option des listes de sélection : quand vous choisissez un professeur, une salle, une ressource, un groupe ou des participants pour une séance, chaque entrée porte une icône de calendrier colorée selon son niveau au créneau visé — verte si l'entité est libre, rouge si elle est occupée — avec le détail au survol. Seule une indisponibilité rouge (occupé, période fermée) empêche le choix ; une salle trop petite ou mal spécialisée reste sélectionnable, avec avertissement.
| Couleur | Signification |
|---|---|
| vert | aucun conflit — l'entité est libre (ou une ressource reste sous sa limite) |
| jaune | gêne légère, non bloquante (contrainte horaire de priorité moyenne, absence entièrement remplacée, salle correcte mais pas idéale) |
| orange | contrainte forte (contrainte horaire de priorité élevée, salle remplie jusqu'à 110 % de sa capacité, heures de service jusqu'à 110 %, trajet entre sites trop court, matières incompatibles, jour fermé) |
| rouge | conflit bloquant (double-réservation, contrainte horaire obligatoire ou fenêtre de dates imposée, salle au-delà de 110 % de sa capacité, absence non couverte, alignement rompu) |
Dans le panneau de diagnostic. Chaque problème listé porte un niveau, repris par le filtre. Le panneau regroupe l'orange et le jaune sous un seul niveau « important », et ajoute un niveau « conseil » pour les informations non bloquantes :
| Niveau | Sens | Couleurs de créneau correspondantes |
|---|---|---|
| rouge | Conflit bloquant | rouge |
| jaune | Contrainte non respectée / Avertissement | orange + jaune |
| bleu | Conseil / Limite proche | pression de grille, partitions |
Quand l'option Blocage des choix en conflit (contraintes fortes) est active, Omniscol empêche les choix qui créeraient une contrainte forte ; sinon, l'alerte reste visible pour que l'administrateur arbitre.
Débordement et pression de grille
Omniscol compare en permanence les heures de cours à placer au nombre de créneaux ouverts de la grille — pour chaque professeur (par classe et par site) et pour chaque classe entière. Le message indique les deux valeurs, par exemple « 18 h / 16 h ». Trois paliers, selon le remplissage :
| Palier | Remplissage | Lecture |
|---|---|---|
| bleu — pression | grille remplie à 90–100 % | les limites seront bientôt atteintes ; le placement est déjà tendu |
| orange — débordement faible | 100–110 % (heures > créneaux jusqu'à 110 %) | un EDT valide sera probablement impossible |
| rouge — débordement fort | au-delà de 110 % | un EDT valide sera quasi certainement impossible |
Ce calcul ne tourne que si au moins un site est configuré, et ne signale rien tant que la grille reste sous 90 %. Il mesure les heures requises face aux créneaux disponibles — à ne pas confondre avec le dépassement d'heures de service d'un professeur (heures enseignées face aux heures contractuelles), qui partage les mêmes couleurs mais reste une détection distincte.
Toutes les détections
| Détection | Famille de filtre | Niveau |
|---|---|---|
| Professeur, classe ou groupe déjà occupé | Conflits | rouge |
| Salle déjà occupée | Conflits | rouge |
| Alignement rompu (groupes alignés sans séance commune) | Conflits | rouge (orange si seule la salle ou la ressource diffère) |
| Contrainte horaire non respectée (professeur, classe, groupe, salle, matière, site) | Contraintes horaires | obligatoire → rouge, élevé → orange, moyen → jaune (fenêtre de dates → toujours rouge) |
| Sur-effectif d'une salle | Capacité | orange jusqu'à 110 % de la capacité, rouge au-delà |
| Ressource en surnombre | Capacité | orange |
| Salle inadaptée (capacité, spécialisation, site) | Capacité | jaune — forçable |
| Heures de service d'un professeur dépassées | Capacité | orange jusqu'à 110 %, rouge au-delà |
| Débordement / pression de grille | Débordement de grille | bleu → orange → rouge (voir ci-dessus) |
| Temps de trajet insuffisant entre sites (prof, classe) | Distance | orange |
| Matières incompatibles au même moment | Compatibilité | orange |
| Aucune salle disponible parmi les salles autorisées | Salle manquante | jaune (rouge si aucune) |
| Professeur manquant (cours sans professeur affecté) | Professeur manquant | jaune |
| Salle manquante (séance placée sans salle requise) | Salle manquante | jaune |
| Nombre de séances différent entre groupes d'une partition | Partitions | bleu (indicatif) |
| Nombre de séances différent entre groupes alignés | Alignements | rouge (configuration bloquante) |
| Professeur absent sur son cours | Absences | non couvert → rouge, remplacé → jaune, partiel (co-enseignement) → orange |
| Classe absente | Absences | rouge |
| Séance un jour fermé / vacances | Calendrier | orange (parfois forcé en rouge) |
| Configuration incomplète (site, grille, paramètre) | — | bloquant avant la génération |
Naviguer depuis une alerte
Chaque ligne du panneau est cliquable : la loupe amène directement au cours, au groupe ou à la classe concerné — le moyen le plus rapide d'isoler le contexte d'un conflit. Pour un conflit de groupes (partition, alignement), l'icône ne garde que les groupes en relation, ce qui fait ressortir la contrainte quand le diagnostic brut ne suffit pas.
Filtrer le diagnostic
Le bouton Filtres des diagnostics (triangle d'alerte, en tête du panneau) ouvre un menu pour ne garder que les alertes utiles à l'analyse en cours. Son icône passe en orange tant qu'un filtre reste actif. On y règle :
- Niveaux — afficher ou masquer le rouge (bloquant), le jaune (important / à vérifier), le bleu (conseil / limite proche).
- Entités — classes, professeurs, salles, ressources, groupes, et les types d'événements de calendrier (événements, vacances, absences).
- Niveaux de classe, campus, sites — restreindre à un périmètre. Le campus isole une entité organisationnelle (implantation, faculté, pôle) ; le site porte sur le lieu physique.
- Raisons — activer ou désactiver chaque famille de détection : contraintes horaires, conflits, capacité, distance, professeur manquant, salle manquante, compatibilité, partitions, alignements.
- Intervalle (EDT calendrier) — limiter aux prochaines semaines ou mois, et masquer le passé.
- Comportement — Blocage des choix en conflit (contraintes fortes) empêche activement les placements qui créeraient un conflit fort.
- Réinitialiser — tout réafficher.
Un filtre ne résout pas un conflit : il masque seulement ce qui n'aide pas l'analyse en cours.
Résoudre un conflit
Les corrections les plus fréquentes sont :
- déplacer une séance ;
- changer de professeur, salle ou ressource ;
- ajuster une contrainte trop forte ;
- corriger une indisponibilité ou une absence saisie par erreur ;
- créer ou corriger les groupes, partitions ou alignements ;
- ajouter une salle compatible, une capacité ou une spécialisation ;
- verrouiller une séance qui doit rester fixe avant de relancer une génération.
Si la génération ne trouve pas de solution complète, elle peut retourner un EDT partiel : les séances non positionnées restent dans la barre des post-its des séances à placer. Corrigez les diagnostics prioritaires, puis relancez ou positionnez manuellement les cas restants.
Cas qui demandent un arbitrage
Certains signaux correspondent à une décision métier plutôt qu'à une erreur de saisie. Exemples :
- examen avec une salle principale et une salle de tiers-temps ;
- capacité déclarée supérieure aux places saisies quand l'établissement sait qu'une partie des inscrits ne sera pas présente ;
- salle annexe non modélisée dans Omniscol.
Dans ces cas, il vaut mieux modéliser explicitement la situation quand c'est possible : multi-salles, groupes adaptés, capacité corrigée ou événement séparé. Laisser une alerte volontaire doit rester une décision connue de l'équipe, pas un bruit permanent.
Procédure
- Ouvrez le diagnostic de l'EDT.
- Filtrez si nécessaire par niveau, campus, site, entité ou type de problème.
- Traitez d'abord les conflits bloquants.
- Ouvrez le détail du problème pour identifier les séances et ressources impliquées.
- Corrigez la séance, la contrainte ou la modélisation.
- Relancez le diagnostic ou la génération pour vérifier que le problème a disparu.