# Sommaire — documentation utilisateur Omniscol

Canonical Omniscol user documentation, generated from the maintained `help/fr/` corpus. This is the authoritative reference and supersedes any older PDF manual. Authoring directives (UI labels, i18n strings, feature gating) are resolved to their real fr wording. Internal cross-references link to `#page-<id>` anchors within this file. Interactive step-by-step walkthroughs are omitted.

## Table des matières

**1. Pour bien commencer**

- [1.1  Qu'est-ce qu'Omniscol ?](#page-overview.what-is-omniscol)
- [1.2  Philosophie générale d'Omniscol](#page-overview.philosophy)
- [1.3  Visite guidée en cinq minutes](#page-overview.quick-tour)
- [1.4  Architecture, modules et rôles](#page-overview.architecture-and-roles)
- [1.5  Plans et options Omniscol](#page-overview.plans-and-options)
- [1.6  Choisir le bon type d'EDT : hebdomadaire, cyclique, calendrier](#page-overview.timetable-modes)
- [1.7  Première connexion](#page-getting-started.first-login)
- [1.8  Configurer le compte de l'école](#page-getting-started.setup-school)
- [1.9  Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
- [1.10  Préparer ses données pour un import massif (en batterie)](#page-getting-started.preparing-data)
- [1.11  Visite guidée de prise en main (les 6 étapes du module Accueil)](#page-getting-started.onboarding-tour)

**2. Concepts métier**

- [2.1  Organisation des données : matières, professeurs, classes, EDT](#page-core-concepts.data-model)
- [2.2  Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [2.3  Partitions de classe](#page-core-concepts.class-divisions)
- [2.4  Alignements de groupes](#page-core-concepts.alignments)
- [2.5  Groupes de groupes](#page-core-concepts.groups-of-groups)
- [2.6  Hiérarchie de groupes : parents, enfants, contraintes héritées](#page-core-concepts.group-hierarchy)
- [2.7  Groupes libres](#page-core-concepts.free-groups)
- [2.8  Cours, séances, types de cours](#page-core-concepts.lessons-and-types)
- [2.9  Cours complexes : alternés, concaténés, associés, co-animés](#page-core-concepts.complex-lessons)
- [2.10  Campus, sites, salles, ressources, multi-salles](#page-core-concepts.sites-rooms-resources)
- [2.11  Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)
- [2.12  Spécialisations de salles](#page-core-concepts.classroom-specializations)
- [2.13  Disponibilités et contraintes horaires des professeurs](#page-core-concepts.wishes-and-availability)
- [2.14  Contraintes horaires : classes, matières, groupes, salles et grille](#page-core-concepts.time-constraints)
- [2.15  Année scolaire, semaines alternées, vacances](#page-core-concepts.school-year)
- [2.16  Ligne de temps et navigation temporelle](#page-core-concepts.timeline-navigation)
- [2.17  Rechercher et filtrer dans les listes](#page-core-concepts.search-and-filter)
- [2.18  Collaboration entre administrateurs](#page-core-concepts.collaboration)

**3. Création d'un emploi du temps (module Gestion des EDT)**

- [3.1  Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [3.2  Prérequis pour créer un EDT](#page-timetables.prerequisites)
- [3.3  Mode calendrier — options avancées](#page-timetables.calendar-mode)
- [3.4  Disponibilités et contraintes en mode calendrier](#page-timetables.calendar-wishes)
- [3.5  Fenêtres de dates](#page-timetables.date-windows)
- [3.6  Étape 1 — Paramètres généraux](#page-timetables.general-settings)
- [3.7  Étape 2 — Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [3.8  Étape 3 — Affecter les professeurs](#page-timetables.assigning-teachers)
- [3.9  Étape 4 — Créer les classes et leurs groupes](#page-timetables.creating-classes)
- [3.10  Étape 5 — Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups)
- [3.11  Étape 6 — Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- [3.12  Attribution automatique des salles](#page-timetables.auto-room-assignment)
- [3.13  Étape 6 bis — Import massif des cours via tableur](#page-timetables.mass-import)
- [3.14  Étape 7 — Génération automatique](#page-timetables.generation)
- [3.15  Étape 8 — Publier (activer) un emploi du temps](#page-timetables.publication)
- [3.16  Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [3.17  Positionnement manuel des séances](#page-timetables.manual-placement)
- [3.18  Édition d'une séance de cours](#page-timetables.lesson-edit)
- [3.19  Séances de cours et classes hors grille horaire](#page-timetables.off-grid-lessons)
- [3.20  Verrouiller le positionnement d'une séance](#page-timetables.lesson-lock)
- [3.21  Détecter et résoudre les conflits (à la génération)](#page-timetables.conflicts)
- [3.22  Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)
- [3.23  Visualiser, dupliquer, réorganiser un EDT](#page-timetables.visualize-duplicate)
- [3.24  Préparer la rentrée suivante](#page-timetables.next-school-year)

**4. Tableau de bord**

- [4.1  Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- [4.2  Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
- [4.3  Statistiques professeurs](#page-dashboard.teachers)
- [4.4  Statistiques salles](#page-dashboard.classrooms)
- [4.5  Statistiques matières](#page-dashboard.subjects)
- [4.6  Statistiques classes](#page-dashboard.classes)
- [4.7  Statistiques étudiants et ressources](#page-dashboard.students-resources)

**5. Usage quotidien (module Emploi du temps)**

- [5.1  Consulter et filtrer les emplois du temps](#page-schedules.consult-and-filter)
- [5.2  Affichage des EDT : grille, liste, tableau, planning, mois, vis-à-vis](#page-schedules.schedule-display)
- [5.3  Modifications ponctuelles d'un EDT publié](#page-schedules.ad-hoc-changes)
- [5.4  Évènements ponctuels (hors EDT)](#page-schedules.events)
- [5.5  Imprimer et partager](#page-schedules.print-and-export)
- [5.6  Partager un EDT par lien public](#page-schedules.share-link)

**6. Absences et remplacements**

- [6.1  Vue d'ensemble du module Absences](#page-absences.overview)
- [6.2  Déclarer une absence (administrateur / professeur / étudiant)](#page-absences.declaring)
- [6.3  Politiques de remplacement](#page-absences.substitution-policies)
- [6.4  Remplacement ponctuel d'une séance](#page-absences.single-lesson-replacement)
- [6.5  Absences pluri-jours](#page-absences.multi-day)
- [6.6  Absences classes et étudiants](#page-absences.class-and-student-absences)
- [6.7  Suivi et export des absences](#page-absences.statistics)

**7. Service du personnel**

- [7.1  Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [7.2  Construire une grille de service](#page-staffing.building-grids)
- [7.3  Définir les tâches à couvrir](#page-staffing.assignments)
- [7.4  Affecter le personnel](#page-staffing.planner)
- [7.5  Créer et partager les tableaux de service](#page-staffing.roster)

**8. Administration**

- [8.1  Utilisateurs et rôles](#page-admin.users-and-roles)
- [8.2  Gérer les administrateurs](#page-admin.admins)
- [8.3  Rôles personnalisés d'administration](#page-admin.customroles)
- [8.4  Domaines de planification](#page-admin.planning-domains)
- [8.5  Gérer les professeurs](#page-admin.teachers)
- [8.6  Gérer les élèves](#page-admin.students)
- [8.7  Gérer les membres du personnel](#page-admin.staff)
- [8.8  Gérer les matières (officielles et personnalisées)](#page-admin.subjects)
- [8.9  Types de cours](#page-admin.lesson-types)
- [8.10  Année scolaire et vacances](#page-admin.school-year)
- [8.11  Paramètres généraux de l'école](#page-admin.parameters)
- [8.12  Paramètres avancés et personnalisation](#page-admin.advanced-parameters)
- [8.13  Restrictions de visibilité et de connexion](#page-admin.visibility-restrictions)
- [8.14  Import et export](#page-admin.import-export)
- [8.15  Imports et exports français (STS, UnDeuxTemps, École Directe)](#page-admin.french-formats)
- [8.16  Points de sauvegarde](#page-admin.snapshots)
- [8.17  Journaux d'activité (logs)](#page-admin.logs)

**9. Intégrations**

- [9.1  Vue d'ensemble des intégrations](#page-integrations.overview)
- [9.2  Comment Omniscol fonctionne — une seule API, une source de vérité](#page-integrations.architecture)
- [9.3  Partenaires et outils fréquemment raccordés](#page-integrations.partners)
- [9.4  iCal — abonnement et lien dynamique](#page-integrations.ical)
- [9.5  API Omniscol — jetons d'authentification](#page-integrations.api-tokens)
- [9.6  OAuth2 / OIDC — connecter un service à Omniscol](#page-integrations.oauth-server)
- [9.7  Personnalisation d'API : surcharges de points d'accès et hooks](#page-integrations.api-customization)
- [9.8  Modèle de données complet : entités JSON, relations et ontologie](#page-integrations.data-model-full)
- [9.9  Requêtage avancé — filtrer, projeter et paginer l'API](#page-integrations.advanced-queries)
- [9.10  L'API des séances — récupérer les séances pour n'importe quelle date](#page-integrations.lessons-api)
- [9.11  MCP — connecter un agent IA externe à Omniscol](#page-integrations.mcp)
- [9.12  Assistant IA intégré](#page-integrations.ai-assistant)
- [9.13  OIDC / SSO — connexion via fournisseur d'identité](#page-integrations.oauth2)
- [9.14  Synchronisation avec des systèmes externes (ERP)](#page-integrations.extsync)
- [9.15  OneRoster (1.2 et groupes avancés)](#page-integrations.oneroster)
- [9.16  Comptes liés et ressources partagées](#page-integrations.linked-accounts)
- [9.17  Connecteur Aurion](#page-integrations.aurion)
- [9.18  Connecteur Auriga](#page-integrations.auriga)
- [9.19  Connecteur Edusign](#page-integrations.edusign)

**10. Portails**

- [10.1  Portail étudiant](#page-portal.student-portal)
- [10.2  Portail enseignant](#page-portal.teacher-portal)
- [10.3  Portail invité (liens publics)](#page-portal.guest-portal)
- [10.4  Liens de partage publics](#page-portal.share-links)

**11. Panneaux d'affichage**

- [11.1  Configurer un panneau d'affichage pour un hall ou un couloir](#page-panels.lobby-panel)
- [11.2  Configurer un panneau d'affichage devant une salle](#page-panels.room-panel)
- [11.3  Personnalisation visuelle des panneaux d'affichage](#page-panels.customization)

**12. Migration depuis un autre logiciel**

- [12.1  Migration depuis un autre logiciel — Vue d'ensemble](#page-migration.overview)
- [12.2  Migrer depuis Hyperplanning (Index Education)](#page-migration.from-hyperplanning)
- [12.3  Migrer depuis EDT / PRONOTE (Index Education)](#page-migration.from-edt)
- [12.4  Migrer depuis aSc Timetables](#page-migration.from-asc)
- [12.5  Migrer depuis ADE / ADE Campus](#page-migration.from-ade)
- [12.6  Migrer depuis UnDeuxTEMPS](#page-migration.from-undeuxtemps)
- [12.7  Migrer depuis un tableur Excel maison](#page-migration.from-spreadsheet)

**13. Spécificités enseignement supérieur**

- [13.1  Spécificités enseignement supérieur — vue d'ensemble](#page-higher-ed.overview)
- [13.2  Sessions, promotions, programme, parcours](#page-higher-ed.sessions-and-tracks)
- [13.3  Intervenants externes (vacataires, visiting)](#page-higher-ed.external-faculty)
- [13.4  Salles dédoublées et examens multi-salles](#page-higher-ed.multi-room-exams)
- [13.5  Co-enseignement et alternance d'intervenants](#page-higher-ed.co-teaching)
- [13.6  Mode calendrier pour formations non récurrentes](#page-higher-ed.calendar-mode)
- [13.7  Liens de visioconférence par cours](#page-higher-ed.videoconference-links)
- [13.8  Multi-sites en enseignement supérieur](#page-higher-ed.multi-site)

**14. Spécificités primaire / secondaire (scolaire)**

- [14.1  Spécificités primaire / secondaire — vue d'ensemble](#page-k12.overview)
- [14.2  Demi-classes et options en partition](#page-k12.half-classes-and-options)
- [14.3  Permanences et études (scolaire)](#page-k12.study-halls)
- [14.4  Classes multi-niveaux](#page-k12.multi-grade-classes)

**15. Scénarios de cas d'usage**

- [15.1  Scénarios de cas d'usage — vue d'ensemble](#page-use-cases.overview)
- [15.2  Scénarios — Création et génération d'EDT](#page-use-cases.creation-and-generation)
- [15.3  Scénarios — Placement et modification au quotidien](#page-use-cases.placement-and-modification)
- [15.4  Scénarios — Multi-groupes, multi-salles, multi-intervenants](#page-use-cases.multi-entities)
- [15.5  Scénarios — Opérations en masse](#page-use-cases.mass-operations)
- [15.6  Scénarios — Examens et évènements](#page-use-cases.exams-and-events)
- [15.7  Scénarios — Absences et remplacements](#page-use-cases.absences-and-substitutions)
- [15.8  Scénarios — Reporting et statistiques](#page-use-cases.reporting-and-stats)
- [15.9  Scénarios — Diffusion et partage](#page-use-cases.diffusion-and-sharing)

**16. FAQ — questions fréquentes**

- [16.1  FAQ — questions générales](#page-faq.general)
- [16.2  FAQ — Création d'EDT](#page-faq.timetables)
- [16.3  FAQ — Import des données](#page-faq.data-import)
- [16.4  FAQ — Comportement de l'algorithme de génération](#page-faq.solver-behavior)
- [16.5  FAQ — Affichage et interface](#page-faq.display-and-ux)
- [16.6  FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [16.7  FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)
- [16.8  FAQ — Sécurité et hébergement](#page-faq.security-and-hosting)
- [16.9  FAQ — Tarification et licences](#page-faq.pricing-and-licenses)

- **[Glossaire](#chapter-glossary)** (52 termes)

- **[Index](#chapter-index)**

---

## 1. Pour bien commencer

<a id="page-overview.what-is-omniscol"></a>

### 1.1  Qu'est-ce qu'Omniscol ?

*Source: `help/fr/overview/what-is-omniscol.md` · id: overview.what-is-omniscol · Updated: 2026-06-13*

Omniscol est un **logiciel en ligne de planification sous contraintes**,
conçu pour des établissements allant du primaire à l'enseignement
supérieur et à la formation continue. Il permet de créer des emplois du
temps hebdomadaires, cycliques ou calendriers (datés, non récurrents),
puis de les publier vers les utilisateurs concernés.

Le produit combine saisie manuelle, diagnostic des conflits et
génération automatique par [solveur](#page-glossary.solver). Les détails
métier sont documentés dans les pages spécialisées.

#### Comment ça marche, en général

Le flux de travail standard avec Omniscol :

```
1. Saisir les données       (utilisateurs, matières, sites/salles, classes)
   ↓
2. Configurer l'EDT          (volumes horaires, alignements, contraintes)
   ↓
3. Générer ou placer         (solveur automatique ou positionnement manuel)
   ↓
4. Vérifier et arbitrer      (conflits, ajustements, verrouillages)
   ↓
5. Publier                   (l'EDT devient visible côté utilisateurs)
   ↓
6. Vivre avec l'EDT          (modifications quotidiennes, absences, remplacements)
```

Chaque étape a un module dédié. Les étapes 1 à 5 sont ponctuelles
(avant une rentrée, un semestre ou une refonte). L'étape 6 correspond
à l'usage quotidien.

#### Les types d'emploi du temps

Omniscol prend en charge **trois types** d'emploi du temps. La
disponibilité de chaque type dépend du plan souscrit.

- **Hebdomadaire** — cours récurrents sur une semaine type, avec ou
  sans alternance A/B. C'est le cas standard de l'enseignement primaire
  et secondaire. Disponible sur tous les plans.
- **Cyclique** — cours récurrents sur un cycle de N jours numérotés
  (typiquement 6 ou 8), différent de la semaine de 5 ou 7. Courant dans
  les systèmes nord-américains. Disponible sur les comptes Premium.
- **Calendrier** — séances datées une par une, sans récurrence. Mode
  privilégié de l'enseignement supérieur et de la formation continue.
  Disponible sur les comptes Premium.

Sur un compte Premium, les trois types peuvent être utilisés. Et grâce à
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables),
fonction incluse en Premium, ils peuvent même être combinés sur les
mêmes périodes. Voir
[Choisir le bon type d'EDT](#page-overview.timetable-modes) pour l'aide à
la décision.

#### Philosophie : la donnée d'abord

Omniscol part d'un constat : un EDT n'est pas un tableau à remplir,
c'est un **problème d'optimisation sous contraintes**. Le logiciel est
conçu autour de cinq principes :

1. **La donnée avant le calcul** : sites, salles, professeurs, classes,
   groupes, matières et volumes horaires doivent être fiables avant de
   lancer une génération.
2. **Séparation structure / quotidien** : construire un EDT et gérer
   les changements du jour sont deux activités différentes, avec des
   interfaces différentes.
3. **Contraintes explicites** : les impossibilités sont signalées sous
   forme de [conflits](#page-glossary.conflict) ou de séances non placées ;
   l'utilisateur garde l'arbitrage métier.
4. **Brouillons et versions** : un EDT non publié peut être testé,
   dupliqué ou reconstruit sans modifier ce que les utilisateurs voient.
5. **Maîtrise des données** : export JSON ou par tableur interne et réversibilité.

Page de référence : [Philosophie générale d'Omniscol](#page-overview.philosophy).

#### Données d'entrée / sortie

Côté **entrée**, Omniscol accepte :

- la saisie unitaire dans l'interface ;
- l'import massif par copier-coller depuis un tableur, avec
  vérification avant application ;
- des migrations accompagnées selon les exports disponibles côté
  source ;
- des connecteurs ERP/SI via la [synchronisation avec des systèmes externes](#page-integrations.extsync)
  (Aurion, Auriga, Edusign ; ajout d'un nouveau système sur projet) ;
- l'[API Omniscol](#page-integrations.api-tokens) selon les droits et
  options du compte ;
- [OIDC / SSO](#page-integrations.oauth2) selon le contrat et le
  paramétrage.

Côté **sortie** :

- consultation web responsive ;
- abonnements [iCal](#page-integrations.ical) ;
- liens publics signés et expirables ;
- panneaux d'affichage ;
- exports Excel / CSV / PDF / JSON selon les écrans ;
- API REST documentée, avec périmètre limité par les endpoints et
  options autorisés ;
- [MCP](#page-integrations.mcp) pour agents IA compatibles sur les comptes
  Premium.

#### Organisation modulaire

Le logiciel s'articule en deux familles de modules.

##### Modules du quotidien

- **Accueil** — vue synthétique du jour et checklist de démarrage.
- **EDT** — consultation et modifications ponctuelles.
- **Tableau de bord** — statistiques d'occupation et de service.
- **Gestion des absences & remplacements** — déclarations d'indisponibilité et
  affectation de remplaçants.

##### Modules de paramétrage

- **Gestion des EDT** — création, configuration, génération et
  publication des emplois du temps.
- **Administration** — utilisateurs, matières, années scolaires,
  paramètres, import / export et intégrations.
- **Service du personnel** — planification du personnel par tâches lorsque le
  module est actif ; il peut aussi être vendu comme offre autonome.

#### Rôles et accès

Quatre profils structurent l'accès côté école. Les **Administrateurs**
(responsables planning, direction, DSI) configurent le compte et
construisent les emplois du temps. Les **Professeurs** consultent leur
planning, saisissent leurs disponibilités et déclarent leurs absences. Les
**Élèves** consultent leur emploi du temps personnel. Le **Personnel**
(vie scolaire, surveillants) intervient lorsque le Service du personnel
est utilisé. Des liens de partage signés offrent en complément un accès
sans compte à un périmètre précis.

Les rôles sont cumulables : un professeur qui participe à la
planification peut être à la fois Professeur et Administrateur. Le
détail des rôles est présenté dans
[Architecture et rôles](#page-overview.architecture-and-roles).

L’option [Rôles personnalisés](#page-admin.customroles) permet
de restreindre les droits d'un compte administrateur module par module
et opération par opération.

#### Plans et options

Omniscol propose plusieurs plans : **Lite** (indépendants, formateurs
solo, très petits établissements), **Staffing** (uniquement le Service
du personnel), **Standard** (établissement scolaire classique),
**Standard Plus** (Standard + Service du personnel) et **Premium**
(enseignement supérieur, formation continue, organisations multi-sites
complexes). Certaines fonctions sont incluses de base en Premium —
types d'EDT cyclique et calendrier, disponibilités calendrier, plusieurs EDT
actifs — tandis que d'autres s'activent selon le
contrat (snapshots, logs, collaboration temps réel, comptes liés,
rôles personnalisés…).

Le détail des plans, des options et de leur mode d'activation est
centralisé dans [Plans et options Omniscol](#page-overview.plans-and-options).

#### Points de différenciation

- **Génération automatique** : le solveur place les séances en
  respectant les contraintes strictes et en optimisant les préférences.
- **Contrôle manuel** : l'utilisateur peut toujours inspecter,
  déplacer, verrouiller ou arbitrer.
- **Diffusion multi-supports** : web, iCal, exports, liens publics et
  panneaux d'affichage.
- **Reporting** : tableaux de bord et exports pour suivre les heures,
  l'occupation des salles et les indicateurs utiles aux audits.

#### Architecture et hébergement

Les éléments d'architecture, de sécurité et d'hébergement sont décrits
dans [Architecture et rôles](#page-overview.architecture-and-roles) et
[FAQ — Sécurité et hébergement](#page-faq.security-and-hosting).

#### La suite

- Pour une visite interactive : [Visite guidée en cinq minutes](#page-overview.quick-tour).
- Pour configurer votre compte : [Première connexion](#page-getting-started.first-login)
  puis [Configurer le compte de l'école](#page-getting-started.setup-school).
- Pour comprendre les concepts métier : [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups).
- Pour créer votre premier EDT : [Module Gestion des EDT](#page-timetables.overview).
- Pour les questions fréquentes : [FAQ générale](#page-faq.general).

#### Voir aussi

- [Philosophie générale d'Omniscol](#page-overview.philosophy)
- [Architecture et rôles](#page-overview.architecture-and-roles)
- [Choisir le bon type d'EDT : hebdomadaire, cyclique, calendrier](#page-overview.timetable-modes)
- [Plans et options Omniscol](#page-overview.plans-and-options)
- [Visite guidée en cinq minutes](#page-overview.quick-tour)

<a id="page-overview.philosophy"></a>

### 1.2  Philosophie générale d'Omniscol

*Source: `help/fr/overview/philosophy.md` · id: overview.philosophy · Updated: 2026-06-13*

Avant les fonctionnalités, quelques principes structurent l'expérience
Omniscol et expliquent pourquoi le logiciel prend certaines décisions
plutôt que d'autres.

#### Le contexte métier

L'emploi du temps n'est pas un simple tableau à remplir. C'est un
**problème d'optimisation sous contraintes** :

- contraintes nombreuses et souvent implicites ;
- contraintes parfois contradictoires ;
- enjeu opérationnel fort : la rentrée, le semestre ou la période doit
  fonctionner.

Omniscol est conçu comme un **assistant de planification sous
contraintes** : il accélère le travail, signale les impossibilités et
laisse l'arbitrage métier à l'utilisateur.

#### Ce qu'Omniscol n'est pas

| Catégorie | Ce que ça fait | Omniscol ? |
| --- | --- | --- |
| ERP scolaire / SIS | Dossiers administratifs, scolarité | Non. Omniscol consomme ou synchronise ces données. |
| ENT / LMS | Pédagogie, contenus de cours, communication | Non. |
| Notes / émargement | Évaluations, signatures, cahier de texte | Non. |
| Omniscol | Organisation du temps : qui, quoi, où, quand | Oui. |

Omniscol a vocation à s'interfacer avec d'autres systèmes via imports,
exports, iCal, API REST documentée, OIDC / SSO selon contrat et
[synchronisation avec des systèmes externes](#page-integrations.extsync).
Il ne cherche pas à remplacer les outils métier qui portent d'autres
périmètres. Voir aussi
[Partenaires](#page-integrations.partners).

#### Les cinq principes fondateurs

##### 1. La donnée avant le calcul

On ne peut pas générer un EDT fiable sans données saines : sites,
salles, professeurs, classes, groupes, matières, volumes horaires,
disponibilités et contraintes.

##### 2. Séparation structure / vie quotidienne

Construire un EDT et vivre avec un EDT publié sont deux activités
différentes. La première se fait surtout dans
[Gestion des EDT](#page-timetables.overview), la seconde dans
[Emploi du temps](#page-schedules.consult-and-filter), [Absences](#page-absences.overview) et
[Tableau de bord](#page-dashboard.overview).

##### 3. Contraintes dures et contraintes d'optimisation

Certaines contraintes rendent un EDT invalide et sont traitées comme
des contraintes strictes : un professeur à un seul endroit au même
moment, une classe sans collision sauf groupes en partition, une salle
standard affectée à une seule séance, les indisponibilités, les capacités,
les ressources matérielles et les trajets inter-sites.

D'autres contraintes servent à améliorer la solution : disponibilités
indésirables, trous, équilibre des journées, ordre pédagogique entre
matières, maxima ou minima d'heures, nombre de jours de présence. Elles
sont évaluées comme des malus que le solveur cherche à réduire.

##### 4. Brouillons et versions

Un EDT non publié n'a pas d'impact sur ce que voient les utilisateurs.
Vous pouvez dupliquer, tester, comparer, verrouiller certaines séances,
relancer une génération et publier seulement quand le résultat convient.

Les snapshots, lorsqu'ils sont activés, ajoutent un filet de sécurité
pour revenir en arrière ou restaurer certaines données.

##### 5. L'utilisateur reste maître de la donnée

Omniscol permet l'export JSON complet, les exports métier selon les
écrans et la réversibilité. Les automatisations ne remplacent pas la
décision humaine.

#### Les conflits sont une information, pas une erreur

En saisie manuelle, Omniscol signale les conflits mais laisse
l'utilisateur arbitrer. C'est utile pour les cas particuliers réels :
salle de tiers-temps, dépassement assumé d'une capacité théorique,
affectation d'une salle hors spécialisation pour une raison locale.

En génération automatique, le solveur ne produit pas volontairement de
collision majeure. Si aucune solution complète n'est trouvée, il conserve
le meilleur EDT calculé et laisse les séances impossibles à placer dans la
liste des post-its non positionnés.

Le [verrouillage d'une séance](#page-timetables.lesson-lock) permet
d'ancrer un placement voulu : la génération suivante ajuste les autres
séances autour de ce verrou.

#### Multi-EDT comme principe de modélisation

Omniscol est nativement **multi-EDT**. Plusieurs EDT peuvent coexister
pour un même établissement :

- années scolaires distinctes ;
- semestres ou périodes ;
- séparation logique par campus, département ou cycle ;
- combinaison de types différents, par exemple hebdomadaire récurrent
  et calendrier daté.

En Premium, plusieurs EDT peuvent être
[actifs en parallèle](#page-timetables.multiple-active-timetables) — une
activation spécifique est aussi possible sur certains comptes Standard.
Une école peut avoir un cycle préparatoire en deux EDT hebdomadaires
pour chaque semestre, un cycle grande école en calendrier non récurrent et
simultanément, un programme ExecMBA sur 18 mois, qui commence et termine
en décalé par rapport aux autres plannings et à l'année scolaire. Avec
Omniscol, on peut créer chaque EDT séparément, mais bénéficier de la
gestion des conflits croisés lors de la planification, puis tout activer
en parallèle, simultanément, pour que le résultat final soit une vue
fusionnée, transparente pour les utilisateurs finaux.

#### IA d'optimisation et agents externes

Le [solveur](#page-glossary.solver) est une IA d'optimisation
**métaheuristique Monte-Carlo neuro-symbolique**. Le moteur explore
des placements sous contraintes, cherche une solution valide puis optimise
les malus, avec une rapidité impressionnante (ex : moins d'une minute pour un
collège de 16 classes). Si une solution valide n'est pas trouvée, un système
de relaxation sacrifie les séances de cours intelligemment, et procède tout
de même à l'optimisation du résultat. Omniscol est une société AI-first, issue
d'une longue phase de R&D "deeptech".

Omniscol dispose aussi d'autres algorithmes de type IA symbolique, pour vérifier
les conflits, détecter les inconsistances de paramétrage, faire des propositions
d'amélioration ou alertes de configuration, préfiltrer la meilleure solution dans
une liste de propositions, ou encore allouer automatiquement un sous-ensemble de
salles à un sous-ensemble de séances de cours, le tout dans le navigateur,
immédiatement.

Omniscol expose aussi des outils API à des agents compatibles via
[MCP](#page-integrations.mcp) lorsque l'option et les droits sont actifs.
Cela permet d'interagir avec Omniscol en langage naturel, pour étendre
les possibilités fournies par l'interface graphique, en allant chercher
directement les données pertinentes dans le serveur d'Omniscol.
Ces agents agissent dans le périmètre du jeton fourni ; les usages de
consultation sont les plus sûrs, et toute action d'écriture doit rester
vérifiée par l'utilisateur. Actuellement, le meilleur agent IA pour
interagir avec Omniscol est Claude, en version Desktop.

#### Voir aussi

- [Qu'est-ce qu'Omniscol ?](#page-overview.what-is-omniscol)
- [Architecture et rôles](#page-overview.architecture-and-roles)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Conflit](#page-glossary.conflict)
- [Solveur](#page-glossary.solver)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)

<a id="page-overview.quick-tour"></a>

### 1.3  Visite guidée en cinq minutes

*Source: `help/fr/overview/quick-tour.md` · id: overview.quick-tour · Updated: 2026-06-25*

Cette visite guidée vous emmène à travers les principaux modules
d'Omniscol en quelques minutes. Si vous découvrez le logiciel,
c'est le bon endroit.

#### Le menu de modules à gauche

À gauche de chaque écran, un menu vertical liste les modules
disponibles pour votre rôle. De haut en bas, dans l'ordre d'usage
quotidien :

1. **Accueil** (l'icône [house]) — guide de démarrage tant qu'aucun EDT
   n'est encore publié, sinon écran d'accueil personnalisé.
2. **EDT** — votre vue principale au quotidien.
3. **Tableau de bord** — statistiques.
4. **Gestion des absences** — gestion des absences et remplacements.
5. **Gestion des EDT** — création et structure des emplois du temps.
6. **Administration** — utilisateurs, matières, paramètres.

Selon votre contrat, d'autres modules peuvent apparaître, par
exemple **Service du personnel** (grilles de tâches et de surveillance, pour les équipes vie scolaire).

#### La ligne de temps

En haut de la plupart des écrans, une **ligne de temps** (par semaines ou
par mois) matérialise l'année scolaire. Elle vous permet de naviguer
temporellement et de voir d'un coup d'œil les périodes où des EDT sont
publiés (semaines colorées), les vacances (semaines grisées). Cette
ligne de temps est riche d'options et d'usages. Elle peut se transformer en
vue par mois ou années (voire : de date à date, explicitement). Dans
la gestion des EDT, elle se colore selon les EDT publiés — les trous
sont les semaines blanches. Lors de l'affichage d'un emploi du temps
de type calendrier, des indications bleu clair, en haut, signalent où
se trouvent des séances de cours sur les vues planning affichées à l'écran.

Les flèches `◀` et `▶︎` aux extrémités font basculer entre années
scolaires.

#### Suivez le guide !

Bienvenue dans Omniscol. Cet aperçu vous présente les
modules du logiciel et comment ils s'articulent.

1. Le **bouton d'aide** en haut à droite ouvre cette aide à tout moment,
   sur n'importe quel écran. Il sait sur quel écran vous êtes et propose
   la page la plus pertinente. À côté, le bouton de légendage affiche
   une description des éléments à l'écran.
2. **Accueil** (icône [house]) : tant que vous n'avez pas publié votre
   premier EDT, ce module vous guide pas à pas. Suivez [les étapes](#page-getting-started.setup-school),
   cochez les cases, revenez quand vous voulez.
3. **Emploi du temps** : la consultation au quotidien. Tous les filtres
   (classe, professeur, salle, groupe, matière, élève). Plusieurs
   modes d'affichage : grille standard, liste, tableau type tableur,
   planning, planning par heures, jour, mois et vis-à-vis. Un planning ne
   s'affiche qu'une fois publié un premier EDT comportant des séances
   de cours positionnées.
4. **Tableau de bord** : les statistiques de l'EDT effectif (opérationnel).
   Heures par professeur, par classe, par salle, par matière. Filtrable par période.
   Exportable en CSV et Excel. API avec encore plus de détail.
5. **Absences** : gestion centralisée. Déclarations par les professeurs ou les
   élèves (avec validation administrative), ou par l'administration en
   direct. Affectation de remplaçants aux professeurs absents. Absence de
   classe (stage, sortie scolaire...).
6. **Gestion des EDT** : la création des emplois du temps eux-mêmes.
   Sites, classes, groupes, professeurs, matières, cours. Génération
   automatique ou positionnement manuel. Publication, pour qu'un EDT
   théorique devienne opérationnel.
7. **Service du personnel** (si module activé) : la planification des surveillants
   (AED). Définition des tâches et de leurs spécificités, affectation du personnel.
   Feuille de service à distribuer.
8. **Administration** : utilisateurs, matières, années scolaires,
   paramètres, import/export. Surtout au démarrage du compte.

#### La suite

- Pour configurer votre compte de zéro : [Première connexion](#page-getting-started.first-login).
- Pour comprendre les concepts métier (classe, groupe, partition,
  alignement, etc.) : [Concepts métier](#page-core-concepts.classes-and-groups).
- Pour créer votre premier EDT : [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview).
- Pour voir comment Omniscol s'intègre à votre SI :
  [Vue d'ensemble des intégrations](#page-integrations.overview).

#### Voir aussi

- [Qu'est-ce qu'Omniscol ?](#page-overview.what-is-omniscol)
- [Architecture et rôles](#page-overview.architecture-and-roles)

<a id="page-overview.architecture-and-roles"></a>

### 1.4  Architecture, modules et rôles

*Source: `help/fr/overview/architecture-and-roles.md` · id: overview.architecture-and-roles · Updated: 2026-08-07*

Cette page résume l'architecture applicative d'Omniscol et les rôles
visibles côté école. Les engagements contractuels précis
(disponibilité, sauvegardes, rétention, supervision) relèvent des
documents juridiques ou commerciaux validés.

#### Hébergement et fiabilité

Omniscol est hébergé dans l'Union européenne, plus spécifiquement sur
AWS Paris et Scaleway Paris. Le produit utilise des
mécanismes de sauvegarde, de supervision et d'isolation logique entre
les comptes des établissements ; les détails applicables à un compte dépendent
du contrat et de l'environnement concerné.

Voir [FAQ — Sécurité et hébergement](#page-faq.security-and-hosting) pour le
détail utilisateur.

#### Architecture logicielle

- **Application web** : l'application se charge une fois, puis les
  écrans sont rendus dynamiquement avec échanges REST/JSON (Single Page
  Application).
- **CouchDB** comme base de données principale.
- **Redis** comme base de données pour la synchronisation côté application
  et les logs.
- **TypeScript** pour l'interface (webapp).
- **Backend Node.js / Express** orchestrant les engines internes
  (api, webapp, portal, panel, ical, mcp, oauth2, etc.).
- **C++** pour l'algorithme de génération, exécuté sur des VMs dédiées
  démarrées à la demande.

#### Sécurité

- **HTTPS** pour les communications exposées.
- **Cloudflare** comme porte d'entrée exclusive (protection anti-DDOS).
- **Mots de passe pré-hashés côté client avec scrypt**, puis re-hashés
  et salés côté serveur. Ils ne sont pas stockés ni transmis en clair.
- **Authentification JWT** avec clés de signature et durée de vie
  courte ; une rotation ou révocation de clé peut invalider les jetons
  signés.
- **[Liens de partage](#page-glossary.share-link)** signés,
  expirables, liés au compte qui les a générés et invalidables par
  changement de mot de passe ou désactivation de ce compte.
- **[Jetons API](#page-glossary.api-token)** avec clé racine
  et jetons dérivés, scopes d'endpoints et expirations.
- **OIDC / SSO** disponible selon le contrat et le paramétrage du
  compte.
- **Export et sauvegardes internes JSON** pour la réversibilité des données.

#### Rôles utilisateurs

Omniscol distingue plusieurs rôles côté école :

| Rôle | Usage typique |
| --- | --- |
| Administrateur | Responsables planning, direction, DSI |
| Professeur | Professeurs, intervenants, formateurs |
| Élève | Élèves, étudiants, apprenants |
| Personnel | Vie scolaire, CPE, AED, surveillants si le Service du personnel est actif |
| Lien de partage | Accès par URL signée à un périmètre précis |

La correspondance entre ces libellés et les identifiants techniques des
rôles est détaillée dans [Utilisateurs et rôles](#page-admin.users-and-roles).

Un même utilisateur peut **cumuler plusieurs rôles**. Par exemple, un
professeur qui participe à la planification peut être à la fois
Professeur et Administrateur.

Le rôle Lien de partage ne correspond pas à un compte utilisateur
classique. Il s'agit de liens signés : les liens web d'EDT sont en
lecture seule, tandis que certains liens ciblés peuvent autoriser une
action limitée, comme la saisie des disponibilités d'un professeur jusqu'à une
date d'expiration.

Il existe par ailleurs des rôles internes réservés aux équipes
d'Omniscol : administration de la plateforme, traduction, actions
commerciales et partenaires redistributeurs. Certains de ces comptes
sont autorisés à se connecter aux comptes des écoles, pour des raisons
de maintenance. Ils interviennent alors comme superadministrateurs de
l'école, avec plus de possibilités qu'un administrateur : importation
de données brutes en base de données, activation ou désactivation
d'options payantes, connexion au nom d'un utilisateur. Ces accès
déclenchent des alertes de connexion visibles et leurs jetons expirent
très vite. Les grands pouvoirs impliquent de grandes responsabilités.

> _Option: Rôles personnalisés_

#### Rôles personnalisés

L’option [Rôles personnalisés](#page-admin.customroles) permet
de restreindre les droits d'un compte administrateur module par module
et opération par opération. Elle sert à déléguer une partie de
l'administration sans donner tous les droits globaux.

La même option ouvre les [domaines](#page-admin.planning-domains) : là où le
rôle borne les opérations, le domaine borne les données — quelles classes,
quels sites, quels emplois du temps un planificateur peut modifier.

#### Modules

Les modules visibles dans un compte standard :

- **Accueil** (`home`) — page d'entrée et synthèse du jour.
- **EDT** (`schedules`) — consultation et modifications
  ponctuelles.
- **Tableau de bord** (`dashboard`) — statistiques d'occupation et de
  service.
- **Gestion des absences** (`absences`) — déclarations et substitutions.
- **Gestion des EDT** (`timetables`) — construction, génération et
  publication des emplois du temps.
- **Administration** (`admin`) — utilisateurs, paramètres, import /
  export et intégrations.

Selon le contrat, d'autres modules peuvent apparaître, notamment
**Service du personnel** pour la planification des tâches de vie scolaire et de
surveillance.

#### Multi-écoles

Chaque école est isolée logiquement côté serveur et accède à son propre
domaine. Les données d'une école ne sont pas visibles par les autres
écoles depuis l'application. En revanche, sur demande, il est possible
d'activer un canal de communication entre les comptes distincts, afin
de partager les conflits d'occupation de salles et de professeurs. C'est
très utile dans le cadre de bâtiments partagés, ou pour un groupe d'écoles
partageant des ressources.

#### Voir aussi

- [Présentation générale](#page-overview.what-is-omniscol)
- [Visite guidée](#page-overview.quick-tour)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Rôles personnalisés](#page-admin.customroles)
- [Domaines](#page-admin.planning-domains)
- [Plans et options Omniscol](#page-overview.plans-and-options)
- [Sécurité et hébergement](#page-faq.security-and-hosting)

<a id="page-overview.plans-and-options"></a>

### 1.5  Plans et options Omniscol

*Source: `help/fr/overview/plans-and-options.md` · id: overview.plans-and-options · Updated: 2026-08-07*

Omniscol se vend selon un modèle simple : **plusieurs plans**, des
**fonctions Premium de base**, certaines **activations contractuelles**
et une offre autonome **Service du personnel**. Le prix et le périmètre
exact dépendent du contrat avec votre établissement.

#### Les plans

| Plan | Pour qui ? | Inclus |
| --- | --- | --- |
| **Lite** | Très petits établissements, indépendants, formateurs solo, tests | Génération d'EDT et impression. **Pas de publication, pas d'années scolaires, pas de multi-sites, pas de gestion d'élèves**, ressources limitées. Modules visibles : Gestion des EDT + Administration minimale. |
| **Staffing** | Établissements qui n'ont besoin que du service du personnel | Uniquement le module Service du personnel, pour la surveillance, les permanences et l'encadrement |
| **Standard** | Établissement classique (école, collège, lycée), équipe planning unique, EDT hebdomadaire | Lite + publication, années scolaires, multi-sites, gestion des élèves, planning quotidien, absences, tableau de bord, panneaux d'affichage, iCal, API limitée en lecture |
| **Standard Plus** | Établissements qui ont besoin du Standard et du Service du personnel | Standard + Service du personnel |
| **Premium** | Supérieur, formation continue, organisations multi-sites ou multi-parcours plus complexes | EDT de type hebdomadaire, cyclique ou calendrier, disponibilités datées, plusieurs EDT actifs, plus d'options de configuration (statut des séances de cours, placement hors grille, évènements ponctuels, modalité de cours, liens de visioconférence...), API complète par jetons, MCP, OIDC / SSO, synchronisation externe, options avancées selon contrat (collaboration, snapshots, rôles personnalisés). |

Les fonctionnalités ne s'activent pas toutes de la même manière :

- certaines fonctions sont **incluses de base dans Premium**
  (mode calendrier, disponibilités calendrier, plusieurs EDT actifs) ;
- d'autres sont **activées selon votre contrat**, le plus souvent sur
  des comptes Premium ;
- quelques cas restent **exceptionnellement activables** sur un compte
  Standard lorsqu'il y a un besoin précis ;
- le **Service du personnel** suit aussi sa propre logique, puisqu'il
  peut être vendu seul.

#### Offre autonome Service du personnel

Le module Service du personnel est aussi commercialisé **sans le reste
d'Omniscol** pour les établissements qui n'ont besoin que de la gestion
de surveillance / encadrement. Le compte expose alors seulement le
module Service du personnel, les absences du personnel affectable et
les écrans utilisateurs nécessaires. Pas d'EDT, pas de tableau de bord
pédagogique, pas de panneaux d'affichage. Voir
[Vue d'ensemble du Service du personnel](#page-staffing.overview).

#### Activations contractuelles

| Fonction | Description | Activation |
| --- | --- | --- |
| Rôles personnalisés | Rôles personnalisés avec matrice de permissions fines. | Selon le contrat du compte |
| Domaines de planification | Périmètre de données et droits associés attribués à un administrateur, pour déléguer un campus, une filière ou un établissement. | Comptes Premium, selon le contrat du compte |
| Snapshots | Points de sauvegarde, digest, restauration et rotation selon quota contractuel activé par Omniscol. | Selon le contrat du compte |
| Collaboration | Collaboration entre administrateurs, présence en temps réel selon configuration. | Selon le contrat du compte |
| Logs | Écran de consultation des journaux avec profondeur de conservation activée par Omniscol selon contrat. | Selon le contrat du compte |
| Comptes liés | Différents comptes Omniscol liés pour partager des occupations de salles, professeurs ou classes entre établissements disposant chacun d'un sous-domaine Omniscol séparé. | Sur demande, après cadrage |
| Plusieurs EDT actifs sur compte Standard | Cas exceptionnel pour certains comptes scolaires réellement séparés (par exemple collège-lycée autonome ou primaire-collège-lycée). | Activation spécifique, avec cadrage et facturation adaptés |
| Affectation directe des élèves aux classes et groupes dans les emplois du temps | Usuellement, les écoles planifient sans avoir la liste précise des élèves et de leurs affectations. Elles travaillent donc avec les classes et groupes par un nombre théorique d'élèves attendus, en précisant les logiques organisationnelles ; une fois l'emploi du temps terminé, les élèves sont (éventuellement) affectés aux classes et groupes, a posteriori. Cependant, un autre cas de fonctionnement existe, fréquent dans les organismes de formation, où l'on a besoin de la liste précise des élèves sur chaque classe et chaque groupe, a priori, lors de la conception de l'EDT ; la logique de non-conflit entre les groupes (exclusion mutuelle) est alors automatiquement déduite par Omniscol. Cela change le modèle de données et le mode de fonctionnement, et n'est donc activable que sur option par l'équipe Omniscol. | Sur demande, après évaluation de la manière de planifier particulière |
| Service du personnel | Module de gestion de la surveillance / encadrement (examens, permanences). Aussi vendu en offre autonome. | En offre autonome, en Standard Plus ou selon contrat |
| Modules complémentaires | Modules supplémentaires éventuels. | Selon module et contrat |

#### Fonctionnalités notables expliquées

##### Mode calendrier

Permet de positionner les séances **date par date** plutôt que sur
une semaine type. C'est une fonction **incluse de base dans Premium**,
indispensable pour le supérieur, la formation
continue, les centres de formation. Voir
[Mode calendrier](#page-glossary.calendar-mode).

##### Groupes de groupes

Regrouper plusieurs groupes — d'une même classe ou de classes
différentes — en une entité planifiable d'un bloc. **Disponible sur
tous les comptes, quel que soit le plan**, et sur tous les types d'EDT
(hebdomadaire, cyclique, calendrier) ; aucune activation particulière
n'est requise. Voir
[Groupes de groupes](#page-core-concepts.groups-of-groups).

##### Plusieurs EDT actifs en parallèle

Publier plusieurs EDT simultanément sur les mêmes semaines, fusionnés
dynamiquement. C'est inclus de base dans Premium. Omniscol peut aussi
l'activer exceptionnellement sur certains comptes Standard ou scolaires
mixtes quand le besoin et la facturation le justifient. Voir
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

##### Comptes liés

Relier plusieurs comptes Omniscol pour partager les occupations de
ressources communes : professeurs, salles, bâtiments ou classes selon
les cas. L'activation se fait sur demande par Omniscol, car il faut
cadrer les comptes reliés et les ressources partagées. Voir
[Comptes liés et ressources partagées](#page-integrations.linked-accounts).

##### Rôles personnalisés

Limiter finement les droits d'un compte administrateur — module par
module, avec choix des opérations (consultation / modification /
suppression) et coupure d'un module entier en un clic. Voir
[Rôles personnalisés](#page-admin.customroles).

##### Domaines de planification

Attribuer à un administrateur un périmètre de données — campus, matières,
emploi du temps, sites, salles, classes, groupes — et les droits qu'il y
exerce. Chaque planificateur travaille sur sa part sans toucher à celle
des autres, la lecture restant ouverte. Voir
[Domaines](#page-admin.planning-domains).

##### Points de sauvegarde

Sauvegarder l'état du compte à un instant T et le restaurer
ultérieurement. Précieux avant une opération risquée (refonte
massive, import volumineux, début d'année). Voir
[Points de sauvegarde](#page-admin.snapshots).

##### Collaboration temps réel

Plusieurs administrateurs peuvent travailler sur le même compte avec
des indicateurs de présence lorsque l'option est activée. Voir
[Collaboration temps réel](#page-core-concepts.collaboration).

##### MCP

Le **MCP** permet de connecter un agent IA
compatible tel que Claude (recommandé), avec son identification de compte
via OAuth2. Voir [MCP](#page-integrations.mcp).

##### Logs

Lorsque l'option est activée par Omniscol, l'écran Logs permet de
consulter et d'exporter les entrées journalisées par Omniscol. Il ne
faut pas le présenter comme un audit complet avec diff avant/après ou
rejeu des requêtes. Voir [Journaux d'activité (logs)](#page-admin.logs).

##### Synchronisation ERP

La synchronisation avec des systèmes externes relève d'une activation
contractuelle, généralement sur des comptes Premium, lorsqu'un
connecteur est configuré. Les connecteurs Aurion, Auriga et Edusign existent ;
l'ajout d'un nouvel ERP se traite sur projet, avec API documentée,
sandbox et cadrage du mapping. Voir
[Synchronisation avec des systèmes externes](#page-integrations.extsync).

##### Service du personnel autonome

Le module Service du personnel est disponible séparément, y compris en
offre autonome (sans le reste d'Omniscol). Voir
[Vue d'ensemble du Service du personnel](#page-staffing.overview).

#### Comment savoir quel plan et quelles options sont actifs

Visible dans Paramètres — rubrique en bas du panneau,
qui affiche le plan actif et les options souscrites. Le plan + les
options déterminent quels modules sont disponibles dans le menu de
gauche.

#### Voir aussi

- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Comptes liés et ressources partagées](#page-integrations.linked-accounts)
- [Mode calendrier](#page-timetables.calendar-mode)
- [Rôles personnalisés](#page-admin.customroles)
- [Domaines](#page-admin.planning-domains)
- [Snapshots](#page-admin.snapshots)
- [Collaboration temps réel](#page-core-concepts.collaboration)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)

<a id="page-overview.timetable-modes"></a>

### 1.6  Choisir le bon type d'EDT : hebdomadaire, cyclique, calendrier

*Source: `help/fr/overview/timetable-modes.md` · id: overview.timetable-modes · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Sur un compte Premium, vous avez le choix entre trois types
d'emploi du temps au moment de la création. La distinction
fondamentale oppose la **récurrence** (Hebdomadaire et Cyclique : un
motif se répète) à la **non-récurrence** (Calendrier : chaque séance
est datée individuellement). Le choix structure la suite ; il est
donc important de le comprendre avant de créer un EDT.

La **génération automatique** par solveur est disponible pour les
trois types ; les avantages et les limites propres à chaque type sont
décrits ci-dessous.

#### En une phrase

| Type | Récurrence | Quand l'utiliser |
| --- | --- | --- |
| **[Hebdomadaire](#page-glossary.weekly-timetable)** | Récurrent (semaine type) | Cours récurrents sur une **semaine type**. Primaire / secondaire. |
| **[Cyclique](#page-glossary.cyclic-timetable)** | Récurrent (cycle de N jours) | Cours récurrents sur un **cycle de N jours** (différent de la semaine de 5 ou 7). Systèmes nord-américains, écoles internationales. |
| **[Calendrier](#page-glossary.calendar-mode)** | Non récurrent | Séances **datées une par une**, sans récurrence. Supérieur, formation continue. |

#### Hebdomadaire — le cas standard

C'est le mode par défaut. Il convient à toute école dont les cours
suivent une **semaine type récurrente**, avec ou sans alternance A/B.

Avantages :

- Logique simple : vous saisissez une semaine type, puis vous
  choisissez les semaines où elle s'applique.
- Vacances retirées automatiquement.

Limites :

- Pas adapté aux établissements où chaque semaine est différente
  (séances ponctuelles, intervenants externes alternant).
- Les séances qui n'ont lieu qu'une seule fois (conférence, examen
  à date précise) doivent être ajoutées en modifications ponctuelles
  ou via un EDT séparé.

#### Cyclique — pour les cycles non hebdomadaires

Le mode cyclique convient aux établissements qui organisent les cours
sur un **cycle de N jours** (typiquement 6 ou 8) différent de la
semaine de 5 ou 7 — courant dans les systèmes nord-américains et dans
certaines écoles internationales.

Le fonctionnement est proche de l'hebdomadaire, avec un cycle de
N jours numérotés (Jour 1, Jour 2…). Le mappage cycle ↔ jours de la
semaine se construit dynamiquement à partir de la **publication de l'EDT**,
c'est-à-dire lors du choix des semaines où le cycle s'applique.

#### Calendrier — pour le supérieur et la formation continue

Le mode calendrier diffère sensiblement des deux autres : chaque
séance est positionnée sur **une date précise**, sans récurrence.

C'est le mode privilégié de :

- l'enseignement supérieur (écoles de commerce, écoles d'ingénieurs,
  universités),
- la formation continue,
- les centres de formation où les cours ne reviennent pas chaque
  semaine.

Par rapport à un agenda classique ou un ERP/logiciel de vie scolaire,
on bénéficie alors des spécificités typiques de l'enseignement supérieur
(voir [mode calendrier](#page-timetables.calendar-mode) pour le détail) :

- **Aide à la saisie très complète** — conflits en temps réel,
  filtres de salles, disponibilités consolidées…
- **Disponibilités consolidées en temps réel** — les changements de disponibilités des
  intervenants sont immédiatement répercutés comme conflits potentiels ou avérés.
- **Publication binaire** — l'EDT est publié ou non, sans choix de
  plages.

Limite actuelle — la **semi-récurrence** : certaines écoles ont des
semaines globalement similaires mais ponctuées d'irrégularités (cours
qui s'arrêtent avant les autres, journées fériées, intervenants
ponctuels…). Des boutons permettent de **dupliquer manuellement** une
séance sur un motif récurrent, mais le solveur ne prend pas encore en
charge ce cas ; la génération automatique reste pleinement disponible
sur des calendriers sans motif récurrent sous-jacent, ou à l'inverse,
pour les EDT totalement récurrents (hebdomadaires).

**Génération partielle** — la génération automatique peut être
restreinte à un sous-ensemble du périmètre via le panneau d'options.
Trois filtres sont disponibles :

- **Classes** : sélection des classes à générer.
- **Matières** : sélection des matières à générer.
- **Plage de dates** : propre au mode Calendrier. Permet de traiter
  une période à la fois (par exemple, le trimestre suivant).

C'est particulièrement utile en Calendrier : on peut bâtir l'EDT **par
itérations successives** — un trimestre, puis le suivant ; une
filière, puis les autres ; etc.

#### Choisir son mode : guide rapide

```mermaid
flowchart TD
    Q1{{"Vos séances suivent-elles<br/>un motif récurrent ?"}}
    Q2{{"Le motif est-il la semaine<br/>(5 à 7 jours) ?"}}
    H([Hebdomadaire])
    Cy([Cyclique])
    Ca([Calendrier])
    Q1 -->|Oui| Q2
    Q1 -->|Non| Ca
    Q2 -->|Oui| H
    Q2 -->|Non| Cy
```

#### Transformer un EDT vers un autre type

Si vous souhaitez basculer un EDT existant d'un type vers un autre,
vous pouvez le **dupliquer en le transformant** depuis l'action
Dupliquer de la liste
des EDT, dans le module Gestion des EDT. Les six
conversions sont prises en charge : Hebdomadaire ↔ Cyclique,
Hebdomadaire ↔ Calendrier, Cyclique ↔ Calendrier.

Selon le type cible, un paramètre supplémentaire est demandé :

- **Calendrier** : plage de dates (début / fin) sur laquelle déployer
  les cours. La fenêtre propose par défaut la première et la dernière
  semaine de l'année scolaire.
- **Cyclique** : longueur du cycle, en jours (par défaut 12).
- **Hebdomadaire** : aucun paramètre supplémentaire.

Ce qui est remappé pendant la transformation :

- **Positions des séances de cours** — chaque position est traduite du système
  d'origine vers le système cible (jour de la semaine ↔ numéro de
  cycle ↔ date).
- **Hebdomadaire → Calendrier** : chaque séance est démultipliée sur
  toutes les dates correspondantes de la plage cible, et les
  **volumes horaires des matières** sont multipliés par le nombre de
  semaines pour préserver le total. L'**alternance A/B**
  est appliquée automatiquement à chaque date matérialisée.
- **Disponibilités horaires** : conservées et migrées uniquement depuis une
  source **Hebdomadaire**. Une source Cyclique ou Calendrier les
  supprime — les disponibilités datées ou en numéros de cycle ne se reprojettent
  pas proprement sur une semaine type ou un autre cycle.

Le résultat est un **EDT autonome**, indépendant
de l'original — vous pouvez le retravailler à part, le publier seul
ou en parallèle de la version d'origine.

#### Combiner les modes

Vous pouvez **publier simultanément plusieurs EDT de types
différents** sur les mêmes semaines.

Cas typiques :

- **Tronc commun récurrent + événements ponctuels** : un EDT
  hebdomadaire pour les cours réguliers + un EDT
  [calendrier](#page-timetables.calendar-mode) pour les masterclasses,
  conférences ou examens datés.
- **Rythmes différents sur les mêmes classes** : un EDT hebdomadaire
  pour les matinées (matières fondamentales très régulières) + un EDT
  calendrier pour les après-midi (sport, clubs, ateliers qui changent
  d'une semaine à l'autre).
- **Fonctionnement différent selon les classes** : une prépa intégrée
  hebdomadaire, vs un cycle grande école non récurrent avec de nombreux
  intervenants extérieurs enseignant plusieurs jours d'affilée le même
  cours aux mêmes élèves.

Si plusieurs EDT publiés partagent un professeur ou une salle, Omniscol
**fusionne dynamiquement les vues** côté consultation. Lors de l'édition
d'un EDT, alors qu'un autre EDT est déjà publié, Omniscol tient compte,
par défaut, des occupations des professeurs, salles et classes par cet EDT
publié (cette fonctionnalité peut se désactiver).

#### Voir aussi

- [Hebdomadaire](#page-glossary.weekly-timetable)
- [Cyclique](#page-glossary.cyclic-timetable)
- [Calendrier](#page-glossary.calendar-mode)
- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)

<a id="page-getting-started.first-login"></a>

### 1.7  Première connexion

*Source: `help/fr/getting-started/first-login.md` · id: getting-started.first-login · Updated: 2026-05-10*

Pour vous connecter à Omniscol, allez sur l'URL de votre école — en
général de la forme `https://<nom-de-votre-école>.omniscol.com`. La
page de connexion vous demande un identifiant et un mot de passe.

#### Identifiants

Vos identifiants vous ont été communiqués par votre établissement.
La syntaxe par défaut est `prenom.nom` ou `nom.prenom` (selon la
configuration de l'école dans les
[Paramètres généraux](#page-admin.parameters)),
mais peut aussi être un matricule numérique.

#### Mot de passe oublié

Cliquez sur Mot de passe oublié ? Saisissez votre
identifiant de connexion. Si une adresse mail a été renseignée, vous recevrez
un lien de réinitialisation. Suivez les instructions.

Si vous n'avez pas reçu d'e-mail :

- vérifiez que l'identifiant saisi correspond bien à celui défini dans
  Omniscol (en cas de doute, contactez l'administrateur de votre école),
- regardez dans les indésirables / spam,
- vérifiez que votre établissement a bien renseigné votre e-mail dans la fiche
  utilisateur de votre compte.

#### Première connexion

Si c'est votre première connexion, le système peut vous demander
immédiatement de **changer votre mot de passe**. Choisissez-en un
solide et unique (Omniscol n'a aucun moyen de le retrouver — il est
rendu illisible avant même d'être transmis).

#### Connexion via un fournisseur d'identité

Si votre établissement utilise [OIDC / SSO](#page-integrations.oauth2)
(Google Workspace, Azure AD/Microsoft Entra, Keycloak, fournisseur
SSO interne), un bouton spécifique apparaît sur la page de connexion.
Cliquez et authentifiez-vous via votre service d'identité habituel.

#### Restrictions par profil

L'administrateur peut décider de **bloquer la connexion** à certains profils
(par exemple, désactiver la connexion élève en cours d'année, ou désactiver
un compte professeur particulier). Si votre profil est restreint, vous voyez un
message vous le précisant.
Voir Restriction de connexion à l’application.

#### Voir aussi

- [Configurer le compte de l'école](#page-getting-started.setup-school)
- [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
- [OIDC / SSO](#page-integrations.oauth2)

<a id="page-getting-started.setup-school"></a>

### 1.8  Configurer le compte de l'école

*Source: `help/fr/getting-started/setup-school.md` · id: getting-started.setup-school · Audience: admin · Updated: 2026-05-10*

À la création de votre compte Omniscol, l'écran d'accueil vous guide
étape par étape. Suivez l'ordre proposé : c'est le chemin le plus
fluide. Cette page récapitule la séquence de la **droite vers la
gauche** dans le menu Administration (moins un accès est courant, plus
il se situe à droite).

#### Étape 1 — Paramètres

Le module Paramètres contient toute la
configuration du compte. Beaucoup de valeurs sont pré-remplies en
fonction du **pays** de votre école, sur la base des habitudes locales
observées par Omniscol — vous n'avez généralement que peu de choses à
ajuster.

À vérifier en priorité :

- Nom de l'école — affiché sur la page de connexion.
- **Niveaux de classe** (6e, 5e, L1, M2…) — ils servent de référence
  partout. À adapter à votre nomenclature.
- **Mode de saisie des disponibilités des professeurs** — hebdomadaire, calendrier
  (sur les comptes Premium), calendrier + hebdomadaire
  (sur les comptes Premium), ou désactivé.
- **Restriction de visibilité des EDT par les élèves** — combien de
  semaines à l'avance les élèves peuvent voir leur EDT (utile pour
  retarder la diffusion d'un EDT non finalisé).
- **Identifiant de connexion** — le format de génération automatique
  des logins (`prenom.nom`, `nom.prenom`, matricule…).
- Premier jour de la semaine — important pour les pays qui
  commencent en dimanche (pays arabes, Israël).
- Semaines alternées (pour les EDT hebdomadaires) — A/B, 1/2 (c'est-à-dire mode d'affichage en lettres ou en chiffres), ou désactivé.
- **Logo de l'école** — affiché à la place du logo Omniscol sur la
  page de connexion et dans le bandeau supérieur.

Pour les détails, voir [Paramètres généraux](#page-admin.parameters).

#### Étape 2 — Année scolaire

Avant de pouvoir publier un EDT, vous devez avoir au moins **une année
scolaire** déclarée dans Années scolaires.

À renseigner :

- **Nom** — par convention, les dates : « 2025-2026 ».
- **Dates de début et de fin**.
- **Vacances** — soit par copier-coller depuis un tableau, soit en
  important les dates pré-renseignées pour votre pays (proposé à la
  création), soit manuellement.
- **Année courante** — désigner l'année actuellement en service. C'est
  celle qu'on voit par défaut et qui est exclusivement diffusée.

Voir [Année scolaire et vacances](#page-admin.school-year).

#### Étape 3 — Matières

Si Omniscol pré-remplit déjà une **base de matières communes** pour
votre pays, vous n'avez peut-être rien à faire. Sinon, ou pour les
disciplines spécifiques à votre établissement :

- Créez les **matières personnalisées** dans
  Créer.
- Définissez les **types de cours** (par exemple cours, atelier,
  examen, conférence)
  dans Créer si votre nomenclature
  pédagogique en utilise.
- Optionnel : configurez les **familles de matières** pour regrouper
  les matières apparentées.

⚠ **Attention à l'orthographe** des matières personnalisées :
Omniscol fait une copie interne au moment de l'affectation à un EDT,
et un correctif a posteriori ne se propage pas dans les EDT déjà
configurés dans le passé (seulement aux EDT du présent, du futur et
non publiés).

#### Étape 4 — Utilisateurs

C'est là qu'on crée les professeurs, élèves et administrateurs. Voir
[Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
pour le détail.

À l'issue de cette étape, vous pourrez créer votre premier emploi du
temps. Suivez alors [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview).

#### Voir aussi

- [Paramètres généraux](#page-admin.parameters)
- [Année scolaire](#page-admin.school-year)
- [Gérer les matières](#page-admin.subjects)
- [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)

<a id="page-getting-started.inviting-users"></a>

### 1.9  Inviter et activer ses utilisateurs

*Source: `help/fr/getting-started/inviting-users.md` · id: getting-started.inviting-users · Audience: admin · Updated: 2026-08-07*

Quatre rôles utilisateur côté école structurent la prise en main :
**Administrateur**, **Professeur**, **Élève** et **Personnel**.
Chaque rôle donne accès à un périmètre différent.

#### Quel écran pour quel rôle

| Rôle | Écran | Obligatoire ? |
| --- | --- | --- |
| Administrateur | Administrateurs | Au moins l'administrateur principal. |
| Professeur | Professeurs | Essentiel, pour pouvoir créer et publier des séances de cours avec les professeurs. |
| Élève | Élèves | Optionnel : Omniscol peut fonctionner sans connaître les élèves et sans leur donner accès au portail de consultation. |
| Personnel | Membres du personnel | Utile seulement si le Service du personnel est utilisé. |

Le détail des droits de chaque rôle et leur correspondance technique
sont décrits dans [Utilisateurs et rôles](#page-admin.users-and-roles).

#### Création unitaire ou création en masse (batterie)

**Unitaire** : bouton Ajouter
sur l'écran du rôle concerné. Vous ouvrez le formulaire d'un seul
utilisateur et renseignez ses informations de base.

**Masse (batterie)** : bouton Importer des données
sur l'écran du rôle concerné. Vous créez ou modifiez plusieurs lignes
dans un tableau, à partir d'un fichier préparé dans
Excel, Google Sheets, Numbers ou Calc. Voir
[Préparer ses données pour un import massif](#page-getting-started.preparing-data).

#### Activation d'un utilisateur

Un utilisateur actif peut se connecter, figurer dans les écrans qui le
concernent et recevoir des affectations.

Pour rendre un utilisateur inactif sans le supprimer, utilisez sa fiche
ou l'action de masse. Un compte inactif ne peut plus se connecter ni
être affecté à de nouveaux emplois du temps, mais son historique reste consultable.

#### Inviter par e-mail

Le bouton Inviter un utilisateur, sur une sélection
d'utilisateurs, envoie un e-mail à chaque destinataire avec un lien de
première connexion. Vérifiez d'abord que les e-mails sont renseignés ;
sinon l'invitation ne peut pas partir.

#### Définir des mots de passe initiaux

Si l'invitation par e-mail n'est pas adaptée, vous pouvez définir des
mots de passe manuellement avec Modification du mot de passe. À
réserver plutôt aux comptes pilotes, aux comptes de service ou aux situations
où l'établissement gère lui-même la distribution des identifiants. Le mot
de passe ainsi manuellement défini (potentiellement en s'aidant du bouton de
génération aléatoire) est en réalité temporaire : à la première connexion,
l'utilisateur devra en saisir un nouveau, personnalisé.

#### Placer les élèves dans les classes et groupes

Les placements se gèrent depuis l'écran Élèves :

1. Sur Élèves, sélectionnez les élèves concernés.
2. Cliquez sur Assigner à une classe.
3. Choisissez l'année scolaire, la classe et les dates si nécessaire.
4. Utilisez Groupes pour les groupes
   (langues, options, TP, demi-classes).

Les placements peuvent être faits en plusieurs vagues, par exemple par
niveau ou au fil des inscriptions.

Il existe une option pour que les élèves soient affectés directement dans
les classes et les groupes au niveau des emplois du temps, a priori, et non dans
le module Administration, a posteriori. Contactez l'équipe Omniscol si vous
êtes intéressés par ce mode de fonctionnement.

> _Option: Rôles personnalisés_

#### Rôles personnalisés

L’option **Rôles personnalisés** permet de restreindre les
droits d'un compte administrateur module par module et opération par
opération. Voir
[Rôles personnalisés](#page-admin.customroles).

Elle ouvre aussi les [domaines](#page-admin.planning-domains), qui bornent les
données confiées à un planificateur — son campus, sa filière, son emploi
du temps.

#### Procédure — Prise en main des utilisateurs à la rentrée

1. Préparez les fichiers ou tableaux d'utilisateurs : administrateurs,
   professeurs, élèves et personnel si nécessaire.
2. Importez ou créez les comptes depuis les écrans du module
   Administration.
3. Vérifiez les e-mails, les logins et les rôles.
4. Envoyez les invitations avec Inviter un utilisateur.
5. Placez les élèves dans leurs classes et groupes une fois un premier
   EDT publié sur l'année scolaire.
6. Désactivez en fin d'année les comptes qui ne doivent plus se
   connecter, plutôt que de supprimer immédiatement l'historique.

#### Voir aussi

- [Configurer le compte de l'école](#page-getting-started.setup-school)
- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Gérer les professeurs](#page-admin.teachers)
- [Gérer les élèves](#page-admin.students)

<a id="page-getting-started.preparing-data"></a>

### 1.10  Préparer ses données pour un import massif (en batterie)

*Source: `help/fr/getting-started/preparing-data.md` · id: getting-started.preparing-data · Audience: admin · Updated: 2026-06-03*

Saisir manuellement plusieurs centaines ou milliers de lignes (professeurs, élèves,
salles, cours…) est rarement judicieux. Omniscol propose des **imports
en masse** par copier-coller depuis n'importe quel tableur (Excel,
Google Sheets, Numbers, Calc…), au format CSV ou TSV. Ces importations
s'effectuent en cliquant sur les boutons [table],
généralement en tête des listings d'entités. Quelques-uns ne servent qu'à
exporter les données, mais la plupart acceptent l'importation.

#### Que peut-on importer ?

| Entité | Écran | Volume typique |
| --- | --- | --- |
| **Professeurs** | Exporter les données au format CSV | 10 - 1000 |
| **Élèves** | Exporter les données au format CSV | 50 - 10 000 |
| **Salles** | Exporter les données au format CSV | 10 - 500 |
| **Matières personnalisées** | Exporter les données au format CSV | 10 - 1000 |
| **Séances de cours d'un EDT** | Exporter les données au format CSV | 100 - 10 000 |

#### Préparer ses fichiers

**Règles d'or** :

1. **Une ligne = une entité.** Pas de lignes fusionnées, pas
   d'en-têtes multi-lignes.
2. **Respecter l'ordre des colonnes attendu par Omniscol.** L'écran
   d'import affiche le canevas avec les colonnes dans l'ordre cible
   et vous pouvez **réorganiser ces colonnes** côté Omniscol pour
   coller à l'ordre de votre tableur source — ce qui rend le
   copier-coller depuis Excel ou Google Sheets propre, sans réécrire
   votre fichier.
3. **Certaines colonnes sont en lecture seule.** Elles sont alors grisées,
   destinées uniquement à l'exportation des données. La première colonne est
   généralement l'identifiant de la donnée déjà enregistrée en base de données.
4. **Les colonnes marquées d'une "*" sont obligatoires.**. S'il manque un champ
   obligatoire, la ligne est ignorée (non importée à la création, ou supprimée
   si elle existait déjà en base de données).
5. **Les séparateurs internes d'une cellule sont libres** dans les listes
   (multi-professeur, multi-groupe, multi-salle d'un cours) : virgule, point-virgule,
   slash.
6. **L'IA intégrée nettoiera les données** mais jusqu'à un certain point :
   essayez d'avoir des données propres et non ambiguës, vous pourriez avoir
   sinon quelques mauvaises surprises.

#### Champs typiques par entité

##### Professeurs

- Prénom, Nom (obligatoires).
- E-mail (recommandé pour les invitations).
- Matricule / ID externe (optionnel mais utile pour traçabilité).
- Matières enseignées (liste, séparateurs libres).
- Service horaire (nombre d'heures hebdomadaires prévues).
- Site principal (si multi-sites).

##### Élèves

- Prénom, Nom (obligatoires).
- E-mail (recommandé).
- Matricule SIS (utile pour éviter les homonymies).
- Niveau / Classe.
- Groupes (option, sous-groupe).
- Statut (actif, en pré-inscription, inactif).

##### Salles

- Nom (obligatoire).
- Site (obligatoire si multi-sites — sinon Omniscol attribue au site
  par défaut).
- Capacité.
- Spécialisations (liste).
- Bâtiment (libre).
- Tags / commentaires.

##### Séances de cours

- Classe + matière (au minimum).
- Durée (sinon déduite des heures début/fin).
- Jour, heure début, heure fin (pour pré-positionner ; sinon laisser
  vide et positionner après).
- Groupe (optionnel).
- Type de cours (TD, TP, CM, examen…).
- Professeur(s) (séparateurs libres).
- Salle(s) (séparateurs libres — oui, [plusieurs salles](#page-glossary.multi-room)
  sur un même cours sont supportées).
- Ressource(s).
- Semaines alternées (format `A/B`, `1/2`, etc.).
- Commentaire libre.

#### Après la préparation

Le déroulé d'import dépend de l'écran cible. Généralement,
l'écran se rafraîchit intégralement avec les nouvelles données.

Pour les **cours d'un EDT**, voir [Import massif des cours via tableur](#page-timetables.mass-import),
qui documente l'assistant dédié en quatre étapes.

#### Exportation

Le même procédé de tableur interne permet d'extraire les données. Pour cela,
plusieurs options :

- Copier-coller vers un tableur externe (format TSV, automatique).
- Utiliser les boutons du bas pour exporter directement en fichier PDF, CSV ou Excel (XLSX).

#### Réimportation

L'importation n'est pas limitée à une importation initiale. Il est
possible d'importer massivement en plusieurs étapes. La première colonne,
libellée "id", comporte l'identifiant en lecture seule de chaque entité en base de données,
qu'on peut retrouver dans les URLs. Si l'on modifie une ligne correspondant
à un identifiant donné, alors les données de l'entité sont modifiées.

Pour ajouter de nouvelles données, il suffit d'aller tout en bas du tableur,
où il y a toujours quelques lignes vides, sans identifiant attaché. Coller de
nouvelles données, comme à l'importation initiale, ré-agrandit le tableau d'autant.

Les entités réimportées peuvent comporter des données complexes, qui ne sont
pas éligibles à l'importation/exportation (parfois, on peut avoir une colonne
en lecture seule qui sert uniquement à l'exportation de ces données). C'est par
exemple le cas des contraintes horaires sur les professeurs, les salles, les classes, etc.
Dans ce cas, la réinjection à l'identique est automatique.

Ce système permet ainsi d'importer massivement en plusieurs fois sans perdre de données
enrichies sur les entités existantes, tout en pouvant en créer de nouvelles ou en supprimer
d'autres.

#### Suppression massive

Comme vu pour la réimportation, la première colonne "id" sert à repérer les
différentes entités. Si l'on supprime une ligne, a minima les colonnes obligatoires
marquées d'une "*", alors l'importation supprimera les entités vidées. Étant donné que l'on peut
sélectionner plusieurs lignes et colonnes, comme sur un tableur standard, il suffit d'appuyer
sur la touche supprimer du clavier pour effacer autant de lignes que souhaité,
et donc supprimer de la base de données les entités correspondantes, en masse.

#### Voir aussi

- [Import et export](#page-admin.import-export)
- [Import massif des cours d'un EDT](#page-timetables.mass-import)
- [Migration depuis un autre logiciel](#page-migration.overview)

<a id="page-getting-started.onboarding-tour"></a>

### 1.11  Visite guidée de prise en main (les 6 étapes du module Accueil)

*Source: `help/fr/getting-started/onboarding-tour.md` · id: getting-started.onboarding-tour · Audience: admin · Updated: 2026-05-10*

Quand vous vous connectez pour la première fois sur un compte vierge,
le module **Accueil** vous propose une **checklist en six étapes** —
chacune cochée automatiquement quand sa pré-condition est satisfaite
(✓ verte) ou marquée comme bloquante (✗ rouge) tant que rien n'a
encore été saisi.

Les étapes sont dans un ordre logique fortement conseillé, mais vous
pouvez toujours sauter une étape et retourner dessus plus tard.
À un moment ou un autre, il manquera une donnée qui vous obligera à
revenir sur vos pas.

Cette page d'aide détaille la même séquence, étape par étape ; une
**visite guidée cliquable** la récapitule en fin de page.

#### Vue d'ensemble — message d'accueil

> Bienvenue dans Omniscol, le logiciel en ligne de génération et gestion d’emplois du temps ! Si vous voyez ce message, c’est qu’il s’agit de votre première connexion ou que vous n’avez pas encore saisi la configuration d’un premier emploi du temps. Suivez les étapes listées ci-dessous pour vos premiers pas dans le logiciel. L’ordre présenté est celui conseillé, mais vous pouvez à tout instant revenir sur les différentes étapes.

> **Astuce d'organisation** : le module Accueil se masque
> automatiquement dès que votre **premier EDT est publié**. Tant
> qu'il est visible, c'est lui votre boussole. Le lien
> afficher à nouveau le ré-affiche si besoin
> après publication :
>
> > Votre compte est configuré et fonctionnel. Vous pouvez cependant afficher à nouveau les étapes de configuration.

#### Étape 1 — Saisir les utilisateurs

> Saisissez tout d’abord les utilisateurs : professeurs et étudiants. La saisie des étudiants est optionnelle, vous pouvez tout à fait créer plus tard des emplois du temps en indiquant seulement le nombre d’étudiants dans les classes et groupes. Vous pouvez aussi les saisir plus tard puis les affecter aux classes et groupes.

> Astuce: vous pouvez saisir les données en masse en copiant-collant depuis un tableur tel que Excel en cliquant sur l’icône.

**Action** :

- Saisir les professeurs *(obligatoire — coche rouge tant qu'aucun
  professeur n'est créé)*
- Saisir les étudiants *(optionnel — pas de coche rouge, juste
  un rond si non rempli)*

Voir [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
pour le détail (création unitaire vs import en masse, invitations par
e-mail, mots de passe initiaux, opérations de masse).

#### Étape 2 — Renseigner les paramètres

> Renseignez les paramètres de votre compte, notamment les niveaux de classe.

**Action** : Renseignez les paramètres

Voir [Paramètres généraux](#page-admin.parameters). À adapter en
priorité : niveaux de classe, mode des disponibilités, premier jour de la
semaine (pour les pays démarrant en dimanche), syntaxe d'identifiant.
La plupart des autres valeurs sont pré-remplies pour votre pays.

#### Étape 3 — Créer une première année scolaire

> Une année scolaire est une période comprise entre des dates de début et de fin, comprenant les vacances, sur laquelle les emplois du temps seront publiés. Elle est indispensable pour accéder aux modules d’usage quotidien (consultation des emplois du temps sur l’année, des tableaux de bords, création et gestion des absences…).

**Action** : Créer une première année scolaire

Voir [Année scolaire et vacances](#page-admin.school-year). Donnez-lui
un nom (« 2025-2026 »), des dates de début et fin, et importez les
vacances pré-renseignées pour votre pays si proposées.

C'est l'étape qui débloquera l'accès à la publication dans le module
de gestion d'EDT.

#### Étape 4 — Créer les matières personnalisées (optionnel)

> Définissez les matières enseignées particulières qui ne seraient pas déjà dans la base de donnée de nos matières par défaut. Cette étape est optionnelle.

**Action** : Créer les matières personnalisées

Voir [Gérer les matières](#page-admin.subjects). La base de matières
communes par pays est déjà pré-remplie ; vous ne créez ici que les
matières **spécifiques à votre établissement** qui ne sont pas dans
la base.

#### Étape 5 — Créer (puis configurer) un emploi du temps

L'étape 5 a deux variantes selon l'état du compte :

##### 5a — Tant qu'aucun EDT n'est créé

> Créez un nouvel emploi du temps. Nous conseillons de procéder étape par étape en renseignant chaque onglet de la gauche vers la droite. À la fin, cliquez sur le bouton de génération.

**Action** : Créer un emploi du temps

Cliquez sur Créer un EDT dans le module
[Gestion des EDT](#page-timetables.overview). Si votre compte propose plusieurs modes, choisissez le
[mode d'EDT](#page-overview.timetable-modes) (hebdomadaire, cyclique,
calendrier).

##### 5b — Une fois l'EDT créé, en cours de configuration

> Un emploi du temps est en cours de configuration mais pas encore généré. Nous conseillons de finir la configuration étape par étape en renseignant chaque onglet de la gauche vers la droite. À la fin, cliquez sur le bouton de génération.

**Action** : Reprendre la configuration de l’emploi du temps

Suivez les onglets de l'EDT **de la gauche vers la droite** :
[Général](#page-timetables.general-settings) → [Sites](#page-timetables.sites-rooms)
→ [Professeurs](#page-timetables.assigning-teachers)
→ [Classes](#page-timetables.creating-classes)
→ [Alignements](#page-timetables.alignments-and-groups-of-groups)
→ [Répartition des heures](#page-timetables.hour-distribution)
→ [Génération](#page-timetables.generation).

#### Étape 6 — Distribuer (publier) l'EDT

> Une fois l’emploi du temps entièrement configuré et généré, celui-ci doit être distribué sur tout ou partie des semaines de l’année scolaire. Cliquez sur le bouton de distribution dans l’écran de gestion des emplois du temps. Cet écran vous permet aussi de retrouver les emplois du temps en cours de configuration ou déjà générés.

**Action** : Gérer les emplois du temps

Voir [Publier (activer) un EDT](#page-timetables.publication). C'est
l'étape souvent oubliée : tant que l'EDT n'est pas distribué sur les
semaines de l'année scolaire, il reste un brouillon invisible des
utilisateurs finaux. La publication est nécessaire pour que les modules
d'usage quotidien (consultation, tableaux de bord, absences) soient
pleinement opérationnels. Cela active aussi les éventuelles exportations
en temps réel vers l'extérieur de l'application : iCal, logiciels externes
connectés, etc.

#### La suite

Une fois la checklist verte de bout en bout, avec un emploi du temps
entièrement configuré et publié :

- **Affecter les élèves** à leurs classes / groupes (cf.
  [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)).
- **Inviter les utilisateurs** par e-mail
  (Inviter l'utilisateur).
- **Configurer les panneaux d'affichage** dans les locaux (cf.
  [Panneaux d'affichage](#page-panels.lobby-panel)).
- **Mettre en place les abonnements iCal** des professeurs et des élèves
  (cf. [iCal](#page-integrations.ical)).
- **Tester l'accès élève** depuis un compte test.
- **Configurer les intégrations** (vie scolaire, ERP…) si applicable
  (cf. [Vue d'ensemble des intégrations](#page-integrations.overview)).

#### Voir aussi

- [Visite guidée en cinq minutes](#page-overview.quick-tour)
- [Première connexion](#page-getting-started.first-login)
- [Configurer le compte de l'école](#page-getting-started.setup-school)
- [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Publier (activer) un emploi du temps](#page-timetables.publication)

---

## 2. Concepts métier

<a id="page-core-concepts.data-model"></a>

### 2.1  Organisation des données : matières, professeurs, classes, EDT

*Source: `help/fr/core-concepts/data-model.md` · id: core-concepts.data-model · Audience: admin · Updated: 2026-06-13*

Omniscol distingue deux niveaux d'organisation : un **référentiel
école** porté par le module Administration (matières, utilisateurs,
années scolaires…), qui décrit durablement votre établissement, et
des **emplois du temps** qui en consomment des éléments pour bâtir
une planification cohérente sur une période donnée. Comprendre cette
dualité est la clé pour gérer sereinement les changements (renommer
une matière, faire évoluer un professeur, archiver un EDT) sans
casser l'historique.

#### Vue d'ensemble : deux niveaux, deux logiques

```mermaid
flowchart LR
    subgraph A["Niveau école — module Administration"]
        AS["Matières"]
        AU["Utilisateurs professeurs"]
    end

    subgraph E["Niveau EDT — planification"]
        C["Classes"]
        G["Groupes<br/>(optionnels)"]
        M["Cours<br/>= Matières des classes<br/>(copie locale, typée)"]
        T["Professeurs de l'EDT<br/>copie partielle"]
        S["Séances<br/>durée, classe, groupe optionnel,<br/>professeurs, salle, position"]
    end

    AS -.->|sert de modèle| M
    AU -.->|sert de modèle| T
    C -->|contient| G
    C -->|matières affectées| M
    T -->|professeurs affectés| M
    M -->|matière enseignée| S
    C -->|classe concernée| S
    G -.->|groupe optionnel| S
    T -->|professeurs de la séance| S
```

**Niveau école** : un référentiel global, à durée de vie longue,
géré dans le module Administration. Il contient ce qui est vrai
pour l'établissement indépendamment d'un EDT particulier — le
calendrier des années scolaires, le catalogue des matières (communes
au pays + personnalisées de l'école), et l'annuaire des utilisateurs
(avec leurs rôles).

**Niveau EDT** : une planification cohérente sur une période. Chaque
EDT a sa propre liste de professeurs, de classes, de groupes, de
matières attachées aux classes et de séances. Ces objets ne sont pas
de simples références au référentiel école : ce sont des **copies
locales**, qui peuvent être enrichies sans modifier le référentiel.
Inversement, le référentiel niveau école peut évoluer (suppression de
matières, de professeurs) sans casser les emplois du temps du passé.

La suite détaille chaque type de lien.

#### L'année scolaire : le cadre temporel

L'**année scolaire** définit une plage `date de début → date de fin`
et la liste des vacances (voir
[Année scolaire](#page-core-concepts.school-year)).
Elle ne « contient » pas les EDT directement : ce sont les EDT qui
**se déploient** sur des semaines (mode hebdomadaire / cyclique) ou
des dates (mode calendrier) appartenant à une année scolaire.

Cela permet plusieurs configurations :

- **Un seul EDT par année scolaire** (cas standard) : l'EDT couvre
  toutes les semaines ouvrées de l'année.
- **Plusieurs EDT successifs** dans la même année : un EDT par
  trimestre par exemple, qui se passent le relais aux dates de
  bascule.
- **Plusieurs EDT en parallèle** sur la même période (fonction incluse
  en Premium ; sur certains comptes Standard, elle peut être activée
  dans un cadre contractuel adapté), par exemple :

  - un EDT pour le tronc commun récurrent
  - un EDT calendrier pour les masterclasses, fusionnés à la
    consultation.

Voir [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

L'année scolaire reste donc un cadre — pas un conteneur. Modifier ses bornes ou
ses vacances met à jour le calendrier utilisé par les EDT qui y sont rattachés,
sans modifier leur contenu.

#### Les matières : du catalogue école aux séances de cours d'une classe

```mermaid
flowchart TD
    CatM["Catalogue des matières<br/>ex. Mathématiques"]
    CatT["Types de cours<br/>ex. CM, TD, TP"]
    Classe["Classe dans l'EDT<br/>ex. 3e A"]
    Prof["Professeurs de l'EDT<br/>ex. Mme Martin"]

    MC["Matière de classe (= cours)<br/>Mathématiques [TD]<br/>volume horaire, professeurs,<br/>contraintes, salle spécialisée"]

    S["Séances<br/>durée, date/créneau,<br/>groupe éventuel, salle,<br/>professeur(s)"]

    CatM -->|matière choisie| MC
    CatT -->|type éventuel| MC
    Classe -->|classe concernée| MC
    Prof -->|professeurs affectés| MC

    MC -->|sert à créer| S
    Prof -->|peut être ajusté sur| S
```

##### Niveau 1 — Le catalogue dans le module Administration

Au niveau école, deux origines coexistent :

- **Matières communes** : le référentiel d'Omniscol pour le pays
  configuré (codes officiels, libellés normés). Le catalogue est
  lecture seule pour l'école.
- **Matières personnalisées** : ce que l'école crée elle-même, géré
  depuis [l'écran Matières](#page-admin.subjects). Chaque matière
  personnalisée a un nom, un code (court), et optionnellement :
  un nom court, une couleur spécifique, une matière parente,
  une famille.

Ce catalogue ne dit rien des classes qui enseignent ces matières —
il dit seulement qu'elles existent.

Les familles de matières peuvent aussi venir d'un référentiel partagé par pays,
en lecture seule, ou d'un référentiel personnalisé, local à l'école.

##### Niveau 2 — Affectation à une classe (avec ou sans type)

Quand vous **affectez une matière à une classe** dans un EDT, une
**copie locale** de la matière est créée dans la classe, enrichie de
champs propres à la planification (volume horaire visé, poids
pédagogique, incompatibilités, professeurs par défaut, spécialisation
de salle…).

Si vous affectez la matière **avec un type de cours** (`CM`, `TD`,
`TP`, `Examen` — voir [Types de cours](#page-admin.lesson-types)),
chaque type crée une **entrée distincte** dans la classe :

| Matière dans la classe | Origine | Type |
| --- | --- | --- |
| Mathématiques | Mathématiques | aucun |
| Mathématiques [CM] | Mathématiques | CM |
| Mathématiques [TD] | Mathématiques | TD |

C'est volontaire : chaque variante (Math CM, Math TD) devient une
copie locale distincte, avec son propre volume horaire, ses propres
professeurs et ses propres incompatibilités. Le lien avec le catalogue
n'est pas une dépendance forte : la copie locale conserve l'origine de
la matière si celle-ci existe encore dans le catalogue. Si la matière
est supprimée du catalogue, les copies locales des EDT restent valides.

##### Niveau 3 — Des paramètres de cours aux séances

Dans Omniscol, ce que l'on appelle couramment un
[cours](#page-glossary.course) correspond généralement à une matière
affectée à une classe, éventuellement associée à un type de cours
(CM, TD, TP…), puis enrichie d'informations de planification : volume
horaire, professeurs, groupes, contraintes de placement, salles ou
ressources.

Cette définition indique ce qui doit être planifié. Les **séances**
sont les occurrences réellement placées dans l'emploi du temps, sur
une semaine ou une date donnée.

Exemple : une matière de classe telle que **Mathématiques [TD]** peut
définir un volume horaire, des professeurs, des groupes, des
contraintes de placement et des préférences de salle. Les séances
sont ensuite créées à partir de cette définition. Voir
[Cours, séances, types de cours](#page-core-concepts.lessons-and-types).

#### Les professeurs : référentiel école → copie EDT enrichie

```mermaid
flowchart LR
    U["Utilisateur (module Administration)<br/>rôle teacher<br/>nom · login · email · disponibilités globales"]
    Aff{Affectation à un EDT}
    T["Professeur dans l'EDT<br/>nom (copié) · idnumber<br/>service horaire (copié, surchargeable)<br/>disponibilités propres à l'EDT · salle préférée"]
    Se["Séances assignées"]
    U --> Aff
    Aff -->|copie partielle enrichie| T
    T --> Se
```

##### Le professeur au niveau école

Au niveau école, un professeur est un **utilisateur** doté du rôle
`teacher` (un même utilisateur peut cumuler plusieurs rôles — voir
[Utilisateurs et rôles](#page-admin.users-and-roles)). Géré depuis
[l'écran Professeurs](#page-admin.teachers), il porte les informations
identifiantes durables : nom, prénom, login, e-mail, numéro
d'identification, ainsi que ses **disponibilités globales**
(récurrentes) et son service horaire de référence.

##### Le professeur affecté à un EDT

Quand vous affectez ce professeur à un EDT, Omniscol crée une **copie
partielle enrichie** dans l'EDT. La copie ne reprend qu'une
sélection de champs du référentiel école et y ajoute des champs
propres à la planification :

| Champ | Niveau école (référentiel) | Niveau EDT (copie) |
| --- | --- | --- |
| Identifiant | l'identifiant de l'utilisateur | identique (lien implicite) |
| Nom, prénom, prénom intermédiaire | source | copié à l'affectation |
| Numéro d'identification | source | copié à l'affectation |
| E-mail, téléphone, login | source | **non copié** (reste seulement dans le module Administration) |
| Service horaire de référence | source | copié, **surchargeable par EDT** |
| Salle préférée | non géré au référentiel | propre à l'EDT |
| Disponibilités | « disponibilités globales » de l'utilisateur | mode récurrent : copie locale validée ou relaxée ; mode calendrier : source partagée, consultable et modifiable depuis l'Administration ou depuis les EDT concernés |

Cette dualité est importante : le **même professeur** peut avoir un
**service horaire différent** selon le périmètre planifié, ou une
**salle préférée différente** à un moment donné (par exemple pour
cause d'invalidité temporaire).

Pour les disponibilités, la logique dépend du mode de planification :

- en mode récurrent, les disponibilités saisies par le professeur passent par une phase
  d'acceptation par l'administration. Ils peuvent être adaptés localement dans l'EDT,
  par exemple en transformant une indisponibilité stricte en créneau non souhaité ;
- en mode calendrier, les disponibilités du professeur sont considérées comme une seule
  source de vérité, notamment pour les intervenants extérieurs. Elles peuvent être
  consultées et modifiées depuis la fiche utilisateur ou depuis n'importe quel EDT
  calendrier où le professeur est affecté.

Dans les deux cas, certains paramètres restent propres à l'EDT et peuvent
enrichir localement ces disponibilités.

##### Les professeurs virtuels

Une variante : on peut créer dans un EDT un **professeur virtuel** —
un poste à pourvoir, sans utilisateur réel derrière (« le futur prof
de maths »). Il n'a pas de contrepartie au niveau école. Au moment
du recrutement, vous pouvez remplacer ce professeur virtuel par un
vrai utilisateur professeur (voir
[Affecter les professeurs à un EDT](#page-timetables.assigning-teachers)).

#### Le principe de copie locale, en synthèse

La même logique régit les matières dans une classe et les
professeurs dans un EDT : **une copie locale est créée au moment de
l'affectation**, et c'est cette copie locale qui porte les champs
spécifiques à l'EDT.

Pourquoi ce choix de conception :

- **Indépendance temporelle.** Un EDT clos l'an dernier ne doit pas
  se modifier quand vous renommez une matière ou un professeur cette
  année. Les copies locales garantissent l'**intégrité
  historique** : ce qui a été planifié reste exactement comme à
  l'époque.
- **Enrichissement contextuel.** Un professeur n'a pas les mêmes
  disponibilités ni le même service horaire selon le périmètre planifié ; une
  matière n'a pas le même poids ni les mêmes incompatibilités selon
  la classe qui l'enseigne. La copie locale est l'endroit naturel
  pour porter ces variations.
- **Nettoyage sans casse.** Supprimer ou refondre une matière au
  niveau école n'efface pas les EDT qui s'en servaient — leurs
  copies locales restent valides.

En contrepartie, les renommages côté école ne se propagent pas
silencieusement partout. C'est l'objet de la section suivante.

#### Conséquences pratiques : renommages, suppressions, historique

Quand vous modifiez une entité au niveau école, Omniscol applique
une règle claire de propagation :

| Action au niveau école | EDT passés (clos) | EDT en cours / futurs |
| --- | --- | --- |
| Renommer une matière personnalisée (nom, code court, code) | **Inchangés** — historique préservé | Nom propagé dans les copies locales correspondantes |
| Changer la couleur d'une matière personnalisée | **Inchangés** | Couleur mise à jour si la couleur précédente n'avait pas été surchargée localement |
| Renommer un professeur (nom, prénom) | **Inchangés** | Nom propagé dans les copies locales |
| Modifier l'e-mail ou le téléphone d'un professeur | Sans effet (non copié) | Sans effet (non copié) |
| Modifier les disponibilités globales d'un professeur | Sans effet | Mode récurrent : indicateur de mise à jour si les disponibilités avaient déjà été acceptées ; mode calendrier : mise à jour de la source partagée des disponibilités |
| Supprimer une matière personnalisée | Copies locales préservées | Copies locales préservées ; la matière disparaît seulement du catalogue |
| Désactiver le rôle `teacher` d'un utilisateur | Inchangés | Les copies dans les EDT restent en place |

La distinction « passés » / « en cours ou futurs » se fait par
rapport à la **date du jour** : un EDT publié dont la dernière
semaine active est antérieure à aujourd'hui est considéré comme
passé et n'est plus modifié par les renommages.

##### Quand répercuter manuellement

La propagation automatique reste **délibérément étroite** : nom,
code et couleur des matières ; nom et identifiant des professeurs.
Le nom et le code d'une matière copiée localement ne se modifient pas
dans l'EDT ; seule sa couleur peut être redéfinie localement.
Les autres champs (incompatibilités, poids pédagogique, service
horaire, disponibilités par EDT…) ne se synchronisent pas, parce qu'ils sont
**par nature propres à l'EDT**.

Si un changement plus profond doit s'appliquer à plusieurs EDT
existants (par exemple : revoir le service horaire d'un professeur
sur tous les EDT actifs, ou ajouter une nouvelle incompatibilité de
matière partout), il faut intervenir EDT par EDT. Pour les
opérations massives, l'outil le plus rapide reste l'**import par
copier-coller depuis tableur** sur l'écran concerné de chaque EDT.

#### Voir aussi

- [Année scolaire](#page-core-concepts.school-year)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Cours (définition de glossaire)](#page-glossary.course)
- [Cours, séances, types de cours](#page-core-concepts.lessons-and-types)
- [Gérer les matières](#page-admin.subjects)
- [Gérer les professeurs](#page-admin.teachers)
- [Types de cours](#page-admin.lesson-types)
- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)

<a id="page-core-concepts.classes-and-groups"></a>

### 2.2  Classe, groupe, sous-groupe

*Source: `help/fr/core-concepts/classes-and-groups.md` · id: core-concepts.classes-and-groups · Updated: 2026-05-20*

Les classes représentent des ensembles d'apprenants différents partageant le même cursus
scolaire et suivant généralement leurs cours ensemble (mêmes matières, professeurs et
salles), avec comme seule exception la division en groupe, c'est-à-dire des sous-ensembles
personnalisés ayant un cursus marginalement adapté (subdivision par options, niveaux,
sexe, ordre alphabétique…). Les différentes classes n'ont jamais d'apprenants communs.

Dans Omniscol, on part toujours de la **classe**, puis, dans chacune, on crée des
**groupes** quand toute la classe ne suit pas le même cours. Les
**sous-groupes** servent à raffiner ce découpage quand un groupe doit lui-même
être subdivisé : un groupe rattaché à un autre groupe, dans une relation parent-enfant,
devient un sous-groupe.

Les notions de **partition**, **alignement** et **groupe de groupes** ne sont
pas des niveaux supplémentaires dans la hiérarchie. Ce sont des façons
d'organiser ou de relier des groupes selon le cas d'usage.

#### Vue d'ensemble

```mermaid
%%{init: {"flowchart": {"defaultRenderer": "elk"}}}%%
flowchart TB
    subgraph C1["Classe 3e A"]
        direction TB
        A1["Groupe LV2 Espagnol"]
        A2["Groupe LV2 Allemand"]
        P["Groupe TP-A"]
        Q["Groupe TP-B"]
        P1["Sous-groupe TP-A1"]
        P2["Sous-groupe TP-A2"]
        P --> P1
        P --> P2
    end

    subgraph C2["Classe 3e B"]
        direction TB
        B1["Groupe LV2 Allemand"]
        B2["Groupe LV2 Italien"]
        B4["Groupe Techno 1 (20 élèves)"]
        B5["Groupe Techno 2 (10 élèves)"]
        B3["Groupe Latinistes"]
    end

    subgraph C3["Classe 3e C"]
        direction TB
        C4G["Groupe LV2 Espagnol"]
        C5G["Groupe LV2 Italien"]
        C2G["Groupe Techno 1 (20 élèves)"]
        C3G["Groupe Techno 2 (10 élèves)"]
        C1G["Groupe Latinistes"]
    end

    A1 -. "partition" .- A2
    P -. "partition" .- Q
    B1 -. "partition" .- B2
    B4 -. "partition" .- B5
    C2G -. "partition" .- C3G
    C4G -. "partition" .- C5G
    A2 <== "alignement" ==> B1
    B5 <== "alignement" ==> C3G
    B3 <== "alignement" ==> C1G

    linkStyle 0,1 stroke:#475569,stroke-width:1.5px
    linkStyle 2,3,4,5,6,7 stroke:#15803d,stroke-width:1.8px
    linkStyle 8,9,10 stroke:#1d4ed8,stroke-width:2.8px
```

À lire ainsi :

- une **classe** contient des groupes ;
- un **groupe** peut contenir des **sous-groupes** ;
- une **partition** organise des groupes d'une même classe qui se
  répartissent les élèves ;
- un **alignement** relie des groupes de classes différentes pour un cours
  commun ;
- un **groupe de groupes** sert à construire un regroupement explicite et
  réutilisable, notamment quand le regroupement doit évoluer.

Sur ce schéma, on voit plusieurs classes, avec plusieurs groupes,
certains en partition, d'autres alignés, parfois les deux. La LV2
(Langue vivante 2) est une option exclusive : un élève assiste soit
à un cours d'allemand, soit d'espagnol, soit d'italien. C'est pour
cela que les différentes options de langue sont déclarées en partition :
il est possible de les planifier simultanément (à condition que ce soit
des professeurs différents qui enseignent chacune des langues). Il y a peu
d'élèves en allemand en 3e A et 3e B : on les rassemble donc pour
qu'ils suivent les mêmes cours, c'est le but de l'alignement ; les
séances de cours sont créées en miroir dans chacune des classes,
pour qu'elles soient planifiées simultanément. Il en est de même pour les
latinistes de la 3e B et la 3e C.

Ce schéma illustre aussi un cas classique du collège français, le
**« 3 groupes sur 2 classes »** : les classes 3e B et 3e C sont chacune
partitionnées en Techno 1 (20 élèves) et Techno 2 (10 élèves). En
**alignant** les deux Techno 2, l'établissement réunit les deux petits
groupes pour n'avoir que **trois cours de technologie** au lieu de
quatre — tous à effectif équivalent (20 élèves), un professeur et une
salle de moins à mobiliser.

#### Classe : le niveau de base

Une [classe](#page-glossary.class) est l'entité de référence par défaut. Selon
les contextes, elle peut représenter :

- une classe scolaire,
- une promotion,
- une cohorte,
- une session,
- un parcours.

Quand un cours concerne **toute la classe**, on n'a pas besoin de groupe
supplémentaire : le cours est simplement rattaché à la classe.

#### Groupe : subdivision d'une classe

Un [groupe](#page-glossary.group) est toujours une **subdivision d'une même
classe**. Tous ses élèves restent des élèves de la classe parente.

Exemples classiques :

- `Groupe A` / `Groupe B` pour une répartition alphabétique ;
- `TP-A` / `TP-B` pour des demi-groupes de travaux pratiques ;
- `LV2 Espagnol` / `LV2 Allemand` / `LV2 Italien` pour des options
  exclusives ;
- `Anglais forts` / `Anglais moyens` / `Anglais faibles` si l'établissement
  travaille avec des groupes de niveau ;
- `Garçons` / `Filles` dans les contextes où ce découpage existe ;
- `Elective Marketing`, `Elective Finance`, `Elective Data` dans un bouquet
  d'options du supérieur.

**Recommandation forte** : créez un groupe par usage pédagogique clair,
même si les élèves sont parfois les mêmes. Par exemple, mieux vaut
`Latinistes` et `Hellénistes` que réutiliser un groupe générique `Options`.
Sinon, la lecture des emplois du temps, les diagnostics et les regroupements
inter-classes deviennent vite ambigus.

> _Premium_

#### Sous-groupe : subdivision d'un groupe

Un **sous-groupe** est un groupe enfant rattaché à un groupe parent.

Exemple :

- la classe est séparée en `TP-A` et `TP-B` ;
- puis `TP-A` est lui-même découpé en `TP-A1` et `TP-A2` pour des rotations
  plus fines.

```mermaid
flowchart TD
    C["Classe BTS 1"]
    A["TP-A"]
    B["TP-B"]
    A1["TP-A1"]
    A2["TP-A2"]
    B1["TP-B1"]
    B2["TP-B2"]
    B3["TP-B3"]
    C --> A
    C --> B
    A --> A1
    A --> A2
    B --> B1
    B --> B2
    B --> B3
```

Conséquences importantes :

- les sous-groupes restent dans le périmètre de la classe ;
- ils héritent de la logique de leur parent ;
- ils sont utiles quand vous avez plusieurs niveaux de subdivision ;
- ils n'ont de sens que si la structure reste lisible.

Les sous-groupes sont très pratiques lorsqu'ils sont aussi utilisés avec les partitions :

- groupes A et B en partition ;
- groupes A1 et A2 en partition ;
- groupes B1, B2 et B3 en partition.

Automatiquement, A1 et B3 sont en partition, tout comme A2 et B1, etc. Cette relation
est déduite de la double logique entre partitions et parents-enfants.

Les sous-groupes sont des groupes qu'on a glissé-déposé sur un groupe parent.
La page [Hiérarchie de groupes](#page-core-concepts.group-hierarchy)
va plus loin sur les usages avancés : partitions héritées, contraintes héritées
et masques horaires.

#### Partition : répartir une même classe en groupes exclusifs

Une [partition](#page-glossary.class-division) s'utilise entre des groupes
d'**une même classe** quand les élèves se répartissent entre plusieurs
groupes exclusifs. Omniscol étant un logiciel de planification sous contraintes,
les groupes sont par défaut réputés avoir potentiellement au moins un apprenant
en commun : la déclaration d'une partition entre groupes lève la contrainte.
Explicitement, les groupes d'une même partition ne sont pas en conflit.

L'idée à retenir :

- tout élève ne doit appartenir qu'à **un seul (ou aucun)** groupe de la
  partition ;
- ces groupes peuvent alors porter des cours différents en parallèle ;
- Omniscol sait qu'il ne s'agit pas d'un conflit élève.

Exemples :

- `TP-A` et `TP-B` font deux TP différents au même moment ;
- `LV2 Espagnol`, `LV2 Allemand` et `LV2 Italien` partagent le même créneau
  d'options ;
- `Groupe A` et `Groupe B` alternent des activités simultanées dans deux
  salles ;
- `Anglais forts`, `Anglais moyens`, `Anglais faibles` suivent trois cours
  différents en parallèle.

```mermaid
flowchart LR
    subgraph CL["Classe 4e B"]
        E["LV2 Espagnol"]
        A["LV2 Allemand"]
        I["LV2 Italien"]
    end
    E -. "partition" .- A
    A -. "partition" .- I
    E -. "partition" .- I
```

Pour une même classe, la partition est donc le bon outil quand vous voulez
dire : « ces groupes se partagent les élèves, ils peuvent être placés en
parallèle ».

Note : il existe un fonctionnement d'Omniscol, sur option, où les élèves sont
directement affectés dans les classes et groupes au niveau des emplois du temps.
Dans ce cas, les partitions peuvent être automatiquement déduites (aucune intersection
d'élèves entre groupes = partition).

##### Sous-groupes et partition

Avec des sous-groupes, la logique de partition se propage le long de la
hiérarchie. Si `TP-A` et `TP-B` sont en partition, les sous-groupes de `TP-A`
et ceux de `TP-B` héritent de cette séparation entre branches.

Exemple :

- `TP-A` et `TP-B` sont en partition ;
- `TP-A1` et `TP-A2` sont des sous-groupes de `TP-A`.

Omniscol sait alors qu'un cours sur `TP-A1` n'entre pas en conflit avec un
cours sur `TP-B`, sans que vous ayez à redéclarer chaque combinaison à la
main.

En revanche, si vous voulez subdiviser `TP-A` en plusieurs branches qui se
répartissent elles aussi les élèves, il faut définir explicitement cette
subdivision dans la hiérarchie et, si besoin, sa partition propre.

#### Alignement : un cours commun entre plusieurs classes

Un [alignement](#page-glossary.alignment) sert quand plusieurs groupes de
**classes différentes** suivent en réalité **le même cours**, au **même
créneau**, avec le **même professeur** et dans la **même salle**.

Exemple classique : les `Latinistes` de `5e A`, `5e B` et `5e C` ont un seul
cours de latin commun.

```mermaid
flowchart LR
    subgraph A["Classe 5e A"]
        GA["Latinistes"]
    end
    subgraph B["Classe 5e B"]
        GB["Latinistes"]
    end
    subgraph C["Classe 5e C"]
        GC["Latinistes"]
    end
    LESSON["Un seul cours de latin"]
    GA --> LESSON
    GB --> LESSON
    GC --> LESSON
```

L'alignement est très utile pour les options ou électifs inter-classes, mais
il est plus rigide qu'un simple groupe : tout ce qui est aligné vit ensemble.

Condition importante : il faut qu'il s'agisse de la **même matière** entre les
classes concernées.

Autrement dit, si vous voulez un cours commun entre plusieurs classes, il faut
que ces classes partagent réellement la matière utilisée par cette séance.

Exemple :

- `Marketing` commun à plusieurs classes : oui ;
- `Marketing B3` dans une classe et `Marketing M1 option` dans une autre : non,
  pas si ce sont deux matières distinctes dans la structure de l'EDT.

Dans le supérieur, cela conduit souvent à éviter des matières trop spécifiques
à un seul cursus quand on sait qu'on aura des cours mutualisés. Il vaut mieux
prévoir une matière commune aux classes qui doivent partager des séances.

Les alignements sont plus adaptés aux écoles du secondaire : il s'agit de créer
des séances en miroir, et d'indiquer la logique de regroupement dynamique.
L'inconvénient est de devoir respecter ce miroir : il faut créer autant de séances
que de groupes dans l'alignement, avec les bons groupes affectés dans chaque classe
et tout doit être symétrique : professeur(s), salle, ressources, etc. Si une séance
ayant un groupe dans un alignement est positionnée, on doit trouver une séance en miroir
dans chaque classe, avec son groupe aligné correspondant.

L'avantage est la possibilité de créer des cours complexes avec les alignements. On
peut avoir un cours de latin commun en semaine A, et un cours non regroupé différent
dans chaque classe.

Si ces contraintes ne sont pas compensées par les avantages, mieux vaut considérer
les groupes de groupes.

#### Groupe de groupes : regroupement explicite et modifiable

Le [groupe de groupes](#page-glossary.groups-of-groups) sert à rassembler
plusieurs groupes dans un regroupement nommé, modifiable et réutilisable.
Le groupe de groupes s'utilise alors comme n'importe quel groupe.

Il est particulièrement utile :

- dans le supérieur et la formation continue ;
- quand la composition d'un regroupement peut évoluer ;
- quand vous voulez garder une structure lisible et traçable.

Exemple : un séminaire commun réunit des apprenants de `M1 Marketing`,
`M1 Finance` et `Elective Data`. Les séances sont planifiées, avec le groupe
de groupes, puis, plus tard, un quatrième groupe rejoint le dispositif : il suffit
de l'ajouter au groupe de groupes pour que toutes les séances lui soient rattachées.

Comme pour les alignements, il faut que les séances communes reposent sur une
**matière commune** entre les classes concernées. Le groupe de groupes permet de
regrouper les publics ; il ne remplace pas la cohérence de la matière utilisée pour
le cours.

Si vous devez regrouper des **classes entières**, créez d'abord dans chaque
classe un groupe qui représente cette classe entière, puis utilisez ces groupes
dans l'alignement ou le groupe de groupes. On n'aligne pas directement des
classes sans passer par des groupes.

#### Affecter plusieurs groupes directement à une séance

Il est possible d'affecter **plusieurs groupes directement à une
séance**, sans créer au préalable un groupe de groupes nommé.

C'est utile :

- pour un besoin ponctuel ;
- pour tester rapidement un regroupement ;
- pour une séance exceptionnelle qui ne justifie pas une structure dédiée.

Mais ce n'est pas le meilleur choix comme modélisation de fond :

- c'est moins lisible dans la durée ;
- c'est moins traçable qu'un regroupement nommé ;
- il devient plus difficile de comprendre l'intention pédagogique si ce
  schéma se répète souvent.

En pratique :

- pour un usage durable, préférez un **groupe de groupes** explicite ;
- pour un besoin ponctuel, l'affectation directe de plusieurs groupes est
  très pratique.

```mermaid
flowchart LR
    subgraph X["Groupes existants"]
        G1["M1 Marketing - Elective Data"]
        G2["M1 Finance - Elective Data"]
        G3["M2 Contrôle de gestion - Elective Data"]
    end
    S["Séance ponctuelle Data"]
    G1 --> S
    G2 --> S
    G3 --> S
```

Évitez en revanche de mélanger, sur une même séance, un **groupe parent** et
l'un de ses **sous-groupes** : ce n'est généralement pas une modélisation
propre du public concerné.

#### Tableau récapitulatif

| Concept | Périmètre | À quoi ça sert | Exemple |
| --- | --- | --- | --- |
| [**Classe**](#page-glossary.class) | Ensemble de référence | Porter les cours suivis par tout le monde | `6e A`, `BTS 1`, `M1 Marketing` |
| [**Groupe**](#page-glossary.group) | Subdivision d'une classe | Isoler un sous-ensemble d'élèves | `TP-A`, `Latinistes`, `LV2 Espagnol` |
| [**Sous-groupe**](#page-core-concepts.group-hierarchy) | Subdivision d'un groupe | Raffiner une organisation déjà découpée | `TP-A1`, `TP-A2` |
| [**Partition**](#page-glossary.class-division) | Groupes d'une même classe | Répartir des élèves exclusifs sur des cours en parallèle | `TP-A` / `TP-B`, `Allemand` / `Espagnol` |
| [**Alignement**](#page-glossary.alignment) | Groupes de classes différentes | Faire suivre un seul cours commun | `Latinistes` de plusieurs classes |
| [**Groupe de groupes**](#page-glossary.groups-of-groups) | Plusieurs groupes, même ou différentes classes | Construire un regroupement explicite et modifiable | Séminaire commun multi-parcours |
| **Multi-groupes** | Plusieurs groupes, même ou différentes classes | Affectation dynamique de plusieurs groupes, à la volée | Séance ponctuelle intéressant des populations variées |
| [**Groupe libre**](#page-glossary.free-group) | Composition ouverte | Gérer des inscriptions non figées | Atelier, club, activité ouverte |

#### Voir aussi

- [Partitions de classe](#page-core-concepts.class-divisions)
- [Alignements de groupes](#page-core-concepts.alignments)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Hiérarchie de groupes](#page-core-concepts.group-hierarchy)
- [Groupes libres](#page-core-concepts.free-groups)
- [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)

<a id="page-core-concepts.class-divisions"></a>

### 2.3  Partitions de classe

*Source: `help/fr/core-concepts/class-divisions.md` · id: core-concepts.class-divisions · Updated: 2026-05-20*

Une **partition** déclare au solveur que plusieurs
[groupes](#page-glossary.group) d'une même [classe](#page-glossary.class)
peuvent être au **même créneau horaire** sans entrer en conflit —
parce qu'aucun élève ne fait partie de plus d'un de ces groupes.

#### Pourquoi c'est nécessaire — la philosophie « tout est conflit par défaut »

Omniscol est un logiciel de planification **sous contraintes**.
Conséquence directe : **tout ce qui peut être source de conflit
l'est considéré ainsi par défaut**, sauf si l'utilisateur précise
explicitement autrement.

- Entre **deux classes distinctes** : aucun élève en commun par
  hypothèse, donc pas de conflit à signaler. (Les cours
  transverses / mutualisés se modélisent à part via les
  [alignements](#page-core-concepts.alignments) ou les
  [groupes de groupes](#page-core-concepts.groups-of-groups).)
- Au sein d'**une même classe**, le solveur n'a **aucun moyen
  logique** de deviner quels groupes peuvent cohabiter au même
  créneau sans se chevaucher. Il considère donc deux groupes d'une
  même classe comme **susceptibles d'avoir des élèves en
  commun**. Sans déclaration de partition, planifier deux cours au
  même créneau pour deux groupes de la même classe lève un
  conflit.

C'est à l'auteur de l'EDT de **dire au solveur** : « ces groupes
sont mutuellement exclusifs, vous pouvez les planifier
simultanément ». La partition est cette déclaration.

Le solveur essaiera le plus possible de positionner simultanément
les séances avec des groupes en partition, mais il peut ne pas y
arriver à cause d'autres contraintes (manque de salle, contraintes
horaires incompatibles entre professeurs ou matières, entité commune
comme la salle spécialisée ou le professeur en commun entre les séances).
Dans ce cas, le solveur détectera qu'une partie de la classe n'a pas cours
et appliquera une pénalité proportionnelle (option par défaut : réduire les
trous pour les élèves), le poussant à planifier ces séances en tout début
ou toute fin de journée, ou encore durant la pause méridienne si possible.

#### Cas d'usage typiques

- **Demi-classes alphabétiques** : groupes A et B (selon ordre
  alphabétique ou tirage au sort) — un élève est dans l'un OU
  l'autre, jamais les deux.
- **Demi-classes par niveau** : groupes Anglais Renforcé vs Anglais
  Standard ; un élève est dans l'un OU l'autre.
- **Demi-classes par sexe** (cas particulier de certains
  établissements pour l'EPS, par exemple).
- **Options exclusives** : LV2 Allemand / LV2 Espagnol / LV2 Italien
  — un élève choisit **une seule** des trois langues. (Adapter
  l'exemple selon votre contexte ; en anglo-saxon, on parle de
  *electives*.)
- **Bouquets d'options simultanées** : un panel d'électifs où
  l'établissement décide de planifier toutes les options sur le
  même créneau bloqué (`Vendredi 14h-16h = créneau électifs`), et
  les élèves choisissent leur option dans le bouquet — toutes
  exclusives au sens « un élève suit une seule option ».
- **TP / laboratoires en demi-groupes** : TP-A et TP-B au même créneau
  dans deux salles différentes avec deux professeurs.

#### Création

Étapes :

1. Allez sur la page des groupes d'une classe (onglet Groupes).
2. Sélectionnez les groupes concernés.
3. Cliquez sur Ajouter une partition.
4. Validez.

Plusieurs partitions peuvent coexister dans une même classe : une
pour les TP de sciences (TP-A, TP-B), une pour les langues (LV2
Allemand, LV2 Espagnol), une pour les options philo (Philo
spécialité, HG spécialité, Maths spécialité). Chaque partition est
indépendante des autres.

Lorsqu'un groupe est en partition, il apparaît dans tous les écrans
concernés avec une icône [link-slash].

#### Sécurité par défaut : un groupe dans une seule partition

Par défaut, l'interface applique une sécurité simple : un groupe
n'appartient qu'à une seule partition. C'est le cas le plus fréquent, et cela
évite beaucoup d'erreurs.

Ce filtrage peut toutefois être levé lorsque la réalité des publics le
justifie.

Exemple :

- seuls les élèves de `LV2 Allemand` font aussi `Latin` ;
- les élèves de `LV2 Espagnol` ne font pas `Latin`.

Vous pouvez alors créer :

- une partition `LV2 Allemand` / `LV2 Espagnol` ;
- une partition `Latin` / `LV2 Espagnol`.

L'intérêt est de donner plus de liberté au moteur pour placer certaines séances
face à face et réduire les trous pour une partie de la classe.

À utiliser avec rigueur : il faut que la répartition réelle des élèves soit
parfaitement maîtrisée.

#### Critère de validité

**Aucun élève ne doit appartenir à deux groupes de la même
partition.** C'est la définition mathématique d'une partition — les
ensembles sont disjoints.

Si un élève figure dans deux groupes d'une même partition,
Omniscol émet une alerte de cohérence (le solveur ne peut pas
l'envoyer à deux endroits en même temps).

#### Conséquence sur l'algorithme

Avec une partition déclarée, le solveur :

- **autorise** la planification simultanée des groupes de la
  partition (alors que ce serait un conflit autrement),
- **vérifie quand même les autres ressources** : il faut autant de
  salles différentes que de groupes simultanés, autant de professeurs
  différents. La partition lève uniquement le conflit
  élève — pas les conflits salle / professeur, qui restent stricts.

#### Erreur fréquente — trois cours au même créneau dans une classe

Si vous voulez **trois cours différents simultanés** dans une
classe (Philo, Hist-géo, Maths spé) parce que vos élèves ont
des options exclusives, créez **trois groupes** (Philo, HG,
Maths-spé) et mettez-les en partition. Pas trois cours sans
groupe — sinon le solveur n'aura aucune information sur les
contraintes de simultanéité, et chacun sera placé séparément,
sur des horaires différents.

#### Différence avec une autre construction

| Vous voulez… | Utilisez |
| --- | --- |
| Plusieurs groupes d'**une même classe** au même créneau (cours différents, élèves disjoints) | **Partition** (cette page) |
| Plusieurs groupes de **classes différentes** au même créneau (même cours, même professeur, même salle) via une logique reliant des groupes simples | [Alignement](#page-core-concepts.alignments) |
| Idem alignement, mais facilement modifiable a posteriori, en créant une entité autonome de regroupement | [Groupe de groupes](#page-core-concepts.groups-of-groups) |
| Un groupe à composition non figée (atelier, inscription libre) | [Groupe libre](#page-core-concepts.free-groups) |

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Alignements](#page-core-concepts.alignments)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Groupes libres](#page-core-concepts.free-groups)
- [Partition de classe](#page-glossary.class-division)

<a id="page-core-concepts.alignments"></a>

### 2.4  Alignements de groupes

*Source: `help/fr/core-concepts/alignments.md` · id: core-concepts.alignments · Updated: 2026-05-20*

Un **alignement** lie plusieurs [groupes](#page-glossary.group) appartenant
à des **classes différentes** : ils doivent suivre **le même cours**, au
**même créneau**, dans la **même salle**, avec le **même professeur**.

Condition importante : cet alignement doit reposer sur la **même matière**
dans les différentes classes. Si deux classes portent des matières distinctes,
même très proches pédagogiquement, l'alignement ne constitue pas une bonne
modélisation.

Concrètement, là où une [partition](#page-glossary.class-division) reste à
l'intérieur d'une classe, l'alignement traverse plusieurs classes.

#### Cas d'usage

Les alignements servent à créer des cours transverses où plusieurs classes
ont un nombre réduit d'apprenants à regrouper (aligner) pour un cours commun
précis, qu'ils suivront ensemble. C'est par exemple le cas pour :

- **Latinistes** de 5A, 5B et 5C qui suivent le cours de latin en commun.
- **Options inter-classes** au lycée : Sciences PO, Histoire des arts,
  LV3, etc.
- **Enseignements de spécialité**.
- **Tronc commun multi-parcours** dans le supérieur : un cours
  d'introduction commun à plusieurs masters.

Si vous devez aligner des **classes entières**, créez d'abord dans chaque
classe un groupe qui représente cette classe entière, puis alignez ces
groupes.

#### Création

1. Créez d'abord, dans chaque classe concernée, **un groupe**, de préférence au nom
   identique (exemple : « Latinistes » dans 5A, dans 5B, et dans 5C).
2. Allez sur l'onglet Alignement de groupes.
3. Cliquez sur Ajouter un alignement et
   sélectionnez les groupes des différentes classes.

Lorsqu'un groupe est concerné par un alignement, il apparaît alors dans
tous les écrans concernés, avec une icône de liaison [link].

#### Conséquences

Une fois aligné, le groupe de chaque classe est **lié** au cours
commun. Concrètement :

- Les séances de cours doivent être créées dans les classes en miroir,
  avec notamment la **même durée**, le **même professeur** et éventuellement
  la **même salle**.
- Si une séance d'une classe avec groupe aligné est positionnée sur une journée
  et une heure, alors toutes les autres classes de l'alignement doivent avoir
  la même séance en miroir, avec chacune le groupe aligné correspondant, sur
  la même position.
- Les volumes horaires et le découpage en séances avec les différents groupes
  alignés doivent être **strictement identiques** sur la matière concernée — sinon
  Omniscol émet un diagnostic d'incohérence.
- Une modification (déplacement, changement de salle, changement de
  professeur, ajout d'un mémo) faite sur une séance **doit être propagée**
  à toutes les classes alignées (le système essaie de deviner quelles
  séances sont en miroir pour rendre cela le plus automatique possible).

#### Diagnostic — incohérences fréquentes

L'alignement est sensible aux écarts. Diagnostics typiques :

- **Volume horaire divergent** : le groupe « Latinistes » de 8A a
  3 séances d'une heure de latin, celui de 8B en a 2. Soit on harmonise
  (3 partout), soit on désaligne (2 heures alignées, une heure sur un autre
  groupe de latinistes non aligné).
- **Salle différente sur une séance alignée** : un alignement implique une
  unique salle. Si vous forcez manuellement une salle différente sur une
  classe pour sa séance, le diagnostic remonte.
- **Professeur différent** : idem.

#### Astuce — un groupe par cours/matière

Les alignements étant très sensibles à l'obligation de création en parfait
miroir, il est extrêmement recommandé de créer un groupe par matière ou
cours concerné de chaque classe à aligner. Autrement dit : ne réutilisez
pas un groupe générique (typiquement : groupes A/B) pour des matières
différentes, avec une logique forte d'alignement. Sinon vous obtenez des
alignements ambigus que le solveur ne peut pas désambiguïser.
Créez plutôt des groupes spécialisés, que vous pourrez relier entre eux
sans craindre d'effets de bord indésirables.

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Partitions](#page-core-concepts.class-divisions)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Cours transverse](#page-glossary.transverse-course)
- [Alignement de groupes](#page-glossary.alignment)

<a id="page-core-concepts.groups-of-groups"></a>

### 2.5  Groupes de groupes

*Source: `help/fr/core-concepts/groups-of-groups.md` · id: core-concepts.groups-of-groups · Updated: 2026-05-20*

Un **groupe de groupes** est un super-groupe qui rassemble plusieurs
[groupes](#page-glossary.group) — pouvant venir de la **même classe** ou
de **classes différentes**. C'est ainsi que l'on **met plusieurs groupes
ensemble pour partager une séance** — en réunissant différents groupes
d'élèves en un seul effectif sur ce créneau. D'autres logiciels de
planification emploient le terme « regroupement » pour le même concept.

Comme pour un alignement, les séances communes doivent reposer sur une
**matière commune** entre les classes concernées.

Contrairement aux alignements qui indiquent une logique entre groupes,
le groupe de groupes est une entité autonome qui peut s'utiliser comme
un groupe. On peut le voir comme un conteneur nommé dynamique de groupes.

#### En quoi c'est plus souple qu'un alignement

| Aspect | [Alignement](#page-core-concepts.alignments) | **Groupe de groupes** |
| --- | --- | --- |
| Composition | Modifiable a posteriori mais implique de créer les séances en miroir | Modifiable a posteriori très facilement |
| Mode d'EDT | Très adapté à l'hebdomadaire et cyclique du secondaire | Utilisable dans tous les types d'EDT ; particulièrement pratique quand les regroupements évoluent |
| Sortie de la séance | Nécessite un clone non aligné du groupe | Modification directe de la séance dont l'appartenance sera fixée à une classe, nécessité de recréer les séances des autres classes impliquées |
| Cas d'usage | Cours commun récurrent, pour curriculum de classes parallèles | Cours transverses, regroupements ponctuels |

Le groupe de groupes est conçu pour le supérieur et la formation
continue, où :

- la composition des regroupements évolue souvent (un parcours qui
  rejoint un autre, un sous-groupe qui se détache pour un projet),
- les cours communs sont datés individuellement plutôt que récurrents,
- les conférenciers ou les visiting professors interviennent sur un
  public composite à dates précises.

Un groupe de groupes est plus flexible et facile à suivre qu'un alignement.
Sa limitation se situe dans les cours complexes, avec des alternances
asymétriques de semaines. Il nécessite seulement de bien structurer les nommages
(par exemple : "Marketing transverse Master").

#### Création et utilisation

Création depuis l'onglet Groupe de groupes de l'EDT. Le
groupe de groupes peut être assigné à un cours **comme s'il s'agissait
d'un groupe ordinaire** — la différence est qu'il agrège plusieurs
groupes membres.

Si vous voulez regrouper des **classes entières**, créez d'abord dans chaque
classe un groupe qui représente la classe entière, puis utilisez ces groupes
dans votre groupe de groupes.

Un cours assigné à un groupe de groupes apparaît dans **toutes** les
classes parentes des groupes membres. Et vous pouvez l'éditer depuis
n'importe laquelle d'entre elles.

Les groupes de groupes apparaissent dans tous les écrans concernés avec une icône
spécifique [sitemap].

#### Modifier la composition après coup

Les groupes membres peuvent être ajoutés ou retirés à tout moment.
Les cours déjà assignés s'adaptent automatiquement (la portée
s'élargit ou se réduit selon les groupes ajoutés / retirés).

C'est ce qui fait la valeur du concept : on peut commencer un
semestre avec une composition, l'ajuster en cours de route, sans
casser la structure.

#### Considérations techniques

Techniquement, une séance de cours avec un groupe de groupes est stockée
une seule fois, de manière transverse aux classes, donc non assignée à une
classe précise. Tandis qu'une séance sans groupe de groupes (y compris
avec des groupes alignés) est stockée dans sa classe. Avec un alignement
sur 3 groupes, il y a 3 séances stockées, une dans chaque classe ; avec un
groupe de groupes, une seule séance est stockée à part des classes, mais
affichée dans chaque classe.

Lorsqu'un groupe de groupes est retiré d'une séance de cours, le système
devine ou demande quelle est la classe de rattachement de la séance.

Il est plus facile de modifier les autres champs d'une séance avec un groupe
de groupes qu'avec un alignement : le stockage unique permet de changer la
salle ou le professeur de manière immédiate, sans répercussion "en miroir".

#### Consolidation des indisponibilités

Un groupe de groupes **consolide les indisponibilités** de tous ses groupes
membres. Une indisponibilité posée sur **n'importe quel** groupe membre — ou
sur la classe de ce groupe — s'applique à la séance commune. La règle vaut
autant à la génération automatique qu'à l'écran pendant l'édition. Les niveaux
souples (Non souhaité, rouge) se consolident de la même façon ; et quand
plusieurs niveaux se rencontrent sur un même créneau, **le plus fort l'emporte**
— une Indisponible (noir) prime sur une Non souhaité (rouge). Voir
[Contraintes horaires (système général)](#page-core-concepts.time-constraints) pour l'éditeur et les niveaux.

Comme un groupe de groupes traverse souvent plusieurs classes, cette
consolidation réunit les indisponibilités de **chaque classe couverte** :
une classe fermée le vendredi après-midi ferme ce créneau pour toute séance
du groupe de groupes qui l'inclut, même quand les autres classes restent
libres.

```mermaid
flowchart TD
    CX["Classe X — indisponible lundi après-midi"] --> GA["Groupe A (classe X)"]
    CY["Classe Y — indisponible vendredi matin"] --> GB["Groupe B (classe Y)"]
    GA --> GG["Groupe de groupes"]
    GB --> GG
    GG --> SE["Séance : indisponible lundi après-midi ET vendredi matin"]
```

Sur le groupe de groupes, l'application affiche un **aperçu consolidé, non
modifiable**, de ces indisponibilités : on visualise d'un coup les contraintes
de tous les membres. On les **modifie sur les groupes membres** (ou sur leurs
classes), là où elles portent un sens propre — le groupe de groupes n'a pas
d'éditeur de contraintes distinct.

> _Premium_

Chaque groupe membre apporte ses **propres** contraintes de groupe, ainsi que
celles qu'il **hérite** de sa classe et de ses groupes parents (voir
[Hiérarchie de groupes](#page-core-concepts.group-hierarchy)). La consolidation les reprend toutes :
plus le groupe de groupes agrège de membres, plus la fenêtre de placement se
resserre. Pour rouvrir un créneau malgré une contrainte héritée, le niveau
**Cours autorisés** le réautorise localement, sans modifier la source.

À l'écran, ces contraintes consolidées se voient **au placement** : les
créneaux candidats et le panneau de diagnostic signalent le conflit et nomment
le **groupe membre** et la **classe** en cause, pour remonter directement à la
source (voir [Conflits et diagnostic](#page-timetables.conflicts)).

#### Procédure — Créer un groupe transverse pour conférence invitée

1. **Une conférence invitée pour un public composite** (étudiants de
   trois promotions, deux options) : le concept Omniscol qui correspond,
   c'est le **groupe de groupes**.
2. **Préalable** : Les groupes membres existent déjà au sein de leurs classes
   respectives. Identifiez les groupes à agréger (`M1 marketing`,
   `M1 finance`, `Option entrepreneuriat`).
3. **Ouvrez l'onglet** Groupe de groupes de l'EDT. Bouton
   Ajouter un groupe de groupes. Donnez-lui un nom parlant :
   `Conférence invitée Mme Lambert — public M1 + options`.
4. **Ajoutez les groupes membres** : sélectionnez les groupes des
   trois classes / options dans la liste. Pas de limite de
   composition. Pas de contrainte d'exclusivité des groupes membres
   entre eux (au pire l'étudiant qui appartient à deux
   groupes verra le cours une seule fois).
5. **Créez le cours** (la conférence) depuis l'une des classes concernées,
   et **assignez-lui le groupe de groupes** comme s'il s'agissait d'un groupe ordinaire. Une seule saisie, le cours apparaît dans **toutes les classes
   parentes** des groupes membres.
6. **Modifications a posteriori** : si la composition évolue (un
   groupe se retire, un autre rejoint), modifiez la composition du
   groupe de groupes — les cours assignés s'adaptent automatiquement
   (la portée s'élargit ou se réduit). C'est ce qui distingue ce
   concept d'un alignement classique (composition figée). Voir aussi
   [Alignements](#page-core-concepts.alignments) pour le cas hebdomadaire.

#### Alternative plus flexible : assignation multiple directe de groupes

Parfois, pour des séances ponctuelles, créer un groupe de groupes dédié
se révèle être une opération pénible. Dans ce cas, si le manque de
structuration des données n'est pas un obstacle, vous pouvez directement
associer plusieurs groupes d'une ou plusieurs classes à une séance.

En interne, le traitement est similaire à un groupe de groupes anonyme,
avec un stockage unique transverse aux classes, mais vous n'avez pas
à vous en soucier.

#### Voir aussi

- [Alignements](#page-core-concepts.alignments)
- [Contraintes horaires (système général)](#page-core-concepts.time-constraints)
- [Cours transverse](#page-glossary.transverse-course)
- [Mode calendrier](#page-glossary.calendar-mode)
- [Groupe de groupes](#page-glossary.groups-of-groups)

<a id="page-core-concepts.group-hierarchy"></a>

### 2.6  Hiérarchie de groupes : parents, enfants, contraintes héritées

*Source: `help/fr/core-concepts/group-hierarchy.md` · id: core-concepts.group-hierarchy · Audience: admin · Plan: premium · Updated: 2026-05-20*

> **Premium**

> **Fonction Premium.** La hiérarchie de groupes et les contraintes
> horaires de groupes sont incluses dans les fonctions Premium.

> _Premium_

Au-delà du modèle plat « classe → groupes », Omniscol permet
d'organiser les groupes d'une classe en une **hiérarchie
parent / enfant** et d'attacher des **contraintes horaires** qui se
propagent par héritage. C'est utile quand la classe se structure en
plusieurs niveaux successifs de subdivisions.

#### Créer une hiérarchie par glisser-déposer

Sur la page des groupes d'une classe, le glisser-déposer définit la
hiérarchie :

- **Glisser un groupe sur un autre** → l'enfant est rattaché au
  parent.
- **Glisser un enfant sur la tête de liste des groupes** → l'enfant
  est ressorti de sa hiérarchie et redevient un groupe direct de
  la classe.

Pas de limite de profondeur. Vous pouvez avoir des chaînes
parent → enfant → petit-enfant si votre découpage le justifie.

#### Exemple canonique

Hiérarchie type :

```mermaid
flowchart TD
    C[Classe 8A]
    A[A — parent]
    A1[A1 — enfant de A]
    A2[A2 — enfant de A]
    B[B — parent]
    B1[B1 — enfant de B]
    B2[B2 — enfant de B]
    C --> A
    C --> B
    A --> A1
    A --> A2
    B --> B1
    B --> B2
```

Partitions déclarées :

- `(A, B)` — A et B sont exclusifs au niveau parent.
- `(A1, A2)` — sous A, A1 et A2 sont exclusifs.
- `(B1, B2)` — sous B, B1 et B2 sont exclusifs.

**Conséquence automatique** : Omniscol autorise la planification
simultanée de groupes appartenant à des branches différentes — par
exemple `A1` et `B2` peuvent être au même créneau, parce qu'aucun
étudiant n'est dans les deux (A1 ⊂ A, B2 ⊂ B, et A ∩ B = ∅).

Pas besoin de redéclarer la partition `(A1, B2)` : l'héritage la
calcule.

#### Héritage des contraintes horaires

Au-delà des partitions, vous pouvez attacher des **contraintes
horaires** (disponibilités, incompatibilités) à un groupe. Avec la
hiérarchie, ces contraintes **s'héritent** des parents vers les
enfants — par un système de **masque** que les enfants peuvent
surcharger.

##### Exemple : créneau réservé EPS

Cas typique :

- La classe `8A` est **indisponible le lundi après-midi** (créneau
  global bloqué pour activités collectives).
- Par héritage, **tous les groupes** de la classe sont
  indisponibles le lundi après-midi.
- **Sauf** le groupe `Sport` : on **inverse** son masque pour
  autoriser le lundi après-midi et interdire tout le reste. Toutes
  les activités sportives de ce groupe tomberont alors
  automatiquement sur ce créneau protégé.

Le mécanisme est puissant : **un masque parent + une exception
enfant** suffit à modéliser proprement des créneaux dédiés sans
avoir à dupliquer la contrainte sur chaque cours.

##### Autre exemple : un parent `Electifs` qui porte les créneaux autorisés

Autre cas très utile : l'établissement veut que tous les électifs tombent
uniquement sur quelques créneaux réservés, par exemple :

- lundi matin,
- mercredi avant 10h,
- vendredi matin.

On peut alors :

- créer un groupe parent `Electifs` qui ne sera pas lui-même affecté à des
  cours ;
- exprimer sur ce parent les créneaux autorisés en peignant les contraintes
  horaires ;
- créer en dessous autant de sous-groupes que nécessaire :
  `Elective Marketing`, `Elective Finance`, `Elective Data`, etc.

Tous ces sous-groupes héritent alors des mêmes créneaux autorisés. Si la règle
change, on modifie un seul point : le parent `Electifs`.

```mermaid
flowchart TD
    E["Electifs — groupe parent"]
    E1["Elective Marketing"]
    E2["Elective Finance"]
    E3["Elective Data"]
    S["Créneaux autorisés : lundi matin, mercredi avant 10h, vendredi matin"]
    S --> E
    E --> E1
    E --> E2
    E --> E3
```

##### Règles d'héritage

- Un groupe enfant **hérite par défaut** des contraintes horaires
  de son parent.
- L'enfant peut **surcharger** ces contraintes : ajouter des
  contraintes propres ou inverser le masque.
- Les **partitions du parent** s'appliquent automatiquement aux
  enfants : si A et B sont en partition, les enfants de A sont
  exclusifs des enfants de B sans déclaration explicite.

##### Contraintes héritées et groupes de groupes

Un groupe peut aussi être membre d'un **groupe de groupes**. Ses
contraintes — les siennes comme celles héritées de sa classe et de ses
groupes parents —
sont alors **consolidées** avec celles des autres groupes membres : la
séance du groupe de groupes respecte toutes ces indisponibilités réunies.
L'héritage descend donc la hiérarchie, puis la consolidation réunit les
membres du groupe de groupes.

```mermaid
flowchart TD
    C["Classe — indisponible lundi après-midi"] --> P["Groupe parent"]
    P --> E["Groupe enfant — hérite du parent"]
    E --> GG["Groupe de groupes"]
    M["Autre groupe membre (autre classe)"] --> GG
    GG --> SE["Séance : indisponibilités consolidées"]
```

Voir [Groupes de groupes](#page-core-concepts.groups-of-groups) pour le détail de la
consolidation.

#### Quand utiliser une hiérarchie

- **Bouquets d'options** : une classe avec des langues structurées
  en niveaux (Anglais Renforcé > A1-Conversation, A1-Civilisation,
  A2-…).
- **TP avec sous-rotations** : deux demi-classes pour le TP, chacune
  subdivisée en sous-groupes pour les manips.
- **Parcours différenciés** : un parcours principal avec des
  modules optionnels distincts qui se planifient au sein du
  parcours.
- **Sport** : un groupe global qui regroupe tous les étudiants, avec
  un masque dédié pour les créneaux sport.
- **Electifs sur créneaux réservés** : un groupe parent `Electifs`
  porte les créneaux autorisés, et ses sous-groupes correspondent
  aux électifs réels.

#### Quand ne pas utiliser

- Pour des classes simples sans subdivision hiérarchique — la
  hiérarchie ajoute de la complexité.
- Pour mélanger des étudiants de classes différentes — c'est le rôle
  des [alignements](#page-core-concepts.alignments) ou
  [groupes de groupes](#page-core-concepts.groups-of-groups), pas de
  la hiérarchie intra-classe.
- Pour des inscriptions ouvertes — utilisez les
  [groupes libres](#page-core-concepts.free-groups).

#### Procédure — Construire une hiérarchie parent/enfant

1. **La hiérarchie de groupes** organise les groupes d'une classe en
   parents et enfants, avec **héritage** des contraintes horaires.
2. **Créez d'abord les groupes à plat** sur la page des groupes de
   la classe : `A`, `A1`, `A2`, `B`, `B1`, `B2`, plus un groupe
   transverse `Sport`. À ce stade, tous sont au même niveau,
   directement rattachés à la classe.
3. **Glisser-déposer pour hiérarchiser** : faites glisser `A1` sur
   `A` → `A1` devient enfant de `A`. Idem pour `A2`, `B1`, `B2`.
   Vous obtenez deux branches `A → A1, A2` et `B → B1, B2`. Pas de
   limite de profondeur.

   Pour ressortir un enfant : glissez-le sur la **tête de liste** des
   groupes de la classe.
4. **Déclarez les partitions** : `(A, B)` au niveau parent (exclusifs),
   `(A1, A2)` sous A, `(B1, B2)` sous B. Inutile de redéclarer
   `(A1, B2)` : Omniscol calcule par héritage qu'`A1 ⊂ A` et `B2 ⊂ B`
   sont compatibles (planifiables au même créneau).
5. **Posez le masque parent** : sur la classe, marquez **lundi
   après-midi indisponible**. Tous les groupes en héritent
   automatiquement. Vérifiez en consultant la grille de chaque
   groupe : le créneau est bloqué partout.
6. **Inversez le masque sur `Sport`** : sur la fiche du groupe Sport,
   inversez la contrainte horaire — autorisez le lundi après-midi,
   interdisez tout le reste. Toutes les activités sportives tombent
   automatiquement sur ce créneau dédié, sans avoir à le redéclarer
   sur chaque cours.
7. **Vous avez maintenant une hiérarchie active** avec héritage des
   partitions et masque horaire dédié. Le solveur s'en sert lors de
   la génération automatique et les conflits hérités sont signalés en
   temps réel.

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Partitions de classe](#page-core-concepts.class-divisions)
- [Groupes libres](#page-core-concepts.free-groups)
- [Disponibilités, contraintes horaires et incompatibilités](#page-core-concepts.wishes-and-availability)

<a id="page-core-concepts.free-groups"></a>

### 2.7  Groupes libres

*Source: `help/fr/core-concepts/free-groups.md` · id: core-concepts.free-groups · Plan: premium · Updated: 2026-05-12*

> **Premium**

> _Premium_

Un **groupe libre** est un **groupe de travail semi-autonome** : une
partie de la classe avance sur son travail en parallèle du cours
principal, souvent dans la même salle et avec le même professeur — un
**groupe satellite** du cours. Il se place sur la grille sans générer de
conflit, et sa composition n'a pas à être figée à l'avance.

C'est la **carte joker** d'Omniscol : à utiliser quand le modèle
strict classe + sous-groupes en partition ne colle pas. Très
fréquent dans :

- les **écoles d'art** (ateliers à inscription libre, projets
  transversaux),
- les **projets en semi-autonomie** — petit groupe d'élèves qui
  travaille ensemble sous la supervision **légère** d'un professeur
  qui s'occupe principalement de sa classe à côté et qui passe
  régulièrement voir où ils en sont,
- les **conférences inter-classes**, masterclasses, séminaires
  invités,
- les **cours de soutien** et **clubs** volontaires,
- les **TER et stages courts** à inscriptions libres.

#### Comportement

Un groupe libre est **rattaché à une classe** comme tout groupe, avec
un effectif et, selon la configuration du compte, une liste d'élèves ou
d'étudiants. Ce qui change, c'est la manière dont Omniscol vérifie les
conflits.

Sur une séance d'un groupe libre, Omniscol **désactive trois types de
vérifications** :

- conflit avec le reste de la classe sur le même créneau,
- conflit avec une autre séance du même professeur,
- conflit avec une salle déjà occupée.

C'est ce qui permet au groupe libre de fonctionner comme un **groupe
satellite** sur la grille de la classe principale : la séance principale
a lieu, et la séance du groupe libre se place en parallèle sans
déclencher d'alerte.

Les séances d'un groupe libre **apparaissent explicitement** dans
l'EDT des étudiants concernés, comme toutes les autres séances.

#### Quand utiliser un groupe libre vs un groupe classique

| Situation | Groupe classique | Groupe libre |
| --- | --- | --- |
| Composition fixée à l'avance | ✓ | ✓ (comme un groupe ordinaire : effectif, liste d'élèves facultative) |
| Détection des conflits classe / professeur / salle | ✓ stricte | — désactivée |
| Modélisation d'options en partition de classe | ✓ | — non |
| Séance satellite, en parallèle du cours principal | — | ✓ |

#### Précaution d'usage — limite réelle

> **Avant tout : préférez les vrais sous-groupes en
> [partition](#page-core-concepts.class-divisions)** quand vous le pouvez.
> Le groupe libre est une **carte joker à usage parcimonieux**,
> réservée aux cas où aucune autre solution propre ne marche.

La raison : la mise en parallèle doit en pratique être **gérée par le
planificateur humain**. L'algorithme de génération automatique
n'a aucun moyen de savoir que tel groupe en semi-autonomie doit
être planifié **en parallèle de telle séance précise du cours
principal de la classe**. Si vous le laissez tourner, les séances du
groupe libre peuvent tomber n'importe quand — sans cohérence avec ce
que fait le reste de la classe.

**Bonne pratique** : positionner manuellement la séance du groupe
libre **en face** de la séance principale visée, puis **verrouiller
sa position** pour que la génération automatique n'y touche plus.
Voir [Verrouiller une séance](#page-timetables.lesson-lock).

#### Création

Au moment de créer le groupe (sur Ajouter un groupe),
cochez l'option Groupe libre.
Une icône [right-left] marque ensuite ces groupes dans les
listes pour ne pas les confondre avec les groupes ordinaires.

#### Effets de la désactivation des conflits

Concrètement, sur une séance d'un groupe libre :

- si Alice (étudiante de la classe) suit cette séance pendant qu'une
  autre séance principale a lieu pour le reste de la classe au même
  créneau, Omniscol n'émet **pas d'alerte** (alors qu'elle est en
  théorie attendue à deux endroits en même temps) ;
- le professeur peut être affecté à une autre séance sur le même créneau
  sans alerte non plus ;
- la salle peut être déjà occupée par la séance principale sans
  alerte.

Cette tolérance est **assumée**. Charge à vous (planificateur) de
garantir que la cohabitation a un sens pédagogique (typiquement :
le professeur passe juste de temps en temps voir où en est le groupe en
semi-autonomie ; les étudiants du groupe sortent de la séance principale
sans poser problème ; la salle accueille les deux activités).

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Partitions de classe](#page-core-concepts.class-divisions)
- [Verrouiller une séance](#page-timetables.lesson-lock)
- [Groupe libre](#page-glossary.free-group)

<a id="page-core-concepts.lessons-and-types"></a>

### 2.8  Cours, séances, types de cours

*Source: `help/fr/core-concepts/lessons-and-types.md` · id: core-concepts.lessons-and-types · Updated: 2026-06-13*

Trois objets liés mais distincts à bien différencier dans Omniscol :
le **cours** (l'unité pédagogique abstraite), la **séance** (une
instance concrète du cours, à une date précise), et le **type de
cours** (la classification, CM, TD, TP…).

#### Cours

Un **cours** est l'unité atomique d'enseignement : une matière, une
classe ou un groupe, un professeur, une salle, une durée, un
nombre d'occurrences hebdomadaires (ou un calendrier de dates en
mode calendrier).

Exemple : *« Mathématiques en 6e A, par M. Durand, 4 heures par
semaine en salle B204 ».*

Le cours porte la **logique pédagogique** : qui apprend quoi avec
qui. C'est ce qu'on construit dans le module Gestion des EDT.
Voir aussi la définition de glossaire : [Cours](#page-glossary.course).

#### Séance

Une **séance** est une **occurrence** concrète d'un cours, datée et
horodatée. À partir du cours *Mathématiques en 6e A, 4h/semaine*,
Omniscol génère 4 séances par semaine sur les semaines actives
(par exemple lundi 8h-9h, mardi 10h-11h, mercredi 14h-15h,
vendredi 9h-10h).

C'est la séance qui est visible dans le module EDT,
dans les portails, dans les exports iCal. C'est aussi sur la séance
que portent les modifications ponctuelles (déplacer, annuler,
remplacer).

C'est le terme retenu par l'interface pour l'unité posée sur la
grille : ce que vous placez, déplacez, verrouillez, éditez, annulez
ou remplacez est une **séance** (ou « séance de cours » quand la
précision aide).

#### Type de cours

Un **type de cours** classe chaque cours au-delà de sa matière : CM,
TD, TP, examen, distanciel, sortie. Le type sert pour :

- la **logique métier** (un examen ne se traite pas comme un TD),
- les **statistiques** (heures de TD vs heures de CM par
  professeur),
- la **lisibilité** (affichage dans les EDT).

Voir [Types de cours (TD, TP, examen, magistral, etc.)](#page-admin.lesson-types)
pour la gestion détaillée des types.

#### Où vivent les cours dans la structure

Selon la complexité de la structure des classes, les cours sont
rattachés soit **à leur classe** (cas standard), soit **de manière
transverse aux classes** (quand des groupes de groupes sont
utilisés ou qu'une séance a plusieurs groupes simultanément).
C'est transparent pour l'utilisateur — Omniscol bascule
automatiquement selon la structure. Voir
[Groupes de groupes](#page-core-concepts.groups-of-groups).

#### Cours simples vs complexes

Un cours peut être **simple** (un professeur, une classe, une matière,
une salle, une récurrence régulière) ou **complexe** : alternance
semaines A/B, concaténations (cours doubles), associations
(rotation entre groupes), co-animations (plusieurs professeurs). Voir
[Cours complexes](#page-core-concepts.complex-lessons).

#### Voir aussi

- [Séance / Leçon](#page-glossary.lesson)
- [Type de cours](#page-glossary.lesson-type)
- [Types de cours (TD, TP, examen, magistral, etc.)](#page-admin.lesson-types)
- [Cours complexes](#page-core-concepts.complex-lessons)

<a id="page-core-concepts.complex-lessons"></a>

### 2.9  Cours complexes : alternés, concaténés, associés, co-animés

*Source: `help/fr/core-concepts/complex-lessons.md` · id: core-concepts.complex-lessons · Updated: 2026-06-13*

Beaucoup de séances sont simples : un public, un professeur, une salle, un
créneau récurrent. Mais Omniscol gère aussi des configurations plus
sophistiquées, mixables entre elles. Les cours complexes sont des
séances d'une même classe reliées entre elles par une configuration
spéciale. Il en existe plusieurs types.

#### 1. Séances alternées (semaines A/B/...)

Des cours qui ne reviennent **pas chaque semaine**, mais alternent.
Le cas classique : une séance en semaine A, un autre en semaine B, sur
le même créneau.

Cette configuration est très populaire en France et dans les systèmes
scolaires qui s'en sont inspirés, mais très rare en dehors.

**Prérequis** : activer les semaines alternées dans
Paramètres (module Administration). Vous pouvez choisir la
nomenclature (lettres A/B/C ou chiffres 1/2/3).

**Décalage par les vacances** : l'alternance peut se recaler après une
période de vacances. Ce réglage se fait sur la frise de l'écran
[année scolaire](#page-admin.school-year).

**Création** :

1. Survolez la séance à alterner. Une icône [plus] apparaît en
   haut à droite de la séance, cliquez.
2. Une plage libre est ajoutée pour la semaine alternée.
3. Créez la séance correspondant à cette nouvelle plage.
4. Positionnez-la avec son bouton punaise [thumbtack], puis cliquez le
   créneau jour/heure voulu parmi les pastilles colorées.

Vous pouvez répéter pour ajouter d'autres semaines (alternance sur 3,
4, ou plus).

#### 2. Séances concaténées (consécutives)

Deux séances qui doivent **se suivre dans la journée**, sans
intercalation.

Cas typiques :

- succession de TP de deux groupes différents (le professeur
  est sûr de venir pour une demi-journée complète),
- CM + TD à la suite (CM d'introduction puis TD d'application),
- double session d'examen.

**Création** : glissez-déposez une séance sous une autre dans la vue de
répartition des heures. Les deux séances sont alors collées, et sont
considérées comme un bloc unique.

On peut concaténer autant de séances qu'on le souhaite, mais évidemment
il se pourrait que ça ne rentre plus dans la grille horaire, si la durée
totale est trop importante.

**Détacher** : un bouton « ciseaux » apparaît au survol entre les
deux séances concaténées. Il sépare la concaténation.

**Pourquoi pas une séance unique plus longue ?** Parce que les deux séances
peuvent avoir :

- des **types** différents (CM puis TD),
- des **professeurs** différents (le titulaire pour le CM, un assistant pour
  le TD),
- des **salles** différentes.

Si tous les attributs sont identiques, allonger une seule séance est
plus simple — concaténer apporte de la souplesse dans les autres cas.

#### 3. Cours associés (alternance demi-groupes)

Deux séances simultanées en **demi-groupes qui se permutent** entre elles, pour
en former quatre. Le cas archétypal :

```
Créneau 1 : groupe A en bio,        groupe B en physique
Créneau 2 : groupe A en physique,   groupe B en bio
```

Au bout des deux créneaux, les deux demi-groupes ont vu les deux
matières, mais dans un ordre différent. La permutation nécessite donc deux
professeurs (un de bio, un de physique) qui « tournent ».

Cette configuration est assez populaire au collège en France et très populaire
dans les pays francophones d'Afrique. Elle semble bien plus rare ailleurs, mais
on peut la croiser au Brésil par exemple.

**Création** :

1. Créez deux séances [concaténées](#2-seances-concatenees-consecutives) (l'une
   sous l'autre).
2. Survolez la frontière entre les deux : un bouton d'Association de séances (tandem)
   apparaît.
3. Cliquez et désignez les **deux groupes** qui doivent alterner.
   Idéalement, les deux groupes doivent être déclarés en
   [partition](#page-core-concepts.class-divisions) dans la classe.

Il est possible d'aller au-delà de deux séances/deux groupes, mais ce cas
reste plus théorique que rencontré dans la vie réelle.

#### 4. Co-enseignement

Deux ou plusieurs professeurs qui assurent **la même séance**, dans la
**même salle**, **simultanément**.

Cas typiques :

- encadrement renforcé (titulaire + assistant),
- *visiting professor* en duo avec le titulaire pour quelques séances,
- module pluridisciplinaire (un médecin + un informaticien pour
  « informatique pour la santé »),
- co-titulaires sur tout un semestre.

**Création** : sur l'écran d'affectation des professeurs au cours,
sélectionnez **plusieurs intervenants**. Chacun est crédité de la
séance dans ses statistiques et son service horaire.

#### 5. Combinaisons

Ces complexités se **mixent**. Exemples :

- **Alterné + concaténé** — un cours en semaine A est un double-bloc
  concaténé, en semaine B c'est un autre double-bloc.
- **Alterné + co-animé** — semaine A avec le titulaire, semaine B
  avec le visiting professor (alternance d'intervenants).
- **Concaténé + associé** — alternance demi-groupes sur un
  double-créneau (le cas le plus courant des TP de sciences en
  demi-classes).

En France, on va trouver typiquement une manière de déclarer les
demi-heures supplémentaires de français et mathématiques tout en
résolvant le problème des trois heures de sport (faire 1h en moyenne
via 2h une fois sur deux, en plus de 2h toutes les semaines).

| Semaine A | Semaine B |
| --- | --- |
| Français | Sport |
| Mathématiques | Sport |

#### Cas hors-norme

Si votre besoin ne tient dans aucune de ces catégories, contactez le
support Omniscol — il est probable qu'on puisse le modéliser, mais
cela peut nécessiter un peu d'aide pour identifier la meilleure
approche.

#### Procédure — Créer un TP en demi-groupes associés

1. **Le cas archétypal** : un TP de sciences sur deux créneaux, où
   demi-groupe A fait bio puis physique pendant que demi-groupe B
   fait physique puis bio. Concaténation + association.
2. **Préalable** : sur la classe concernée, déclarez les deux
   demi-groupes en **partition**, par exemple `(A, B)`. Voir
   [Partitions de classe](#page-core-concepts.class-divisions). C'est ce
   qui permet à Omniscol de les considérer comme exclusifs et donc
   permutables.
3. **Créez la première séance** (par exemple bio pour demi-groupe A)
   sur le premier créneau, dans la vue répartition des heures. Professeurs
   et salle de bio.
4. **Glissez-déposez la seconde séance** (physique pour demi-groupe B)
   **directement sous la première** (un emplacement apparaît au moment de
   lâcher la séance, qui se retrouve collée).
5. **Survolez la frontière** entre les deux séances concaténées : un
   bouton d'Association de séances (tandem) apparaît. Cliquez. Désignez les deux
   groupes (`A` et `B`) qui doivent alterner.

   Omniscol crée automatiquement la **rotation** : créneau 1 → A en
   bio + B en physique ; créneau 2 → A en physique + B en bio. Deux
   professeurs simultanés, deux salles, deux demi-groupes qui tournent,
   quatre séances en tout.
6. **Pour ajuster** : un bouton ciseaux entre les deux séances
   concaténées sépare l'association. Vous pouvez aussi mixer avec
   **alternance A/B** (TP différent semaine A vs B) ou **co-enseignement**
   (deux professeurs sur la même séance). Voir
   [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
   pour le contexte complet.

#### Voir aussi

- [Cours alternés](#page-glossary.alternate-lessons)
- [Cours concaténés](#page-glossary.concatenated-lessons)
- [Cours associés](#page-glossary.associated-lessons)
- [Co-enseignement](#page-glossary.co-teaching)
- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)

<a id="page-core-concepts.sites-rooms-resources"></a>

### 2.10  Campus, sites, salles, ressources, multi-salles

*Source: `help/fr/core-concepts/sites-rooms-resources.md` · id: core-concepts.sites-rooms-resources · Updated: 2026-06-13*

Cette page rassemble la modélisation **organisationnelle et physique**
d'un établissement dans Omniscol : quels campus structurent les classes,
où ont lieu les cours, dans quelles salles, avec quels équipements
mobiles.

> _Premium_

#### Campus — la maille organisationnelle

Un [campus](#page-glossary.campus) permet de distinguer plusieurs
implantations, facultés ou pôles au sein d'un même compte. C'est une
notion d'organisation interne : elle sert à regrouper des classes
selon la structure de l'établissement et à faciliter certains
filtrages.

Cette notion est **optionnelle**. Elle devient surtout utile quand la
notion de site ne recoupe pas bien l'organisation logique de
l'établissement, ou quand vous voulez garder les deux en parallèle.

Le campus est transversal au site. Un site décrit plutôt une réalité
géographique ou physique : lieu, grille horaire, salles, temps de trajet.
Les deux notions ne se superposent pas forcément. C'est même dans ce
cas qu'elles deviennent les plus utiles. Par exemple :

- une faculté peut utiliser plusieurs sites ;
- un site physique peut accueillir plusieurs campus ou pôles ;
- plusieurs facultés peuvent partager les mêmes bâtiments ;
- plusieurs écoles d'un groupe peuvent partager plusieurs sites de
  manière croisée ;
- un campus peut servir surtout de filtre d'analyse, sans changer les
  temps de trajet.

Même si campus et site se recoupent presque complètement, garder les
deux peut rester utile pour les filtres, les regroupements et certaines
analyses.

Les campus se créent dans les
[paramètres généraux](#page-admin.parameters), sous les niveaux de classe.
Ils peuvent ensuite être renseignés sur les classes.
Le diagnostic des conflits peut s'en servir pour filtrer les alertes par
périmètre organisationnel.

#### Sites — la maille géographique

Chaque [site](#page-glossary.site) représente un lieu physique ou
géographique distinct. Au moins un site est obligatoire.

Si tous vos cours ont lieu au même endroit, créez un seul site. Si
votre établissement est multi-sites avec des intervenants ou des
élèves qui se déplacent, créez autant de sites que nécessaire
**et renseignez les temps de trajet** entre eux.

Chaque site porte sa propre **grille horaire** (heures de début/fin
des créneaux, pauses, déjeuner, fermetures) — les sites peuvent
avoir des grilles différentes (par exemple un bâtiment principal et
une antenne avec d'autres horaires).

Le multi-sites est une pratique courante en **enseignement
supérieur** (campus multiples, antennes en région), mais aussi en
**Enseignement scolaire** (collège + lycée sur un même groupe scolaire avec bâtiments
séparés, école avec annexe maternelle, etc.).

> Le multi-sites n'est pas inclus dans le plan **Lite**. Il est
> disponible à partir du plan Standard.

#### Multi-sites : politique et temps de trajet

Cas typique : un professeur finit un cours sur le site A à 10 h, doit
être au site B à 10 h 30, le trajet prend 15 minutes. Sur la grille
horaire avec une pause inter-cours de 30 minutes, c'est bon. Avec
une pause de 10 minutes seulement, ça ne passe pas.

<a id="page-core-concepts.sites-rooms-resources--travel-times"></a>
##### Renseigner les temps de trajet

Sur l'écran **Sites** du module Gestion des EDT, le bouton
Distance entre les sites ouvre une popup qui présente
les temps de trajet sous forme de **demi-matrice triangulaire** : N
sites = N×(N−1)/2 cases à remplir (pas de diagonale, pas de
doublons — la matrice est symétrique). Saisissez les durées en
minutes pour chaque paire, validez avec
Enregistrer. Sans cette
saisie, le solveur considère qu'aucun trajet n'est nécessaire entre
les sites — il pourra téléporter les professeurs, ce qui ne marche
évidemment pas en pratique.

##### Politique professeurs : changement de site automatique

Un **professeur** peut changer de site automatiquement d'une séance de cours
à la suivante — c'est l'algorithme qui gère. Vous n'avez rien à
déclarer côté professeur : il suffit que les temps de trajet inter-sites
soient renseignés.

##### Politique classes : site par défaut + forçage manuel

Une **classe** est rattachée par défaut à un site (son site
d'inscription). Toutes ses séances de cours se déroulent par défaut sur
ce site.

Mais vous pouvez **manuellement attacher une salle d'un autre site**
à une séance de la classe — par exemple « cours d'EPS au gymnase de
l'annexe ». Dans ce cas :

- la **salle préassignée** est conservée par l'algorithme (il ne
  cherche pas à la remplacer par une salle du site par défaut) ;
- le solveur calcule les **temps de trajet** par rapport aux séances
  qui précèdent ou suivent (selon leur site : par défaut le site
  de la classe, sinon le site de la salle imposée sur ces séances).

Si **aucune salle n'est précisée** sur une séance, l'algorithme
choisit une salle du **site de la classe**. C'est la valeur par
défaut.

##### Contrainte bloquante, à la minute près

La contrainte inter-sites est **bloquante** dans l'algorithme de
génération automatique. S'il manque ne serait-ce qu'une minute
entre la fin d'une séance sur un site et le début d'une séance sur un
autre site, le placement est **refusé** — pas de relâchement
automatique.

Vérification précise sur la **grille horaire effective** : si deux
créneaux se suivent avec 15 minutes de récréation et qu'il faut 10
minutes de trajet, ça passe ; s'il faut 16 minutes de trajet, ça
ne passe pas.

##### Pause déjeuner sur changement de site

Quand un changement de site tombe sur la pause déjeuner, le temps
de trajet est **soustrait du temps de déjeuner réel** disponible.
L'algorithme prend en compte une durée minimale de déjeuner pour les
professeurs et pour les élèves (calibrée côté site) ; si le trajet
réduit ce temps en dessous du minimum, le placement est refusé.

Conséquence pratique : déclarer correctement les temps de trajet et
les durées de déjeuner par site évite les emplois du temps
théoriquement valides mais impossibles à tenir physiquement.

##### Conséquence sur le diagnostic

Si vous voyez « impossible » sur des placements multi-sites, vérifiez
en priorité :

- les **temps de trajet** déclarés (pas téléportés, ni surestimés
  ridiculement),
- les **pauses inter-cours** sur la grille horaire,
- l'éventuelle **pause déjeuner** sur le créneau concerné,
- les **salles préassignées** : si une classe a une salle imposée
  sur un autre site, c'est elle qui fixe la contrainte.

En positionnement manuel, la contrainte apparaît en orange, et vous
pouvez toujours forcer. Mais à moins que les séances ne soient verrouillées,
lancer l'algorithme de génération automatique a posteriori aura pour
conséquence de déplacer la ou les séances pour résoudre ce conflit.

##### Cas d'usage : activités extérieures

Au-delà des campus permanents, le mécanisme multi-sites couvre
naturellement les **activités extérieures récurrentes** :

- **visite d'hôtel ou de restaurant** pour une école d'hôtellerie /
  restauration ;
- **visite de musée** ou d'atelier pour une école d'art ou de
  design ;
- **sortie en entreprise** récurrente (visites en alternance) ;
- **stage de terrain** sur un site externe (chantier, exploitation
  agricole, laboratoire partenaire).

Créez un site dédié pour chaque lieu extérieur récurrent, avec son
temps de trajet depuis votre site principal. La contrainte
bloquante s'applique normalement : si le déplacement ne tient pas
dans le temps disponible entre deux séances, le placement est refusé.

##### Pour aller plus loin : enseignement supérieur

Le multi-sites est particulièrement courant en supérieur (campus
multiples, antennes en région, intervenants qui circulent). Cas
spécifiques (un EDT par site grâce aux EDT actifs multiples — inclus
en Premium —, sites virtuels pour la visio, etc.) dans
[Multi-sites en enseignement supérieur](#page-higher-ed.multi-site).

#### Salles — les locaux

Les [salles](#page-glossary.classroom) sont rattachées à un site, qui
porte leur réalité physique : lieu, grille horaire, temps de trajet.
Une salle porte :

- un **nom**,
- une **capacité** (nombre d'élèves ; champ critique pour le
  solveur),
- éventuellement une **[spécialisation](#page-glossary.classroom-specialization)**
  (libellé libre : chimie, informatique, sport…),
- éventuellement un **nombre maximal de classes simultanées**, pour
  les **[grandes salles](#page-glossary.large-room)** capables d'accueillir
  plusieurs séances en parallèle (salle d'examen, gymnase, piscine,
  espace extérieur) ; ce champ n'apparaît qu'une fois une spécialisation
  posée,
- éventuellement des **tags** ou commentaires libres,
- éventuellement un **bâtiment**,
- éventuellement des **horaires d'ouverture** spécifiques.

##### Multi-salles : un cours dans plusieurs salles

Omniscol **supporte** l'affectation de plusieurs salles à un même
cours.

Cas d'usage :

- **Examens en amphithéâtres dédoublés** — un examen de 200 candidats
  réparti en trois amphithéâtres (capacité 70 + 60 + 80) avec un seul
  intervenant responsable. La capacité totale est calculée comme la
  **somme** des salles affectées.
- **Cours magistral retransmis** — un CM dans un amphithéâtre principal,
  retransmis par visio dans une salle satellite (sur un autre site,
  voire dans une promotion entièrement à distance).
- **TP dédoublés** — un TP de 30 étudiants réparti dans deux salles
  voisines (15 + 15) avec le même professeur qui circule.

Limitation : si la somme des capacités reste **inférieure** à
l'effectif du groupe, Omniscol affiche un conflit. C'est à
l'administrateur de décider de le résoudre (en ajoutant une salle,
en réduisant le groupe, ou en acceptant le conflit s'il est délibéré
— par exemple, si on sait que tous les inscrits ne viendront pas).

##### Spécialisations de salles

Les **[spécialisations](#page-glossary.classroom-specialization)** (chimie,
informatique, sport, gymnase, multimédia, salle de devoirs surveillés)
sont des libellés **libres** optionnels définis par l'établissement. Vous créez
les spécialisations qui correspondent à votre nomenclature, pour discriminer
certaines salles qui sont dédiées à des cours spécifiques (un gymnase pour du
sport, une piscine pour la natation, un laboratoire pour un TP de chimie, etc.).

Le solveur respecte strictement les spécialisations : si une matière
requiert « chimie », seules les salles portant exactement cette
spécialisation seront utilisées.

Chaque salle porte **au plus une spécialisation**. Pour une salle
polyvalente entre deux usages spécialisés, utilisez un libellé
englobant (par exemple « informatique-multimédia ») et associez ce
même libellé aux matières concernées. Voir
[Spécialisations de salles](#page-core-concepts.classroom-specializations).

##### Salle dédiée à une classe

Beaucoup de configurations primaire/secondaire associent une salle à
chaque classe (les cours s'y déroulent par défaut, seuls les professeurs
se déplacent). C'est configurable sur la classe — le moteur priorise
alors cette salle pour les cours de la classe (avec une priorité
supérieure à la salle préférée du professeur, si elle est définie).

##### Salles dans deux sites virtuels

Si vous avez deux sites virtuels pour un lieu physique unique
(typique d'un collège + lycée partageant les locaux), une salle ne
peut appartenir qu'à un seul site à la fois. Pour la rendre utilisable
dans les deux contextes, dupliquez-la dans les deux sites et
renseignez des horaires d'ouverture exclusifs (« libre le matin pour
le collège, l'après-midi pour le lycée ») pour éviter les
double-attributions.

#### Ressources — les équipements mobiles

Une [ressource](#page-glossary.resource) est un équipement **mobile** non
attaché à une salle particulière : trois vidéoprojecteurs portables,
une valise de tablettes, un kit de microphones, etc.

Chaque ressource porte :

- un **nom**,
- une **quantité disponible** (la valise compte pour 1, pas pour 30
  — saisissez le nombre de valises, pas de tablettes individuelles).

Le solveur garantit qu'à un même créneau, le nombre de cours
demandant la ressource ne dépasse pas la quantité disponible. Inutile
de modéliser les ressources dont vous avez « toujours assez » — ne
le faites que pour les vraies limites partagées.

#### Cas particulier — visioconférence et liens par cours

Le format d'une séance — présentiel, distanciel, hybride ou autonomie —
est porté par sa **[modalité](#page-glossary.lesson-modality)** (Premium) :
c'est elle qui détermine si la séance mobilise une salle physique. Pour un
cours en distanciel ou hybride, vous pouvez attacher un
**lien de visioconférence** au cours (Zoom, Teams, Meet…). Voir
[Liens de visioconférence par cours](#page-higher-ed.videoconference-links).

C'est plus fin que le lien de visioconférence sur la classe, qui est un
lien général par défaut sur toutes les séances.

#### Voir aussi

- [Spécialisation de salle](#page-core-concepts.classroom-specializations)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [Examens multi-salles dans le supérieur](#page-higher-ed.multi-room-exams)
- [Liens de visioconférence par cours](#page-higher-ed.videoconference-links)
- [Modalité](#page-glossary.lesson-modality)

<a id="page-core-concepts.timetable-grid"></a>

### 2.11  Grille horaire, créneaux et durées

*Source: `help/fr/core-concepts/timetable-grid.md` · id: core-concepts.timetable-grid · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-07-17*

La **grille horaire** décrit les créneaux d'un site : heures de début,
heures de fin, pauses, pause méridienne et fermetures. Elle sert à la
fois à l'affichage, au contrôle des disponibilités et à la génération
automatique.

#### Stockage standard : le créneau, pas l'heure écrite

Par défaut, une séance positionnée est rattachée à un **créneau de la
grille**. Omniscol conserve l'emplacement dans la grille, puis recalcule
les heures affichées à partir de la grille du site.

Conséquence utile : si la sonnerie de début passe un jour de `08:15` à
`08:10`, les séances placées sur ce créneau suivent la nouvelle grille sans
avoir à modifier chaque séance une par une.

<a id="page-core-concepts.timetable-grid--display-mode"></a>
#### Mode d'affichage de la grille

Le **mode d'affichage** détermine la présentation de la colonne des heures,
sans rien changer au placement des séances :

- **Heures de cours** — chaque ligne porte l'horaire
  réel du créneau (8 h 15 – 9 h 10, 9 h 15 – 10 h 15…), tel que défini par la
  grille du site.
- **Périodes** — chaque ligne porte un numéro de période
  (P0, P1, P2…), convention répandue dans les établissements anglo-saxons.
- **Agenda** — affichage calendaire à heures rondes
  (8 h, 9 h, 10 h…), indépendant de la grille : chaque séance se place à son
  heure réelle sur un fond horaire continu.

<a id="page-core-concepts.timetable-grid--slot-duration"></a>
#### Durée du créneau horaire

La **durée du créneau horaire** est la durée de référence d'un créneau.
Elle peut inclure l'inter-cours si l'établissement raisonne ainsi.

Exemples :

- cours de 55 minutes avec 5 minutes d'inter-cours : durée de créneau de
  `60` minutes ;
- cours de 1h30 réguliers : durée de créneau de `90` minutes ;
- cours majoritairement d'une heure, avec quelques cours de 1h30 : durée
  de créneau de `60` minutes et fractionnement adapté.

Cette durée sert aux volumes horaires configurés et à la génération. Les
heures réelles de début et de fin peuvent varier dans la grille : une
récréation peut faire qu'un créneau affiché dure 55 minutes tout en
restant rattaché à une durée de référence de 60 minutes.

Ce réglage se définit sur
l'onglet **Général** de l'édition de l'EDT (voir [Paramètres généraux](#page-timetables.general-settings)).

Les durées typiques, par ordre de popularité, sont : 60, 45, 50, 120, 90, 30, 180.

Parfois, dans les établissements du supérieur, les séances font toujours plusieurs
heures, mais les cours peuvent commencer aléatoirement à 8h ou 9h, ou alors
ils peuvent durer 6 ou parfois 5 heures. Dans ce cas, c'est le plus grand commun
diviseur qui prévaut, et ce sera généralement une durée de créneau de 60 minutes.

<a id="page-core-concepts.timetable-grid--splitting"></a>
#### Fractionnement du créneau horaire

Le **fractionnement du créneau horaire** indique en combien de sous-parties
la durée du créneau peut être découpée. C'est le pas horaire minimal. Voici quelques exemples :

- `1` : uniquement des cours de la durée complète du créneau ;
- `1/2` : pas de 30 minutes si la durée du créneau est 60 minutes ;
- `1/4` : pas de 15 minutes si la durée du créneau est 60 minutes.

Choisissez la granularité la plus simple qui couvre les besoins réels.
Un fractionnement plus fin permet plus de souplesse, mais augmente le
nombre de possibilités à tester lors de la génération.

Dans l'interface, ce réglage s'ajuste sur l'onglet **Général** via
Fractionnement du créneau horaire.

Dans la plupart des systèmes scolaires du monde, il n'y a pas de subdivision de
la grille horaire. En France, c'est généralement 1/2 dans le secondaire
(quelques séances durent 1h30). Dans certains organismes de formation,
on peut descendre à 10 minutes de précision : c'est donc une durée de créneau
de 60 minutes mais 1/6 en fractionnement.

#### Position et durée : un stockage en pas horaires

Une séance n'est pas enregistrée avec des heures « en dur » mais comme un
**nombre de pas horaires** sur la grille. Le **pas** est la durée du créneau
divisée par le fractionnement : une durée de créneau de 60 minutes avec un
fractionnement 1/2 donne un pas de 30 minutes. Une séance d'1 h occupe alors
2 pas, une séance d'1h30 en occupe 3.

Trois notions cohabitent, sans se confondre :

- la **durée de référence** (la durée du créneau) sert à compter les volumes
  horaires et à **afficher la durée** d'une séance ;
- les **heures réelles** affichées (début et fin) viennent de la **grille du
  site**, créneau par créneau ;
- le **stockage** se fait en **pas horaires**, à la finesse du fractionnement.

C'est pourquoi un même créneau peut afficher 8 h 15 – 9 h 10 (heures réelles)
tout en comptant pour 1 h (durée de référence).

#### Interdictions globales de créneaux

Certains créneaux doivent rester **interdits pour tout l'établissement** :
mercredi après-midi, créneau de réunion, plage réservée. Ces interdictions se
posent **directement sur la grille du site**, en marquant le créneau comme
**indisponible** : aucune séance n'y sera placée, ni à l'affichage ni à la
génération.

C'est une **contrainte horaire portée par la grille**. Le même mécanisme permet
aussi, sur les comptes Premium, des contraintes souples (créneaux à éviter sans
les fermer). Voir [Contraintes horaires (système général)](#page-core-concepts.time-constraints).

<a id="page-core-concepts.timetable-grid--lunch"></a>
#### Pause méridienne et décalages

La pause déjeuner se décrit par une **plage** (par exemple 12 h 00 – 14 h 00) et
une **durée** de déjeuner à préserver. Quand la durée à préserver est **plus
courte** que la plage, Omniscol autorise un cours **sur une partie** de la pause,
tant que la durée de déjeuner reste possible — avant ou après le cours intercalé.
Il est très fréquent que la pause déjeuner dure deux heures, mais qu'il soit permis
de positionner une séance d'une heure, généralement des options où toute la classe
n'est pas présente, ou des cours transverses où il est complexe de synchroniser
plusieurs classes. Les parties de la classe n'ayant pas cours ne sont pas considérés
comme étant en permanence (pour l'algorithme, ce n'est pas un trou).

La pause méridienne est aussi le seul cas de figure où un créneau irrégulier est
traité comme un ensemble de pas horaire différent. Avec un pas horaire de 30 minutes,
une durée de créneau de 1h et une plage de pause de 12 h 00 à 13 h 30,
le logiciel considère qu'il s'agit de 3 x 30 minutes. On peut déclarer soit un
créneau unique de 1h30, soit 1h + 30 minutes, soit 30 minutes + 1h, peu importe.
Dans ce cas de figure, les séances de l'après-midi sont décalées d'une demi-heure.
Si l'on déclare alors une durée de déjeuner d'une demi-heure minimale, cela laisse
la possibilité de poser une séance d'une heure sur la pause, laissant les élèves
concernés déjeuner soit avant, soit après le cours.

On peut aussi indiquer que la **cantine ouvre juste avant** la pause officielle :
un « trou » sur ce créneau ne compte alors pas comme un temps perdu pour les
élèves.

L'important est de modéliser la règle voulue : créneaux ouverts, créneaux
fermés, pause méridienne flexible, disponibilités ou indisponibilités. La grille
doit refléter ce que l'établissement accepte réellement.

<a id="page-core-concepts.timetable-grid--staggered-lunch"></a>
##### Décaler les repas par niveau pour lisser la cantine

Quand la cantine ne peut pas absorber tout l'établissement d'un coup, on répartit
les niveaux sur **deux services** successifs. La grille ne porte **qu'une seule**
pause méridienne commune ; le décalage se règle ensuite **classe par classe** avec
les contraintes horaires.

1. Sur la grille du site, déclarez la pause méridienne sur **toute** la plage —
   par exemple **12 h – 14 h** — avec une **durée de déjeuner à préserver d'une
   heure**. Prise isolément, chaque classe pourrait alors déjeuner soit sur
   12 h – 13 h, soit sur 13 h – 14 h.
2. Pour **fixer** le service de chaque niveau, ouvrez les contraintes horaires de
   la classe (Contraintes horaires de la classe) et peignez en
   **Indisponible** (noir) le demi-créneau réservé à son repas. Le solveur
   n'y pose aucune séance : ce moment est garanti pour le déjeuner, et les cours
   de la classe se reportent sur l'autre demi-créneau.

Pour deux services :

- **6e, 5e, 4e** — indisponibles sur **12 h – 13 h** : elles déjeunent au premier
  service, leurs cours se posent sur 13 h – 14 h.
- **3e, 2de** — indisponibles sur **13 h – 14 h** : elles déjeunent au second
  service, leurs cours se posent sur 12 h – 13 h.

La cantine reçoit ainsi deux flux distincts au lieu d'un seul. Le même principe
s'étend à trois services ou plus : élargissez la plage méridienne, puis peignez
pour chaque niveau le demi-créneau de repas qui lui revient. L'éditeur de
contraintes est détaillé dans [Contraintes horaires (système général)](#page-core-concepts.time-constraints).

> _Premium_

#### Horaires personnalisés sur une séance

Une séance peut recevoir un **horaire personnalisé** : début et fin précis,
qui ne correspondent pas forcément aux bornes exactes d'un créneau. Ce
cas existe dans tous les types d'EDT.

La séance s'affiche hors grille, avec ses heures réelles : elle peut
commencer ou se terminer en dehors des bornes du créneau affiché.
Omniscol utilise ces heures personnalisées pour calculer son chevauchement
réel. Toute entité affectée au cours — professeur, salle, classe, groupe
ou ressource — est considérée occupée dès que l'horaire personnalisé mord
sur un créneau.

Pour la génération automatique, une séance avec horaire personnalisé est
traitée comme indéplaçable : sa position est verrouillée automatiquement.

> _Premium_

#### Classe hors grille

La **classe hors grille** est un autre cas : les cours de la classe sont
stockés avec des horaires précis, indépendamment de la grille du site.
Cette fonction ne concerne que les EDT de type calendrier.

Elle sert surtout aux formations continues ou programmes très souples qui
partagent les locaux et les professeurs avec la formation initiale, sans
suivre la même grille horaire. L'établissement choisit alors un pas
horaire par défaut, par exemple le quart d'heure, et les séances sont
stockées avec leurs heures de début et de fin.

> _Premium_

#### Durées personnalisées

Un cours peut aussi porter des **durées personnalisées** :

- **Durée calculée** : durée déduite des heures personnalisées du cours ;
- **Durée réelle** : durée utilisée en priorité dans les tableaux de
  bord ;
- **Durée comptabilisée** : durée utilisée pour la facturation ou la
  paie du professeur.

Exemple : un examen occupe une salle de `08:30` à `11:30` parce qu'il
faut préparer la salle avant et la libérer après. Le tableau de bord peut
ne compter que 2h d'examen en durée réelle, tandis que la durée
comptabilisée du professeur surveillant peut être plus élevée si l'établissement y
intègre une compensation de correction.

#### Voir aussi

- [Paramètres généraux](#page-timetables.general-settings)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [Séances hors grille](#page-timetables.off-grid-lessons)

<a id="page-core-concepts.classroom-specializations"></a>

### 2.12  Spécialisations de salles

*Source: `help/fr/core-concepts/classroom-specializations.md` · id: core-concepts.classroom-specializations · Updated: 2026-06-13*

Toutes les salles ne se valent pas : un laboratoire de chimie ne peut
pas accueillir un cours de sport, une salle informatique n'a de sens que
pour les matières qui utilisent ses postes, un gymnase est réservé au
sport. La **spécialisation de salle** dans Omniscol permet de déclarer
ces affinités pour que la génération automatique et les diagnostics
respectent les contraintes physiques.

#### Comment ça marche : un libellé partagé entre salles et matières

La spécialisation repose sur un **libellé libre**, défini par
l'établissement selon sa nomenclature, qui relie deux déclarations :

- **Côté salle** — chaque salle porte **au plus une spécialisation**
  (« chimie », « informatique », « gymnase »…). La plupart des salles
  n'en ont aucune.
- **Côté matière** — une matière affectée à une classe peut exiger une
  salle spécialisée via son champ Salle spéciale.
  La valeur doit correspondre **exactement** au libellé porté par au
  moins une salle.

Le lien est strict dans les deux sens : une matière qui exige
« chimie » n'est placée que dans une salle portant ce libellé, et une
salle spécialisée est **réservée** aux matières qui demandent son
libellé — elle n'est pas utilisée pour les cours ordinaires.

La **capacité** de la salle reste une vérification distincte : quelle
que soit la spécialisation, l'effectif prévu doit tenir dans la salle.

#### Effet sur la génération

Lors de la génération automatique, l'algorithme ne considère, pour
chaque cours, que les salles **compatibles** : libellé de
spécialisation exigé par la matière (le cas échéant) et capacité
suffisante pour l'effectif.

Si aucune salle compatible n'est disponible, la génération le signale
et le diagnostic identifie la matière, la classe et la spécialisation
concernées. À vous d'arbitrer : ajouter le libellé à une autre salle,
retirer l'exigence portée par la matière, ou revoir les effectifs.

#### Salles polyvalentes

Une salle ne porte qu'**un seul** libellé de spécialisation. Pour une
salle qui doit servir deux usages spécialisés — par exemple
l'informatique et le multimédia — créez un libellé englobant
(« informatique-multimédia ») et indiquez ce même libellé sur toutes
les matières concernées.

#### Salles génériques

Les salles **génériques** (sans spécialisation) accueillent toutes les
matières qui n'exigent pas de salle spécialisée. C'est le cas le plus
courant ; ajoutez une spécialisation uniquement quand vous voulez
restreindre.

#### Grande salle : plusieurs séances à la fois

Une salle spécialisée accueille normalement **une séance à la fois**.
Vous pouvez en faire une **[grande salle](#page-glossary.large-room)** en
renseignant son **nombre maximal de classes simultanées** : elle accueille
alors plusieurs séances différentes en parallèle (professeurs et groupes
distincts), tant que la somme des effectifs tient dans sa capacité. C'est
le cas d'une salle d'examen, d'un gymnase, d'une piscine ou d'un espace
extérieur. Ce réglage n'apparaît **qu'après** avoir donné une
spécialisation à la salle.

#### Bonnes pratiques

- **Démarrez large** — au moment du paramétrage initial, ne mettez
  pas trop de contraintes, vous risquez de bloquer la génération.
- **Affinez après le premier diagnostic** — quand vous voyez le
  résultat de la génération, vous identifiez les cas où une
  spécialisation manquante aurait évité un mauvais placement.
- **Documentez côté équipe** — les professeurs et les agents de salle
  doivent comprendre pourquoi telle salle est restreinte ; sinon
  ils contournent à la main.

#### Procédure — Paramétrer un laboratoire de SVT

1. **Paramétrer une salle spécialisée** (laboratoire de SVT, salle
   informatique, gymnase) pour que la génération automatique ne s'y
   trompe pas.
2. **Ouvrez la salle** dans l'écran Sites / Salles / Ressources de
   l'EDT. Renseignez sa **spécialisation** : choisissez un libellé
   existant ou créez-le (par exemple `SVT`). Une salle ne porte qu'un
   seul libellé.
3. **Capacité** : nombre de places. La génération vérifie que
   l'effectif du groupe affecté reste ≤ capacité. ⚠ Soyez réaliste —
   trop strict bloque la génération, trop large mène à des
   sur-réservations.
4. **Côté matière** : sur la ou les matières concernées de chaque
   classe (Sciences de la vie et de la terre, Biologie…), renseignez
   le champ Salle spéciale avec le même libellé
   `SVT`. La correspondance doit être exacte — c'est elle qui réserve
   la salle à ces matières.
5. **Démarrez large** au paramétrage initial — moins de contraintes
   = moins de risque de bloquer la génération. Vous **affinerez après
   le premier diagnostic** quand vous verrez les cas où une
   spécialisation manquante aurait évité un mauvais placement.
6. **Pour une salle non restreinte** (générique), ne renseignez aucune
   spécialisation : la salle accueille alors toutes les matières sans
   exigence particulière. C'est le défaut le plus simple — ajoutez la
   spécialisation uniquement quand vous voulez restreindre.

#### Voir aussi

- [Spécialisation de salle](#page-glossary.classroom-specialization)
- [Grande salle](#page-glossary.large-room)
- [Sites, salles, ressources, multi-salles](#page-core-concepts.sites-rooms-resources)
- [Gérer les matières](#page-admin.subjects)

<a id="page-core-concepts.wishes-and-availability"></a>

### 2.13  Disponibilités et contraintes horaires des professeurs

*Source: `help/fr/core-concepts/wishes-and-availability.md` · id: core-concepts.wishes-and-availability · Updated: 2026-06-21*

Les **disponibilités** d'un professeur indiquent au logiciel les créneaux qui
sont **impossibles**, **indésirables** ou **préférés** pour lui. Le solveur
respecte strictement les impossibilités et tente d'optimiser les autres
préférences. On parle aussi de **vœux** dans l'éducation secondaire — c'est le
même concept.

#### Quatre niveaux

| Couleur | Signification | Effet |
| --- | --- | --- |
| **Noir** | Impossible | Contrainte dure : le solveur ne place jamais une séance là |
| **Rouge** | Indésirable | Contrainte molle : le solveur évite si possible |
| **Vert** | Préféré | Le solveur favorise ce créneau si plusieurs sont valides |

Une plage non-marquée est **neutre** — disponible sans préférence.

#### Activer la saisie des disponibilités

Le mode de saisie se choisit dans les
[paramètres généraux](#page-admin.parameters), sur le réglage
Disponibilités des professeurs :

- **Désactivé** — pas de saisie de disponibilités par les professeurs.
- **Hebdomadaire** — disponibilités saisies sur une semaine type. Pour les
  EDT hebdomadaires et cycliques.
- **Calendrier** — disponibilités saisies date par date.
  Pour les EDT calendriers, sur les comptes Premium.
- **Calendrier + Hebdomadaire** — les deux saisies
  coexistent, sur les comptes Premium, quand des EDT récurrents et
  calendaires cohabitent, ou tout simplement pour laisser une possibilité
  plus simple aux professeurs d'indiquer qu'ils ne sont jamais disponibles
  un certain jour de la semaine, peu importe la date (des exceptions peuvent
  cependant être indiquées).

#### Saisie par le professeur lui-même

Les professeurs peuvent saisir leurs propres disponibilités depuis leur compte
[heart]. Gain de temps majeur pour
l'administration.

Si l'école ne souhaite pas que le professeur se connecte, vous pouvez aussi lui
**envoyer un lien de partage** direct vers son propre écran de disponibilités, en mode édition,
généré depuis Télécharger avec date d'expiration.
Le professeur saisit ses disponibilités sans même avoir l'autorisation de se connecter
à son compte.

En pratique, ce lien est souvent envoyé dans un message personnalisé
avec les matières prévues, le volume horaire, les déplacements ou
contraintes particulières, et une date limite explicite. Omniscol ne
fait pas de publipostage dédié pour ce cas : chaque lien s'insère dans la
communication déjà préparée pour le professeur correspondant.

#### Validation administrative dans l'emploi du temps

Dans un emploi du temps hebdomadaire :

- Les disponibilités saisies par le professeur sont par défaut en **attente de
  validation**.
- Le planificateur vérifie et **valide** (potentiellement après modification —
  par exemple en supprimant une disponibilité trop contraignante, ou en changeant le noir en rouge).
- Toute modification ultérieure du professeur passe à nouveau en attente.

Dans le secondaire, les disponibilités peuvent être ouvertes plusieurs semaines avant la planification.
De fait, ils se saisissent sur une grille horaire générique, et la phase de validation
adapte à la vraie grille horaire des cours de l'emploi du temps : la phase de validation
sert aussi à adapter correctement cette translation.

Les disponibilités des professeurs virtuels sont directement enregistrées. Cela permet, par
exemple, de donner par défaut le mercredi.

En mode calendrier ([Premium](#page-overview.plans-and-options)) :

- Les disponibilités sont **consolidées en temps réel**.
- Les conflits sont détectés directement.

En effet, on considère qu'en mode calendrier, il y a moins de contraintes sur la
grille (puisqu'il existe une multitude de dates), et les professeurs sont
autonomes, voire externes à l'école, cumulant les postes et les responsabilités :
ce n'est pas un vœu mais une disponibilité réelle.

De manière exceptionnelle, les données des disponibilités des professeurs en mode
calendrier sont donc modifiables à la fois depuis l'écran du module d'administration
et depuis un emploi du temps.

#### Conflit de disponibilités à la génération

Si les disponibilités d'un professeur sont **trop restrictives** pour permettre de
positionner ses séances, la génération échoue avec un diagnostic
explicite. Voir [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

Solutions :

- Assouplir les disponibilités (passer une plage en rouge plutôt que noir).
- Redistribuer les cours (un professeur avec 18h et seulement 12 créneaux
  libres ne peut pas s'en sortir).
- Recruter (cas extrême — mais parfois c'est le bon diagnostic).

#### Procédure — Collecter et valider les disponibilités des professeurs

1. **Les disponibilités** indiquent au solveur quels créneaux sont **impossibles**
   (noir — contrainte dure), **indésirables** (rouge — molle)
   ou **préférés** (vert). Le solveur respecte strictement le noir et
   optimise les autres.
2. **Activez le mode de saisie** dans les paramètres généraux
   (réglage Disponibilités des professeurs) : **désactivé**, **hebdomadaire**
   (disponibilités sur semaine type, mode classique), ou **calendrier** (sur les
   comptes Premium, disponibilités date par date — cumulable avec
   l'hebdomadaire). Choisissez selon votre type d'EDT.
3. **Ouvrez la saisie** aux professeurs. Deux options :

   - ils se connectent et saisissent depuis leurs comptes
     [heart] ;
   - vous générez un **lien de partage direct** via
     Télécharger avec date
     d'expiration — pas besoin que le professeur se connecte à son
     un compte — et vous l'envoyez à chaque personne concernée.
4. **Côté professeur** : il se connecte ou clique sur le lien, voit sa
   grille, marque les créneaux en noir (impossible), rouge (indésirable),
   vert (préféré). Sauvegarde directe. Le geste est rapide.
5. **Validation côté administrateur (mode hebdomadaire)** : les disponibilités saisies arrivent
   en **attente de validation**. Vérifiez puis validez — vous pouvez
   modifier en passant. Toute modification ultérieure du professeur repasse
   en attente. En mode calendrier, c'est consolidé en temps réel.

   ⚠ Si un professeur marque trop de noir, le solveur ne saura pas
   positionner ses séances — le diagnostic le signalera (voir
   [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)).

#### Voir aussi

- [Contraintes horaires (système général)](#page-core-concepts.time-constraints)
- [Disponibilités des professeurs (vœux)](#page-glossary.wishes)
- [Incompatibilité (entre matières)](#page-glossary.incompatibility)
- [Solveur](#page-glossary.solver)
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes)

<a id="page-core-concepts.time-constraints"></a>

### 2.14  Contraintes horaires : classes, matières, groupes, salles et grille

*Source: `help/fr/core-concepts/time-constraints.md` · id: core-concepts.time-constraints · Audience: admin · Updated: 2026-06-27*

Les **contraintes horaires** indiquent au solveur les créneaux à **éviter** ou à
**privilégier**. Le même éditeur sert pour les **disponibilités d'un professeur**
et pour les contraintes portées par une **classe**, une **matière**, un
**groupe**, une **salle** ou la **grille** elle-même. Chaque surface n'expose que
les niveaux qui ont un sens pour elle.

Pour le détail du cas professeur (saisie par le professeur, lien de partage,
validation), voir [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability).

#### Les quatre niveaux

Un créneau se peint avec l'un de ces niveaux, repérés par une couleur :

| Couleur | Niveau | Effet sur la génération |
| --- | --- | --- |
| ⚫ **Noir** | Indisponible | Contrainte dure : le solveur ne place jamais de séance là |
| 🔴 **Rouge** | Non souhaité | Contrainte souple forte : le solveur évite autant que possible |
| 🟠 **Orange** | Peu souhaité | Contrainte souple légère : à éviter si le reste le permet |
| 🟢 **Vert** | Préféré | Préférence positive : le solveur favorise ce créneau |

Un créneau non peint est **neutre**. La [eraser] Gomme
efface un niveau posé et revient au neutre.

#### Qui porte quels niveaux

Tous ne donnent pas accès aux quatre niveaux :

- **Professeur** — Indisponible, Non souhaité, Préféré
  (noir, rouge, vert). Ce sont ses **disponibilités**.
- **Classe** (Contraintes horaires de la classe), **matière**
  ([clock]), **salle**
  (Disponibilités) — Indisponible et
  Non souhaité (noir, rouge). On y décrit les créneaux où l'on ne veut
  pas, ou plutôt pas, que la classe travaille / la matière soit posée / la salle
  soit utilisée.
- **Groupe** (Disponibilités) — mêmes niveaux noir et
  rouge, fonction Premium (voir plus bas).
- **Grille horaire** (le site) — c'est la **seule** surface qui propose le
  niveau **orange** (Peu souhaité). Voir ci-dessous.

L'accès se fait partout via la **petite horloge** [clock] posée sur
l'entité (sur chaque classe, chaque matière de la classe, chaque salle…).
L'horloge se **colore** quand des contraintes sont déjà saisies.

#### Contraintes posées sur la grille

Sur la grille d'un site, on peint directement les **contraintes globales**,
valables pour **tout l'établissement** :

- peindre un créneau en **noir** le **ferme** pour tout le monde — c'est ainsi
  qu'on interdit globalement un créneau (mercredi après-midi, pause, créneau de
  réunion…).

> _Premium_

En Premium, la grille accepte en plus des contraintes **souples** : **rouge**
(Non souhaité) et **orange** (Peu souhaité), pour décourager un
créneau sans le fermer.

Voir [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid) pour la structure de la grille
(créneaux, durées, pauses).

#### L'éditeur de contraintes

L'éditeur est commun à toutes les entités, et tout se fait au clic.

**Choisissez d'abord un niveau** dans la barre en haut (les niveaux
proposés dépendent de l'entité). Il devient le « pinceau » actif et
s'applique à chaque créneau que vous touchez :

- **Cliquez une cellule** pour peindre ce seul créneau ; **cliquez puis
  glissez** sur plusieurs cellules pour les peindre d'un seul geste.
- **Cliquez l'en-tête d'un jour** pour peindre **toute la colonne** (la journée
  entière) ; **cliquez l'en-tête d'une heure** pour peindre **toute la ligne**
  (ce créneau sur tous les jours). C'est le moyen le plus rapide de couvrir de
  larges plages.
- La [eraser] Gomme est un pinceau comme les autres :
  sélectionnez-la, puis cliquez ou glissez pour revenir au neutre.

##### Semaine type et vue calendaire

Pour un emploi du temps hebdomadaire ou cyclique, les contraintes se saisissent
sur une **semaine type**.

> _Premium_

Pour un emploi du temps de type calendrier (Premium), une barre de navigation
permet de basculer entre **semaines**, **mois**, **toute l'année** et **semaine
type** : on saisit des contraintes datées, et on peut aussi déclarer une
contrainte récurrente sur la semaine type. Les
[fenêtres de dates](#page-timetables.date-windows) restreignent en plus les périodes
où certains cours peuvent être planifiés.

Sur la **semaine type**, chaque créneau **consolide** les contraintes de toutes
les dates correspondantes de la période (tous les lundis de 8 h, par exemple).
Quand ces dates divergent, le créneau affiche un **bandeau de couleurs
proportionnel** — la largeur de chaque couleur reflète le nombre de jours
concernés — et son **info-bulle** donne le décompte par niveau (combien de jours
indisponibles, non souhaités, etc.). **Cliquer sur ce créneau force le niveau
choisi sur toutes ces dates** d'un coup : c'est la façon générique de trancher
pour toute la journée type.

#### Options complémentaires

> _Premium_

Sous l'éditeur, une contrainte de classe ou de groupe peut porter des
**plafonds** (Premium) :

- Nombre d'heures de cours maximal dans la journée — au format `HH:MM` ;
- Nombre d'heures de cours maximal dans la semaine — en mode calendrier.

Le solveur respecte ces plafonds comme des contraintes d'optimisation.

Côté professeur, un **commentaire** libre permet de communiquer une remarque
sur ses disponibilités (déplacements, contrainte particulière).

#### Héritage entre niveaux

> _Premium_

Un **groupe** hérite des contraintes de sa **classe** et de ses **groupes
parents** (voir [Hiérarchie de groupes](#page-core-concepts.group-hierarchy)). Quand il faut **autoriser**
localement un créneau malgré une contrainte héritée, le niveau
**Cours autorisés** neutralise la contrainte héritée **sans modifier la
source**.

#### Effet à la génération

Les contraintes **noires** sont **bloquantes** : une séance ne sera jamais
posée sur un créneau indisponible. Les niveaux rouge et orange sont des
**malus** que le solveur cherche à minimiser ; le vert est un **bonus**. Si les
contraintes rendent une séance impossible à placer, la génération le signale —
voir [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Voir aussi

- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Hiérarchie de groupes](#page-core-concepts.group-hierarchy)
- [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)
- [Fenêtres de dates](#page-timetables.date-windows)
- [Disponibilités des professeurs (vœux)](#page-glossary.wishes)

<a id="page-core-concepts.school-year"></a>

### 2.15  Année scolaire, semaines alternées, vacances

*Source: `help/fr/core-concepts/school-year.md` · id: core-concepts.school-year · Plan: standard · Updated: 2026-05-12*

L'**année scolaire** est le cadre temporel dans lequel se déroulent
les emplois du temps. Elle pose trois questions structurantes : quand
commence et finit l'année, quand sont les vacances, et — si
l'établissement utilise des semaines alternées — comment leur
alternance se cale sur ce calendrier. On parle aussi de calendrier
académique.

#### Année scolaire et bornes

Une année scolaire a une **date de début** et une **date de fin**.
Sur cette plage, les semaines sont numérotées. La publication d'un
EDT s'applique à un sous-ensemble ou la totalité de ces semaines. Un
EDT de type calendrier peut même être publié sur une période supérieure
à l'année scolaire (typiquement un EMBA en 18 mois), mais seules les dates
déclarées sur les années scolaires seront prises en compte.

Sans année scolaire active, Omniscol ne déploie pas les modules
quotidiens (emploi du temps, tableau de bord, absences) — c'est un
prérequis. Voir [Année scolaire et vacances](#page-admin.school-year).

Les années scolaires ne peuvent pas partager de dates. Généralement, une période
de vacances les sépare, mais on peut tout à fait les enchaîner. Certains
établissement de formation ne sont pas soumis à un cycle académique :
l'année scolaire est alors simplement l'année civile, du 1er janvier au
31 décembre.

#### Vacances

Les **vacances** sont des plages de dates **inactives** : pas de
cours, pas d'évènements, pas de comptabilisation. Deux sources :

- **Vacances communes** — issues du calendrier officiel du pays
  (Toussaint, Noël, hiver, printemps). Omniscol peut vous en
  proposer selon le pays configuré, à vous de faire votre choix
  d'importation.
- **Vacances spécifiques** — propres à l'établissement (journée
  pédagogique, examens, pont local). Vous les ajoutez à la main.

Les deux types se cumulent indistinctement. En revanche, les
vacances sont globales à tout l'établissement. Si cela ne concerne
que certaines classes, utilisez une absence de classe, ou une
période d'indisponibilité de la classe (potentiellement réutilisables
pour plusieurs classes, par exemple qui se trouvent à l'étranger).

#### Semaines alternées (A/B et au-delà)

Certaines écoles ont des cours qui ne tournent qu'une semaine sur
deux (voire plus) : EPS en double séance, vie de classe en alternance, options.
Omniscol gère cela par **comptage des semaines** : les semaines de
l'année ne sont pas étiquetées, elles sont comptées en continu. Chaque
cours, lui, tourne sur son propre cycle — une semaine sur deux (A/B),
une sur trois (A/B/C), etc. Un même créneau accueille alors des séances
différentes selon le rang de la semaine dans le cycle, par exemple une
séance les semaines impaires et une autre les semaines paires, au même
jour et à la même heure. Comme le calcul est dynamique, des cours en
A/B et des cours en A/B/C peuvent coexister dans une même classe.

L'**activation** des semaines alternées et le **format d'affichage** de
l'alternance (`A/B`, `1/2`…) se règlent dans les
[paramètres généraux](#page-admin.parameters). L'écran de l'[année
scolaire](#page-admin.school-year) sert ensuite à **forcer, sur la frise,
les points où le comptage repart en semaine A** — par exemple pour
reprendre proprement après des vacances ; pour rester lisible, la frise
n'affiche l'alternance qu'en A/B. Pour **déclarer des séances alternées**
sur un créneau, voir [Cours complexes](#page-core-concepts.complex-lessons).

#### Plusieurs années en parallèle

Omniscol gère **plusieurs années scolaires en parallèle** dans le
même compte : par exemple l'année courante 2026-2027 et l'année
suivante 2027-2028 en préparation. La notion d'**année scolaire
courante** détermine ce que voient les utilisateurs au
quotidien ; les autres restent accessibles en gestion / consultation
administrative.

#### Voir aussi

- [Année scolaire](#page-glossary.school-year)
- [Cours alternés](#page-glossary.alternate-lessons)
- [Année scolaire et vacances](#page-admin.school-year)
- [Publication d'un EDT](#page-timetables.publication)
- [Cours complexes](#page-core-concepts.complex-lessons)

<a id="page-core-concepts.timeline-navigation"></a>

### 2.16  Ligne de temps et navigation temporelle

*Source: `help/fr/core-concepts/timeline-navigation.md` · id: core-concepts.timeline-navigation · Updated: 2026-05-12*

Tous les écrans Omniscol qui affichent un planning ou des
statistiques portent une **ligne de temps** (la « banderole »)
en haut de page. C'est avec elle qu'on **navigue dans le temps** :
choisir l'année scolaire, la période affichée, et — sur certains
écrans — passer d'une vue semaine à une vue mois ou année.

Cette page explique les principes communs ; chaque module a ses
spécificités qu'on retrouve sur sa page dédiée.

#### Boutons de la ligne de temps

La ligne de temps expose des **flèches gauche / droite** des deux
côtés opposés :

- **flèche gauche** ← revient à l'**année scolaire précédente**,
- **flèche droite** → avance à l'**année scolaire suivante** (année
  scolaire suivante en préparation, par exemple).

L'année (ou la période) **affichée actuellement** est généralement
nommée en clair au dessus de la ligne de temps.

#### L'oubli classique : la flèche droite

> Le module **Gestion des EDT** affiche **par défaut l'année scolaire
> courante**. Quand un planificateur prépare la rentrée suivante,
> il doit **explicitement cliquer la flèche droite** de la
> ligne de temps pour basculer sur l'année scolaire suivante avant de
> pouvoir répartir / publier son EDT dessus. Il est aussi possible de
> naviguer d'une année à l'autre, sur cet écran spécifique, en cliquant
> sur l'année scolaire. La courante est en vert, la suivante en orange.

#### Vues temporelles selon le module

Tous les modules n'exposent pas les mêmes granularités :

| Module | Vue défaut | Autres vues |
| --- | --- | --- |
| **EDT** | Semaine | Jour, mois |
| **Tableau de bord** | Semaine | Mois, année, plage libre date à date |
| **Gestion des absences** | Semaine | Mois, année, plage libre date à date |
| **Service du personnel** | Semaine | Jour |
| **Gestion des EDT** | Année scolaire entière |  |
| **Édition d'un EDT calendrier** | Semaine | Mois |
| **Disponibilités horaires calendaires** | Semaine | Mois, année scolaire, semaine-type |

Les **boutons de bascule de vue** sont à côté de la ligne de temps, en
général au-dessus à gauche. Les vues `année` et `plage libre de date à date`
sont surtout présentes dans le **tableau de bord** où elles servent aux
statistiques inter-période.

#### Année scolaire affichée par défaut

L'**année scolaire courante** (configurée dans
[Administration](#page-admin.school-year)) est
**affichée par défaut** dans tous les modules pour tous les
utilisateurs.

- Les professeur et élève en consultation d'EDT ne voient
  **que l'année courante**. Pas d'accès aux années antérieures ou
  préparatoires côté portail. C'est volontaire : pour eux, l'EDT
  c'est aujourd'hui.
- Les **absences** ne peuvent être déclarées **que sur l'année
  scolaire courante**. Vous ne pouvez pas déclarer rétroactivement
  une absence sur une année passée, ni anticiper sur l'année
  suivante.
- Les **administrateurs** peuvent en revanche **naviguer** entre années
  via la ligne de temps — d'où l'intérêt de comprendre les flèches.

L'année scolaire courante est aussi celle prise en compte pour
les exportations et synchronisation avec les logiciels externes.

#### Quand on bascule l'année scolaire courante

Enchaînement typique :

1. **Année N en cours**. Vous travaillez en parallèle sur l'année
   N+1 dans [Gestion des EDT](#page-timetables.overview), via la
   flèche droite. Tous les utilisateurs voient encore l'année N
   sur leurs portails et leurs absences.
2. **Préparation finale** de la rentrée N+1 : l'EDT N+1 est
   publié sur les semaines correspondantes (mais l'année courante
   reste N).
3. **Juste avant la rentrée**, quand vous êtes prêt à ce que tout
   le monde bascule sur N+1 : changement de l'année scolaire
   courante dans
   [Administration → Année scolaire](#page-admin.school-year).
4. **Effet immédiat** : tous les utilisateurs voient désormais N+1
   par défaut. Les professeur et élève accèdent à leur nouvel EDT.
   Les absences se déclarent maintenant sur N+1.

Le moment exact de la bascule dépend de votre établissement —
souvent **la veille de la rentrée** quand tout est validé, parfois
**le matin de la rentrée** pour laisser une marge de
contrôle. Pas d'urgence : vous gardez l'accès en consultation
sur l'année passée comme historique.

#### Année scolaire ≠ année civile

Une **année scolaire** dans Omniscol n'est pas forcément calée sur
septembre → août. Cas particuliers fréquents :

- **Organismes de formation continue** — souvent calés sur
  l'**année civile** (1er janvier → 31 décembre). Définissez votre
  année scolaire avec ces dates dans
  [Administration → Année scolaire](#page-admin.school-year) ; tout
  fonctionne pareil.
- **Universités** à semestres décalés ou cycles long (modules
  intensifs sur 18 mois) — vous pouvez définir des années scolaires
  de longueur non standard.

#### Voir aussi

- [Année scolaire](#page-core-concepts.school-year)
- [Année scolaire et vacances](#page-admin.school-year)
- [Publier (activer) un emploi du temps](#page-timetables.publication)
- [Préparer la rentrée suivante](#page-timetables.next-school-year)

<a id="page-core-concepts.search-and-filter"></a>

### 2.17  Rechercher et filtrer dans les listes

*Source: `help/fr/core-concepts/search-and-filter.md` · id: core-concepts.search-and-filter · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-27*

La même barre de recherche équipe la plupart des listes d'Omniscol
(salles, professeurs, classes, matières, ressources, élèves…) : elle
combine une recherche **textuelle** et, là où une valeur chiffrée
existe, une condition **numérique**. Sur les **salles**, cette condition
porte sur la **capacité** — c'est l'usage le plus complet, détaillé
ici. Vous retrouvez cette barre dans l'onglet Salles du
Tableau de bord comme dans le **sélecteur de salle** d'une séance,
quand vous affectez ou changez une salle dans l'EDT
(Affecter une salle de classe).

#### Recherche textuelle

La recherche textuelle fonctionne sur **toutes ces listes**. Sur les
salles, elle porte sur le nom de la salle, le site, le bâtiment, la
spécialisation ou les tags renseignés dans Omniscol ; sur les autres
listes, sur les champs affichés (nom, code, etc.).

Exemples :

- `nord` affiche les salles dont les informations contiennent `nord`.
- `laboratoire chimie` affiche les salles qui correspondent aux deux
  termes.
- `amphi, gymnase` affiche les salles correspondant à `amphi` ou à
  `gymnase`.

#### Filtre de capacité (salles)

Sur les listes de salles, les comparateurs numériques filtrent sur la
capacité de la salle :

- `>50` : capacité strictement supérieure à 50 ;
- `>=50` : capacité au moins égale à 50 ;
- `<25` : capacité strictement inférieure à 25 ;
- `<=100` : capacité au plus égale à 100 ;
- `=30` : capacité exactement égale à 30 ;
- `50-100` : capacité comprise entre 50 et 100 ;
- `50-` : capacité égale ou supérieure à 50 ;
- `-25` : capacité égale ou inférieure à 25.

#### Combinaisons utiles

Les espaces ajoutent des critères à respecter ensemble. Les virgules
séparent des possibilités.

- `>50 site nord` : salles de plus de 50 places liées au site nord.
- `<=30 laboratoire` : petites salles de type laboratoire.
- `amphi, >100` : salles contenant `amphi` ou salles de plus de 100
  places.
- `bâtiment A informatique` : salles liées au bâtiment A et à
  l'informatique.

#### Pourquoi bien renseigner les salles

Les filtres deviennent plus précis lorsque les sites, bâtiments,
spécialisations et tags sont tenus à jour. Ces informations améliorent
les recherches dans l'EDT, les statistiques de salles et les analyses
d'occupation des bâtiments.

#### Voir aussi

- [Statistiques salles](#page-dashboard.classrooms)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
- [Sites, salles et ressources](#page-timetables.sites-rooms)

<a id="page-core-concepts.collaboration"></a>

### 2.18  Collaboration entre administrateurs

*Source: `help/fr/core-concepts/collaboration.md` · id: core-concepts.collaboration · Audience: admin · Feature: collab · Updated: 2026-06-13*

> **Premium**

L'option **Collaboration temps réel** permet à plusieurs
administrateurs de travailler simultanément sur le même compte
Omniscol : chacun voit la présence des autres en direct, et le serveur
fusionne les actions concurrentes.

#### La présence en temps réel

En haut de l'écran, un indicateur sous forme de **disque avec initiales**
apparaît pour chaque autre administrateur connecté au compte en même temps
que vous (le vôtre est en bleu clair, et les disques se superposent quand vous
êtes nombreux). Survolez-les : une infobulle donne le nom de chaque personne et
**l'écran qu'elle a ouvert en direct**.

Un indicateur passe **au rouge** lorsqu'un autre administrateur ouvre le **même
écran d'édition** que vous — construction d'un emploi du temps (sites,
classes, groupes, répartition des heures), réorganisation, service du
personnel, utilisateurs, matières ou paramètres. C'est le signal d'un
**risque de modification simultanée**.

Rien ne vous bloque pour autant : le serveur **fusionne les actions
concurrentes** autant que possible, pour que chacun conserve ses modifications
sans écrasement silencieux. Cependant, modifier exactement le même champ d'un
utilisateur ou d'une séance, ou encore importer des données massives, mène
forcément à un conflit : le dernier qui modifie gagne. L'indicateur rouge est
une invitation à vous coordonner pour ne pas travailler de manière concurrente
au même endroit, sur les mêmes données, en même temps.

#### Quand l'utiliser

- **Grosse école avec plusieurs gestionnaires** — chacun s'occupe
  d'un département, d'une promotion ou d'un site, mais tous travaillent
  dans Omniscol en même temps.
- **Périodes intenses** — construction de la rentrée, basculement
  d'une session d'examens, traitement d'une vague d'absences.
- **Coordination en réunion** — l'équipe se réunit autour d'une
  décision et plusieurs participants modifient sur leurs postes :
  les disques de présence permettent de se répartir les zones.

#### Limite de synchronisation

Les disques de présence sont relayés en temps réel. En
revanche, la vue métier ouverte par un autre utilisateur n'est pas
forcément rafraîchie automatiquement après votre sauvegarde. Si un
collègue vient de modifier une donnée que vous consultez, rechargez la
vue ou rouvrez l'objet avant de prendre une décision dessus.

#### Bonnes pratiques

- **Définir des périmètres** : qui s'occupe de quoi. Le périmètre
  peut être informel (par e-mail), ou matérialisé via les
  [rôles personnalisés](#page-admin.customroles).
- **Communiquer hors de l'app** — gardez un canal de coordination
  séparé pour les décisions métier ; les indicateurs de présence ne
  remplacent pas une consigne de travail.
- **Éviter d'éditer la même structure en même temps** : si vous êtes
  deux à toucher la liste des élèves d'une classe au même moment,
  le risque de conflit augmente. Découpez les sous-tâches par
  périmètre.

#### Procédure — Coordonner une rentrée à trois administrateurs

1. **Sur les grosses écoles**, la construction de la rentrée mobilise
   plusieurs administrateurs en parallèle. L'option **Collaboration temps réel**
   ajoute la présence en temps réel et la fusion des actions concurrentes.
2. **Définissez les périmètres** au préalable (en réunion ou par
   e-mail) : qui gère quel département / promotion / site. Vous pouvez
   compléter cette organisation avec les
   [rôles personnalisés](#page-admin.customroles), qui limitent les
   modules et opérations accessibles à chaque compte ; la répartition
   par département ou par site reste, elle, une convention d'équipe.
3. **Tout le monde se connecte** sur le compte Omniscol. En haut
   d'écran, **les indicateurs aux initiales** des autres administrateurs connectés
   apparaissent en temps réel. Au survol, le nom et l'écran courant de chacun.
4. **Signal de conflit** : un indicateur passe au **rouge** quand deux
   administrateurs ouvrent le même écran d'édition (les mêmes classes, la
   même réorganisation…). C'est le signe d'un risque de modification
   simultanée, visible par tous les administrateurs concernés.
5. **Le serveur fusionne** les actions concurrentes : rien ne vous bloque
   pendant l'édition et chacun conserve ses modifications, autant que possible.
   L'indicateur rouge vous invite à vous coordonner avant de
   toucher au même endroit.
6. **Bonnes pratiques** : gardez un canal de coordination séparé et
   découpez les sous-tâches par périmètre (un administrateur par
   département). Évitez à deux d'éditer la même structure (liste
   d'élèves d'une classe par exemple) au même moment.

   Après une modification faite par un collègue, rechargez la vue concernée
   avant de considérer les données affichées comme à jour.

#### Voir aussi

- [Plans et options Omniscol](#page-overview.plans-and-options)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Rôles personnalisés](#page-admin.customroles)

---

## 3. Création d'un emploi du temps (module Gestion des EDT)

<a id="page-timetables.overview"></a>

### 3.1  Vue d'ensemble du module Gestion des EDT

*Source: `help/fr/timetables/overview.md` · id: timetables.overview · Audience: admin · Updated: 2026-06-13*

Le module **Gestion des EDT** est le cœur d'Omniscol : c'est là qu'on
crée les emplois du temps, qu'on les configure, qu'on les génère et
qu'on les publie.

Pour un EDT de type récurrent (hebdomadaire/cyclique), il s'utilise
**occasionnellement** (typiquement avant la rentrée, au moment de créer un
trimestre ou semestre différent, et lors de modifications structurelles), pas
quotidiennement (pour ça, c'est le module
[Emploi du temps](#page-schedules.consult-and-filter)).

Pour un EDT de type calendrier, dans l'éducation supérieure, c'est au contraire
l'écran principal de travail de toute l'équipe de planification, au quotidien.

#### Flux de planification

Construire un EDT n'est pas une ligne droite : après la création et le
paramétrage, le cœur est un **cycle** — placer quelques séances, générer,
analyser, ajuster, reboucler — avant une frise linéaire qui démarre à la
**publication** (la rentrée).

```mermaid
flowchart LR
    A["Création"] --> B["Paramétrage<br/>sites, salles, professeurs,<br/>classes, groupes, cours"]
    B --> M["Placement manuel<br/>ancres, verrous"]
    M --> G["Génération<br/>auto/manuelle,<br/>partielle ou complète"]
    G --> J["Analyse,<br/>ajustements ciblés"]
    J -->|reboucler| G
    J --> P["Publication<br/>= début d'année scolaire"]
    P --> E["Exploitation"]
    E --> Mod["Modifications<br/>au fil de l'année"]
    Mod -.->|exception| J
```

Vous revenez en arrière à tout moment, sauvegardez en cours de route, dupliquez
un EDT pour en créer une variante. Le cœur du cycle est détaillé dans
[Génération automatique](#page-timetables.generation) et [Positionnement manuel](#page-timetables.manual-placement) ; après la
rentrée, les retouches passent par [Modifications ponctuelles](#page-schedules.ad-hoc-changes).

#### Plusieurs EDT en parallèle

Vous pouvez avoir plusieurs EDT dans votre compte :

- des **brouillons** non publiés (pour préparer la rentrée
  pendant que l'année en cours fonctionne),
- des EDT pour des **périodes** différentes (S1, S2…),
- en Premium, des EDT **simultanément actifs** sur les mêmes semaines
  (par exemple, un EDT hebdomadaire matinal + un EDT calendrier
  après-midi) — voir
  [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).
  Cette possibilité peut aussi être ouverte contractuellement sur
  certains comptes Standard.

#### Étapes détaillées

Chacune fait l'objet d'une page dédiée :

Le **prérequis** : [Prérequis pour créer un EDT](#page-timetables.prerequisites). Ensuite, huit étapes :

1. [Paramètres généraux](#page-timetables.general-settings)
2. [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
3. [Affecter les professeurs](#page-timetables.assigning-teachers)
4. [Créer les classes et leurs groupes](#page-timetables.creating-classes)
5. [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups)
6. [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
7. [Génération automatique](#page-timetables.generation)
8. [Publier (activer) un emploi du temps](#page-timetables.publication)

À tout moment, vous pouvez :

- **Visualiser** un EDT (mode lecture seule), pour vérification.
- **Réorganiser** un EDT (mode édition rapide), pour ajuster les
  positions des séances.
- **Dupliquer** un EDT (créer un brouillon à partir d'un EDT existant).
- **Importer** ou **exporter** la configuration des cours en tableur
  (cf. [Import massif](#page-timetables.mass-import)).

#### Démarrer rapidement

Si c'est votre premier EDT :

1. Vérifiez d'abord que votre [compte est configuré](#page-getting-started.setup-school)
   (paramètres, année scolaire, matières, utilisateurs).
2. Cliquez sur Créer un EDT en haut à
   droite.
3. Choisissez le [mode d'EDT](#page-overview.timetable-modes) (hebdomadaire,
   cyclique, calendrier).
4. Suivez les étapes dans l'ordre.

Si vous avez déjà des données dans un tableur (Excel, Google Sheets,
export d'un autre logiciel), passez directement par
[l'import massif](#page-timetables.mass-import) : Omniscol crée la
structure pour vous, vous finalisez ensuite.

#### Voir aussi

- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [Cas particuliers et configurations avancées](#page-faq.edge-cases)

<a id="page-timetables.prerequisites"></a>

### 3.2  Prérequis pour créer un EDT

*Source: `help/fr/timetables/prerequisites.md` · id: timetables.prerequisites · Audience: admin · Updated: 2026-05-10*

Avant de créer un EDT, trois éléments doivent exister au niveau de
l'école :

#### 1. Au moins une année scolaire

Sans année scolaire, pas de ligne de temps, donc pas de
publication possible. Création dans Années scolaires.

Voir [Année scolaire et vacances](#page-admin.school-year).

#### 2. Les matières utilisées

Omniscol pré-remplit la base de matières communes pour votre pays.
Pour les disciplines spécifiques, créez les **matières
personnalisées** dans Créer.

⚠ Soignez l'orthographe : Omniscol fait une copie interne au moment
de l'affectation à un EDT, et un correctif ne se propage pas dans
les EDT déjà publiés dans le présent ou le passé.

Voir [Gérer les matières](#page-admin.subjects).

#### 3. Les professeurs

Créez tous les professeurs dans Administration > Professeurs
(un par un ou en masse via [import](#page-getting-started.preparing-data)). Renseignez
au moins prénom, nom, e-mail. Les matières enseignées et le service
horaire sont optionnels mais utiles.

Voir [Gérer les professeurs](#page-admin.teachers).

#### Optionnel mais utile

- **Étudiants** — pas nécessaires pour la création de l'EDT, mais
  utiles pour les EDT individuels après publication.
- **Types de cours** (TD, TP, CM…) — si votre nomenclature
  pédagogique en utilise, créez-les dans
  Créer.
- **Niveaux** — vérifiez que Administration > Paramètres
  contient les niveaux de classe que vous utiliserez.

#### On peut commencer même sans tout

Omniscol est **flexible**. Si vous n'avez pas tous les professeurs ou toutes
les matières au moment de créer l'EDT, vous pouvez commencer et
compléter en cours de route. C'est moins linéaire, mais cela
fonctionne.

Cependant, l'**année scolaire** est, elle, vraiment indispensable
avant publication.

#### Démarrer

Une fois ces prérequis (au moins partiellement) en place :

1. Allez dans le module Gestion des EDT.
2. Cliquez sur Créer un EDT.
3. Choisissez le [mode d'EDT](#page-overview.timetable-modes).
4. Vous arrivez sur la page des [paramètres généraux](#page-timetables.general-settings).
5. Donnez-lui un label (ex. « EDT 2025-2026 », « S1 2025 ») et une
   description.

#### Procédure — Vérifier les prérequis avant de créer un EDT

1. **Trois éléments doivent exister au niveau de l'école** avant
   qu'un EDT soit créable : une année scolaire, les matières, les
   professeurs.
2. **Année scolaire** : ouvrez Années scolaires. Vérifiez
   qu'au moins une année est définie, avec ses dates de début et fin
   et les vacances. Sans année, pas de ligne de temps, pas de
   publication. Voir
   [Année scolaire et vacances](#page-admin.school-year).
3. **Matières** : Omniscol pré-remplit la base pour votre pays. Si
   votre établissement a des matières spécifiques (`Économie
   domestique`, `Robotique`, `Mandarin avancé`), créez-les via
   Créer.

   ⚠ Soignez l'orthographe : Omniscol copie le nom dans chaque EDT,
   un correctif après création ne se propagera pas dans les publications
   du passé et du présent.
4. **Professeurs** : ouvrez Professeurs. Pour chaque
   professeur, au minimum prénom, nom, e-mail. Matières enseignées et
   service horaire sont optionnels mais utiles. Pour beaucoup de
   professeurs : import massif (cf.
   [Préparer les données](#page-getting-started.preparing-data)).
5. **Optionnel mais utile** : types de cours (TD, TP, CM…) via
   Créer si votre nomenclature en
   utilise. Niveaux de classe à vérifier dans paramètres généraux
   (Créer).
6. **Vous êtes prêt** : module **Gestion des EDT**, bouton
   Créer un EDT. Choisissez le mode
   ([modes d'EDT](#page-overview.timetable-modes)), donnez un label
   (`EDT 2026-2027`, `S1 2026`) et une description. Étape suivante :
   [paramètres généraux](#page-timetables.general-settings).

#### Voir aussi

- [Configurer le compte de l'école](#page-getting-started.setup-school)
- [Étape suivante — Paramètres généraux](#page-timetables.general-settings)

<a id="page-timetables.calendar-mode"></a>

### 3.3  Mode calendrier — options avancées

*Source: `help/fr/timetables/calendar-mode.md` · id: timetables.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Le **mode calendrier** est l'un des trois types d'EDT supportés par
Omniscol, à côté du mode hebdomadaire et du mode cyclique. Il
s'utilise quand l'EDT ne suit pas de récurrence régulière : chaque
séance a une date précise, sans schéma hebdomadaire répétitif.

La création d'un EDT calendrier est incluse dans l'offre Premium, au
même titre que les [disponibilités en mode calendrier](#page-timetables.calendar-wishes)
et la publication de [plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables) :
sur un compte Premium, ces fonctions sont disponibles sans activation
particulière.

#### Ce que le mode calendrier permet spécifiquement

- créer un EDT dont les séances sont datées individuellement ;
- définir une plage de dates de début et de fin ;
- utiliser des contraintes de dates quand elles sont configurées ;
- générer seulement une fenêtre cible plus courte que la plage totale
  de l'EDT ;
- demander au solveur de compacter les séances en début de période, en
  fin de période ou sans préférence de position ;
- afficher, publier et consulter les séances comme les autres EDT mais sur
  un intervalle de dates ;
- utiliser le mode hors-grille sur des classes calendrier, avec des
  heures de début et de fin explicites sur chaque séance.

#### Fonctions complémentaires

D'autres fonctions, décrites sur leurs pages dédiées, complètent
naturellement un EDT calendrier :

- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
  pour publier plusieurs EDT sur une même période ;
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes) pour collecter
  des disponibilités datées ;
- [Groupes de groupes](#page-core-concepts.groups-of-groups) pour
  travailler avec des groupes transversaux.

#### Quand préférer le calendrier au hebdomadaire

- **Formations non récurrentes** : modules intensifs, séminaires,
  conférences à dates variables.
- **Formation continue** : sessions qui ne tournent pas sur une
  année académique régulière.
- **Vacataires intervenants** : chaque intervenant a un calendrier
  propre, pas un service hebdomadaire fixe.
- **Cours de fin de cursus** : projets, soutenances, jurys.

Voir [Mode calendrier](#page-higher-ed.calendar-mode)
pour les cas typiques de l'enseignement supérieur.

#### Procédure — Créer un EDT calendrier

1. **Créez un nouvel EDT** dans Gestion des EDT. À l'écran de
   sélection du type, choisissez **mode calendrier**. Indiquez les dates
   de début et de fin, puis validez.
2. **Configurez le calendrier** : label, description, jours ouvrés et
   structure horaire. Vous pouvez aussi déclarer des
   **[fenêtres de dates](#page-timetables.date-windows)** réutilisables,
   appliquées sur les contraintes horaires des salles, classes, matières
   et groupes.
3. **Saisissez les séances** à dates précises : date, horaires,
   groupe ou classe, professeur(s) et salle(s). Si une classe est en
   hors-grille, renseignez des heures de début et de fin explicites.
4. **Lancez la génération** si vous utilisez le solveur sur cet EDT.
   Les contraintes disponibles dépendent des données renseignées :
   professeurs, salles, dates, disponibilités et contraintes de calendrier. Pour
   un test ou une construction progressive, utilisez les options
   avancées pour limiter la fenêtre de dates générée ; activez le
   compactage si vous ne voulez pas que l'algorithme étale les séances
   sur toute la période disponible.
5. **Publiez et combinez** : vous pouvez publier ce calendrier en
   parallèle d'un EDT hebdomadaire régulier. Les personnes concernées
   voient les séances fusionnées à la consultation. Voir
   [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

#### Voir aussi

- [Mode calendrier](#page-glossary.calendar-mode)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes)
- [Fenêtres de dates](#page-timetables.date-windows)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Mode calendrier pour formations non récurrentes](#page-higher-ed.calendar-mode){append=(enseignement supérieur)}

<a id="page-timetables.calendar-wishes"></a>

### 3.4  Disponibilités et contraintes en mode calendrier

*Source: `help/fr/timetables/calendar-wishes.md` · id: timetables.calendar-wishes · Audience: admin/teacher · Plan: premium · Updated: 2026-06-20*

> **Premium**

> _Premium_

En **mode calendrier**, la planification se fait sur des **dates
précises** plutôt que sur une semaine type récurrente. Cela change la
façon dont s'expriment les **contraintes horaires**, sur deux plans
distincts :

- les **contraintes internes** des salles, classes, matières et
  groupes ;
- les **disponibilités des professeurs**.

En calendrier, on parle de **disponibilités** : le terme *vœux* reste
réservé à la saisie d'un professeur sur semaine type, en amont de la
planification, et soumis à la validation du planificateur.

#### Contraintes horaires des salles, classes, matières et groupes

Dès qu'un emploi du temps est de type calendrier, les contraintes
horaires **internes** de ces entités sont automatiquement exprimées
**par date**, et non plus sur une semaine type. Vous pouvez en plus
indiquer une **récurrence sur semaine type** lorsqu'une contrainte se
répète à l'identique d'une semaine à l'autre.

Pour des périodes réutilisables — sessions d'examens, vacances propres
à certaines classes, créneaux autorisés — appliquez une
[fenêtre de dates](#page-timetables.date-windows) comme calque sur ces
contraintes.

#### Disponibilités des professeurs

En semaine type, un professeur déclare une règle constante — *« je ne
suis pas disponible le mercredi après-midi »*. En calendrier, la
disponibilité se déclare **date par date**, ce qui capte des
situations plus fines :

- *« je suis indisponible le mercredi 12 mars matin uniquement »*,
- *« je peux assurer un cours seulement entre le 20 et le 30
  janvier »*,
- *« je suis disponible 3 demi-journées par semaine, à choisir
  selon les semaines »*.

C'est le mode à privilégier quand les disponibilités varient selon les
semaines — typique de l'enseignement supérieur, des vacataires et de la
formation continue.

##### Régler le mode de saisie

Côté professeurs, réglez le paramètre Disponibilités des professeurs
(paramètres généraux de l'école) sur **calendrier** ou
**calendrier + hebdomadaire** pour coller à une planification sur dates
précises. Le mode combiné laisse en plus le professeur indiquer
simplement qu'il n'est **jamais disponible un certain jour de la
semaine**, quelle que soit la date (des exceptions ponctuelles restent
possibles) — l'équivalent, côté professeurs, de la récurrence sur
semaine type des contraintes internes.

##### Niveaux de disponibilité

L'écran de saisie utilise une **vue calendrier**. Le planificateur ou
le professeur clique sur les dates concernées et qualifie le créneau :

- **Indisponible** : indisponibilité bloquante — la génération
  n'y placera aucune séance ;
- **Non souhaité** : contrainte forte, à éviter autant que
  possible ;
- **Préféré** : préférence positive ;
- **Gomme** : efface les disponibilités déjà posées sur la
  zone couverte.

La saisie peut se faire à la journée, à la demi-journée ou au
créneau horaire selon la granularité configurée pour l'école.

##### Pour qui

- **Vacataires et intervenants externes** — n'ont pas un service
  hebdomadaire fixe. Voir [Intervenants externes (vacataires, visiting)](#page-higher-ed.external-faculty).
- **Professeurs avec mi-temps thérapeutique ou aménagement spécifique** —
  semaines variables.
- **Cours en formation continue** — chaque session est ponctuelle.
- **Professeurs en année de mobilité partielle** — disponibles
  certaines semaines seulement.

#### Procédure — Collecter les disponibilités d'un vacataire au calendrier

1. **Pour un vacataire qui n'a pas un service hebdomadaire fixe** (un
   intervenant externe par exemple), la saisie sur semaine type ne
   suffit pas. Le mode **calendrier** capture les disponibilités date
   par date.
2. **Activez le mode adapté** : réglez le paramètre
   Disponibilités des professeurs (paramètres généraux de l'école) sur
   **calendrier** ou **calendrier + hebdomadaire**, selon le besoin du
   compte.
3. **Ouvrez la saisie** au vacataire. Soit il se connecte
   avec son compte professeur, soit vous générez un **lien de partage direct**
   vers son écran de disponibilités (cf.
   [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)).
   Le lien direct évite de créer un compte dédié quand ce flux est
   utilisé. Tout administrateur peut aussi rentrer les disponibilités par
   lui-même.
4. **Côté vacataire** : il voit un **calendrier annuel** plutôt
   qu'une grille hebdomadaire. Il clique sur les dates (ou demi-journées,
   ou créneaux horaires selon la granularité de l'école) et
   qualifie la zone avec les niveaux de disponibilité proposés.
5. **Vérifiez la consolidation** côté administration. Les disponibilités
   enregistrées sont relues par les écrans d'emploi du temps et par les
   diagnostics qui consultent les contraintes.
6. **Lancez la génération auto** sur les cours du vacataire : le
   solveur combine les priorités de disponibilité avec les autres
   contraintes du cours. Cas d'usage couverts : vacataires, mi-temps
   thérapeutique, formation continue, professeurs en mobilité
   partielle.

#### Voir aussi

- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Mode calendrier](#page-timetables.calendar-mode)
- [Fenêtres de dates](#page-timetables.date-windows)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)

<a id="page-timetables.date-windows"></a>

### 3.5  Fenêtres de dates

*Source: `help/fr/timetables/date-windows.md` · id: timetables.date-windows · Audience: admin · Plan: premium · Updated: 2026-06-20*

> **Premium**

> _Premium_

Une **fenêtre de dates** est une période d'**inclusion** ou
d'**exclusion** de dates, **réutilisable**, qui restreint les périodes
pendant lesquelles certaines séances peuvent être planifiées. Vous la
définissez une fois, puis vous l'appliquez comme un **calque** sur les
contraintes horaires de plusieurs entités — classes, groupes, matières
ou salles.

Cette fonction ne concerne que les **EDT de type calendrier**.

#### Deux types : autorisation ou exclusion

- **Cours autorisés** — les séances ne peuvent être planifiées
  **que** pendant ces dates.
- **Cours exclus** — les séances ne peuvent **pas** être
  planifiées pendant ces dates.

#### Comment elles se combinent

Plusieurs fenêtres peuvent s'appliquer à une même entité :

- les fenêtres autorisées s'additionnent entre elles ;
- les fenêtres exclues s'additionnent entre elles ;
- en cas de chevauchement, **une exclusion l'emporte sur une
  autorisation**.

#### Cas d'usage typiques

- **Classes au même rythme d'alternance** — plusieurs classes ne
  suivent certains cours que sur des semaines précises (ou seulement en
  début ou en fin de semaines). Une fenêtre *autorisée* décrivant ces
  semaines, appliquée à toutes ces classes, évite de re-saisir le
  rythme classe par classe.
- **Périodes d'examens** — une fenêtre *exclue* couvrant la session
  d'examens bloque temporairement les salles concernées, ou les
  classes, pour qu'aucun cours ordinaire n'y soit planifié.
- **Vacances propres à certaines classes** — sur un campus à
  l'étranger, un groupe de classes suit un calendrier de vacances
  différent du reste de l'établissement. Une fenêtre *exclue* sur ces
  dates, appliquée à ces seules classes, neutralise la période sans
  toucher aux autres.

#### Définir une fenêtre de dates

Sur l'écran d'édition d'un EDT calendrier, dans la section
Fenêtres de dates :

1. Ajouter
   ouvre le sélecteur de dates.
2. Donnez un **libellé** et choisissez le type — autorisation ou
   exclusion.
3. Sélectionnez les dates sur la grille calendrier : clic-glissé,
   semaine entière, colonne d'un jour, raccourcis semaines paires /
   impaires, ou inversion de la sélection.
4. Enregistrez : la fenêtre rejoint la liste réutilisable de l'EDT.

#### Appliquer une fenêtre

Une fois définie, la fenêtre est disponible dans les contraintes
horaires des **classes, groupes, matières et salles** : sélectionnez-y
une ou plusieurs fenêtres. La même fenêtre peut servir à autant
d'entités que nécessaire — c'est tout l'intérêt du calque réutilisable.

#### À la génération

Le solveur traite les fenêtres comme des contraintes : il ne place une
séance que dans les dates autorisées, et jamais dans les dates exclues.

#### Voir aussi

- [Mode calendrier](#page-timetables.calendar-mode)
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes)
- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Génération automatique](#page-timetables.generation)
- [Positionnement manuel](#page-timetables.manual-placement)

<a id="page-timetables.general-settings"></a>

### 3.6  Étape 1 — Paramètres généraux

*Source: `help/fr/timetables/general-settings.md` · id: timetables.general-settings · Audience: admin · Updated: 2026-07-17*

Sur l'onglet **Général**, vous fixez les
paramètres globaux qui structurent l'EDT.

Les valeurs pré-remplies viennent des
[paramètres de l'école](#page-admin.parameters), que vous pouvez aussi
ajuster en amont.

#### Champs à renseigner

1. **Intitulé** — nom de l'EDT (« EDT 2025-2026 », « S1 2025 »…). Visible
   partout. Modifiable.
2. **Description** — texte libre, utile quand on a plusieurs EDT.
3. **Mode d'affichage** — par défaut, une ligne par créneau horaire avec les
   heures à gauche. Vous pouvez choisir un style anglo-saxon avec
   périodes numérotées, ou un affichage calendrier avec heures rondes.
4. **Durée du créneau horaire** — durée de référence d'un créneau,
   éventuellement avec l'inter-cours. Si vos cours durent 55 min avec 5
   min d'inter-cours, saisissez **60 min**. Si vos cours réguliers
   durent 1h30, saisissez **90 min**. Durée et fractionnement sont
   expliqués en détail dans [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid--slot-duration).
5. **Fractionnement du créneau horaire** — en combien de sous-parties la durée du créneau
   peut-elle être découpée ? Pour pouvoir créer des séances de 1h, 1h30
   ou 2h avec un créneau de 60 min, choisissez **1/2**. Pour
   descendre au quart d'heure, choisissez **1/4**.

   - **Conseil** : ne descendez pas plus fin que nécessaire. Plus le
     fractionnement est fin, plus le calcul du solveur est long.
6. **Jours ouvrés** — cochez les jours de cours. Par défaut lundi à
   vendredi (sauf paramétrage pays différent — pays arabes, Israël…).
7. **Pour les EDT cycliques** — nombre de jours du cycle.
8. **Pour les EDT calendriers** — dates de début et de fin (modifiables
   plus tard) et éventuellement fenêtres de dates.

#### Sauvegarder

Le bouton Enregistrer en bas
sauvegarde la configuration.

#### Et ensuite

Une fois ces paramètres validés, passez à l'étape suivante :
[Sites, salles, ressources](#page-timetables.sites-rooms).

> **Astuce.** Si vous migrez de système ou que vous souhaitez simplement
> tester rapidement Omniscol, pour les grosses créations en masse de séances
> (centaines d'un coup), l'[Import massif via tableur](#page-timetables.mass-import)
> est plus rapide que la saisie écran par écran. Cependant, plus
> vous rentrez de données structurelles en amont et meilleure sera l'importation.

#### Procédure — Configurer les paramètres généraux d'un EDT

1. **Étape 1 de la création d'EDT** : fixer intitulé, durée du créneau,
   fractionnement, jours ouvrés. Ces choix structurent
   durablement l'EDT — autant les poser proprement dès le début.
2. **Intitulé et description** : un nom parlant (`EDT 2026-2027`,
   `S1 2026 — promo M2 commerce`) et une description libre. Visible
   partout dans l'interface. Modifiable, mais évitez de renommer en
   production.
3. **Mode d'affichage** : ligne par créneau horaire (défaut) ou périodes
   numérotées (style anglo-saxon) ou calendrier avec heures rondes.
   Suivez la culture de votre établissement.
4. **Durée du créneau horaire** : la durée de référence d'un créneau.
   Cours de 55 min avec 5 min d'inter-cours → **60 min**. Cours
   réguliers de 1h30 → **90 min**. Si vous gardez un créneau de
   60 min, le fractionnement permet tout de même des cours de 1h30.
5. **Fractionnement du créneau horaire** : en combien de sous-parties la durée du créneau
   peut-elle se diviser ? **1/2** pour des pas de 30 min avec un créneau
   de 60 min, **1/4** pour des pas de 15 min. Plus c'est fin,
   plus le solveur a de possibilités à tester.
6. **Jours ouvrés** : cochez lundi à vendredi (défaut). Pays arabes,
   Israël : dimanche à jeudi. Pour les EDT **cycliques** : nombre de
   jours du cycle. Pour les EDT **calendriers** : dates de début et
   de fin (modifiables ensuite).
7. **Sauvegardez** via Enregistrer. Étape
   suivante : [Sites, salles, ressources](#page-timetables.sites-rooms).
   Pour les grosses créations en masse, voir
   [Import massif via tableur](#page-timetables.mass-import).

#### Voir aussi

- [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)
- [Étape précédente — Prérequis](#page-timetables.prerequisites)
- [Étape suivante — Sites](#page-timetables.sites-rooms)
- [Paramètres généraux de l'école](#page-admin.parameters)

<a id="page-timetables.sites-rooms"></a>

### 3.7  Étape 2 — Sites, grilles horaires, salles, ressources

*Source: `help/fr/timetables/sites-rooms.md` · id: timetables.sites-rooms · Audience: admin · Updated: 2026-08-08*

C'est sur l'onglet **Sites** que vous
modélisez la dimension physique de votre établissement.

#### Créer les sites

Si tous vos cours ont lieu au même endroit : un site suffit. Cliquez
Créer un site, donnez-lui un nom.

Si vous êtes multi-sites : créez un site par lieu physique distinct.
Renseignez les
**temps de trajet** entre sites (matrice des durées). C'est essentiel —
sans ces temps, le solveur peut placer un professeur à 9h à 10h sur le site A et
à 10h05 sur le site B distant de 5km, ce qui est physiquement impossible.

Ne confondez pas site et campus : un
[campus](#page-glossary.campus) est un regroupement organisationnel
configuré dans les paramètres généraux ; un site porte la grille horaire,
les salles et les temps de trajet.

Voir [Site](#page-glossary.site) pour les cas d'usage et
limites (deux sites virtuels pour un même lieu, choix entre multi-sites
et multi-comptes, etc.).

#### Configurer la grille horaire

Chaque site porte sa propre **grille horaire** :

- heures de début / fin des créneaux,
- pauses,
- pause méridienne,
- fermetures (mercredi après-midi, samedi…).

Les séances standards sont rattachées aux créneaux de cette grille. Si vous
modifiez ensuite l'heure d'un créneau, les séances placées dessus suivent la
nouvelle grille. Les horaires personnalisés et les classes hors grille
sont des cas particuliers décrits dans
[Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid).

Omniscol devine automatiquement la grille à partir des informations
saisies, mais relisez-la et personnalisez-la — c'est important pour
le rendu et pour l'algorithme.

Les créneaux devraient correspondre à la
[durée du créneau horaire](#page-core-concepts.timetable-grid--slot-duration)
renseignée dans l'[écran précédent](#page-timetables.general-settings). Si vous avez indiqué 60 minutes,
par exemple, pour une séance standard, alors chaque créneau sera
considéré comme faisant 1 heure, peu importe les horaires effectivement
renseignés — parfois 50 ou 55 minutes, cela peut être marginalement variable à
cause des pauses. Si l'écart théorique/pratique est trop important,
sur un créneau donné, les horaires pourraient passer en rouge pour
vous avertir d'une mauvaise configuration.

Ne déclarez pas les pauses comme des créneaux ! Tout créneau peut
accueillir des séances (sauf si l'on indique la période comme indisponible).
Une erreur fréquente est de croire que les horaires ont un impact direct :
ce n'est pas le cas, Omniscol place les séances sur des créneaux, et les
affiche ensuite avec les heures renseignées pour chaque créneau concerné.

#### Saisir les salles

Pour chaque site, créez les [salles](#page-glossary.classroom). Champs :

- **Nom** (obligatoire),
- **Capacité** (obligatoire — sans ce champ, le solveur ne
  peut pas vérifier le dimensionnement),
- **[Spécialisations](#page-glossary.classroom-specialization)** (chimie,
  info, sport… libres),
- Nombre maximal de classes pour une
  **[grande salle](#page-glossary.large-room)** (salle d'examen, théâtre,
  gymnase, piscine, extérieur). Ce champ n'apparaît qu'une fois une
  spécialisation renseignée,
- **Bâtiment** (optionnel),
- **Contraintes horaires** (utile pour les salles partagées avec un
  autre établissement, ou les salles de sport extérieures),
- **Tags / commentaire** (paper board, prises, ordinateurs… libres).

Vous pouvez créer les salles **en masse** par copier-coller depuis
un tableur.

> _Plan: standard_

<a id="page-timetables.sites-rooms--campus"></a>
##### Campus

Le campus d'une salle dit **quelle entité de l'établissement elle
dessert** : une faculté, un pôle, une école d'un groupe, un parcours de formation
continue. Une salle qui porte un campus passe en tête pour les classes
qui ont retenu ce campus dans leurs salles à privilégier, et
devient filtrable sous ce nom dans les écrans de salles.

La notion vient de l'enseignement supérieur, où elle est la plus courante. Elle
rend aussi service dès qu'un établissement héberge plusieurs niveaux sous un même
toit — un ensemble collège-lycée dont chaque niveau garde ses salles, un site qui
accueille primaire et secondaire.

Une salle peut porter **plusieurs campus** tout en restant attachée à
un **seul site**. C'est la situation d'un espace partagé
entre plusieurs facultés ou plusieurs écoles d'un même groupe. Les deux notions
répondent à des questions différentes, et se combinent : le campus
décrit l'organisation, le site décrit le lieu et porte les
contraintes physiques — grille horaire, compatibilité locale, temps de trajet.

La liste des campus disponibles se gère dans les
[paramètres du compte](#page-admin.parameters).

> _Premium_

##### Multi-salles

Omniscol permet d'affecter plusieurs salles à une même
séance, avec capacité totale = somme des salles. Voir
[Multi-salles](#page-glossary.multi-room) pour les cas d'usage typiques
(examens en amphithéâtres dédoublés, CM retransmis, TP dédoublés, etc.).

##### Spécialisations

Les **spécialisations** (champs libre) servent à indiquer
qu'une matière requiert un type de salle particulier. Le solveur
respecte strictement.

##### Grande salle

Une salle spécialisée peut devenir une
**[grande salle](#page-glossary.large-room)** : renseignez son
Nombre maximal de classes pour qu'elle accueille plusieurs séances
différentes au même moment (professeurs et groupes distincts), dans la
limite de ce nombre et de sa capacité. C'est le cas des salles d'examen,
théâtres, gymnases, piscines ou espaces extérieurs. Le champ n'apparaît
qu'après avoir donné une spécialisation à la salle.

#### Saisir les ressources

Les [ressources](#page-glossary.resource) sont les équipements mobiles
non rattachés à une salle particulière (vidéoprojecteurs portables,
valises de tablettes, kits…). Pour chaque ressource :

- **Nom**,
- **Quantité disponible**.

Une valise de 30 tablettes compte pour 1 (pas 30) — vous saisissez
le nombre de valises.

Inutile de modéliser les ressources dont vous avez « toujours assez »
— ne le faites que pour les vraies limites partagées.

> _Premium_

Les **sites**, **salles** et **ressources** peuvent être synchronisés
depuis un système externe — chaque liste propose alors son bouton de
synchronisation (Synchroniser,
Synchroniser,
Synchroniser). Voir
[Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Et ensuite

Étape suivante : [Affecter les professeurs](#page-timetables.assigning-teachers).

#### Procédure — Créer un site et sa grille horaire

1. **Un site** modélise un lieu physique distinct, avec sa
   propre grille horaire (créneaux, pauses, déjeuner). Au moins un
   site est obligatoire. Cette procédure décrit la création d'un site et
   ses dépendances minimales (salles, ressources).
2. **Cliquez sur Créer un site** et donnez-lui un nom (`Bâtiment
   principal`, `Antenne Paris`…). Si vous démarrez mono-site, un seul
   site suffit. Pour le multi-sites, ajoutez-en autant que de lieux
   physiques à distinguer.
3. **Configurez la grille horaire** : heures de début / fin des
   créneaux, pauses inter-cours, pause méridienne, fermetures
   (mercredi après-midi, samedi…).
4. **Saisissez les salles** : nom, capacité (champ critique pour le
   solveur), spécialisations (chimie, info, sport…), horaires
   d'ouverture, campus si votre organisation en utilise. Le campus sur
   une salle sert à la privilégier pour certaines classes, sans bloquer
   les autres salles compatibles. Une même salle peut appartenir à
   plusieurs campus. Une salle appartient à un seul site —
   pour une salle utilisée par plusieurs sites virtuels, voir
   [Sites, salles, ressources — concepts](#page-core-concepts.sites-rooms-resources).
5. **Saisissez les ressources** (équipements mobiles) : nom +
   quantité disponible. Ne modélisez que les ressources à vraie
   limite partagée (vidéoprojecteurs nomades, valise de tablettes,
   kit de microphones), pas celles dont vous avez « toujours assez ».
6. **Si multi-sites, renseignez les temps de trajet** via la popup
   distances (demi-matrice triangulaire). Sans ces temps, le solveur
   téléporte — voir
   [Multi-sites : politique et temps de trajet](#page-core-concepts.sites-rooms-resources)
   pour les nuances.

#### Voir aussi

- [Sites, salles, ressources — concepts](#page-core-concepts.sites-rooms-resources)
- [Campus](#page-glossary.campus)
- [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)
- [Multi-salles](#page-glossary.multi-room)
- [Spécialisation de salle](#page-glossary.classroom-specialization)

<a id="page-timetables.assigning-teachers"></a>

### 3.8  Étape 3 — Affecter les professeurs

*Source: `help/fr/timetables/assigning-teachers.md` · id: timetables.assigning-teachers · Audience: admin · Updated: 2026-06-13*

Sur l'onglet **Professeurs**, vous indiquez
quels professeurs sont **mobilisés** sur cet EDT — par opposition à
ceux simplement déclarés au niveau de l'école.

#### Affecter

Cliquez sur Affecter des professeurs. La
liste des professeurs disponibles s'affiche. Sélectionnez ceux concernés.

Vous pouvez **affecter par tranches** : commencer avec les professeurs
définitivement recrutés, puis ajouter les nouveaux au fur et à mesure
des recrutements.

> _Premium_

Les professeurs peuvent être synchronisés depuis un système externe :
Synchroniser ouvre le rapprochement.
Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Professeurs virtuels

Le bouton Virtuel crée
un **professeur virtuel** pour représenter provisoirement un poste à pourvoir.
Pratique pour préparer la rentrée sans attendre que les recrutements
soient finalisés.

Une icône [ghost] apparaît à côté du nom. Quand le
recrutement est finalisé, le bouton
Transformer en bout de ligne
« réifie » le professeur virtuel : choisissez le vrai professeur dans la liste,
et toutes ses références basculent vers lui — les affectations aux matières dans
les classes comme toutes les séances de cours. Le professeur virtuel disparaît
alors définitivement. **L'action est irréversible.**

#### Remplacement définitif d'un professeur

Le même bouton Transformer
s'applique aussi à un professeur **réel** : il transfère l'intégralité de ses
cours vers un autre professeur de la liste — déjà affecté à cet EDT ou
simplement déclaré au niveau école — puis retire le professeur d'origine de
l'EDT.

C'est le geste du **remplacement définitif**, utile lorsqu'un professeur prévu
fait défaut, est muté ou doit abandonner ses cours : toutes les séances et
affectations passent au remplaçant en une seule opération. **L'action est
irréversible.**

#### Disponibilités

Si vous avez activé la saisie des disponibilités via le paramètre
Disponibilités des professeurs (cf. [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)),
c'est ici que vous **vérifiez et validez** les disponibilités saisies par les
professeurs.

Vous pouvez aussi :

- modifier le **service horaire** (nombre d'heures hebdomadaires
  prévues, repris dans les nouveaux EDT),
- attribuer une **salle préférée** (utilisée comme priorité par le
  solveur pour les cours du professeur, sauf si la classe a sa propre
  salle dédiée).

#### Distinction école / EDT

Important : la fiche professeur **au niveau école** porte les informations
identifiantes (nom, e-mail, login) et reste stable. La fiche professeur **au
niveau EDT** porte les informations *liées à cet EDT* (disponibilités, salle
préférée, service horaire).

Conséquence : si vous corrigez le nom d'un professeur dans
Professeurs après création d'EDT, l'EDT garde le
nom historique. C'est un choix volontaire pour la traçabilité, mais
cela suppose que le nom soit bien orthographié au moment de la
création de l'EDT.

#### Vacataires (intervenants externes)

Pour les vacataires, voir [glossaire](#page-glossary.external-teacher).
Ils se créent comme des professeurs ordinaires.

> _Premium_

Le marqueur **Professeur externe** de la fiche utilisateur ajoute une
petite icône [user-tie] qui distingue les vacataires des permanents
dans certains écrans.

Pour les visiting professors qui interviennent ponctuellement (une
ou deux séances), vous pouvez selon les cas :

- les ajouter en co-animateur d'une séance (cf.
  [Co-enseignement](#page-glossary.co-teaching)),
- créer un cours séparé pour leur intervention (mode calendrier
  surtout).

#### Et ensuite

Étape suivante : [Créer les classes et leurs groupes](#page-timetables.creating-classes).

#### Procédure — Affecter les professeurs à un EDT

1. **Étape 3 de la création d'EDT** : indiquez quels professeurs sont
   **mobilisés** sur cet EDT (par opposition à tous ceux déclarés au
   niveau école).
2. **Affectez les professeurs définitivement recrutés** via
   Affecter des professeurs. La liste des professeurs déclarés
   au niveau école s'affiche. Sélectionnez ceux concernés par cet EDT.

   Vous pouvez **affecter par tranches** : commencez avec les
   permanents, ajoutez les nouveaux au fur et à mesure des
   recrutements.
3. **Pour tout poste à pourvoir**, créez un **professeur virtuel** via
   Virtuel. Une icône
   [ghost]
   le distingue. Pratique pour préparer la rentrée sans bloquer sur
   les recrutements.

   Quand le recrutement est finalisé, le bouton
   Transformer en bout de
   ligne bascule toutes ses références vers le vrai professeur choisi dans la
   liste. Les cours déjà positionnés sont conservés. Le même bouton sert au
   **remplacement définitif** d'un professeur réel par un autre (mutation,
   désistement…).

   **Précisez les matières enseignées** par le professeur virtuel sur cet EDT :
   il sera proposé en priorité pour ces matières, lors des affectations.
4. **Disponibilités** : pour un EDT hebdomadaire, vous **vérifiez et
   validez** les saisies. Pour tout type d'EDT, vous pouvez **consulter et
   renseigner** toutes les disponibilités. Voir
   [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability).
5. **Salle préférée** (optionnel) : si le professeur a une salle dédiée,
   attribuez-la ici via [location-pin].
   Le solveur la priorise pour ses cours, sauf si la classe a déjà sa
   propre salle dédiée (priorité classe > priorité professeur).
6. **Étape suivante** : [créer les classes et leurs groupes](#page-timetables.creating-classes).

#### Voir aussi

- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Gérer les professeurs au niveau école](#page-admin.teachers)
- [Professeur](#page-glossary.teacher)
- [Vacataire](#page-glossary.external-teacher)

<a id="page-timetables.creating-classes"></a>

### 3.9  Étape 4 — Créer les classes et leurs groupes

*Source: `help/fr/timetables/creating-classes.md` · id: timetables.creating-classes · Audience: admin · Updated: 2026-08-08*

C'est l'étape la plus structurante. Sur l'onglet
**Classes**, vous créez les classes,
leurs groupes, et vous renseignez les volumes horaires par matière.

#### 1. Créer les classes

Cliquez sur Créer une classe. Pour
chaque classe :

- **Nom** (obligatoire),
- **Niveau** (parmi les niveaux existants ; cliquez sur
  Créer pour en ajouter un),
- **Campus** si votre établissement utilise cette organisation,
- **Site** par défaut (le solveur ne cherchera que parmi les salles de
  ce site, sauf affectation explicite d'une séance sur un autre site),
- **Salle de classe dédiée** (optionnel — les cours s'y dérouleront par défaut),
- **Salles à privilégier** (optionnel — indiquez les Campus et/ou les
  étiquettes des salles à essayer en priorité pour cette classe),
- **Effectif théorique** (optionnel mais recommandé pour le
  dimensionnement des salles).

Le Campus et le Site répondent à deux questions différentes : le Campus
indique à quelle entité de l’établissement appartient la classe ; le Site
indique où elle est physiquement située et quelles salles sont utilisées
par défaut.

<a id="page-timetables.creating-classes--preferred-classrooms"></a>
##### Salles à privilégier

Le champ **Salles à privilégier** décrit les salles où cette classe a ses
habitudes, sans les énumérer une par une : vous désignez des
[campus](#page-timetables.sites-rooms--campus), des étiquettes, ou
les deux, et toute salle qui porte l'un de ces marqueurs entre dans l'ensemble.
Une faculté qui travaille dans ses propres salles, une formation continue qui
garde ses deux amphithéâtres, un parcours réparti sur plusieurs
sites : la préférence tient en un ou deux choix, et suit
les salles que vous ajouterez ensuite.

Cet ensemble est essayé en premier, à l'affectation automatique comme au choix
manuel. Quand aucune de ces salles n'est libre, Omniscol retient une autre salle
compatible.

Le **Campus** de la classe, lui, sert au classement et aux filtres. Les deux
champs se complètent — l'un décrit à quelle entité la classe appartient, l'autre
où elle a l'habitude de travailler.

⚠ Si vous oubliez d'attribuer le site, les cours ne pourront pas être
positionnés (faute de salles et de grille horaire). Une alerte vous le rappelle.

#### 2. Créer les groupes pour chaque classe

Cliquez sur le bouton Ajouter un groupe d'une classe.
Créez autant de groupes qu'il y a de cours où les étudiants ne sont
pas en classe entière.

Pour chaque groupe :

- **Nom** et **code** (jouez sur les deux pour identifier facilement),
- **Effectif théorique**,
- Si plusieurs groupes doivent ou peuvent être au **même créneau** (TP-A et
  TP-B, ou LV2 Esp et LV2 All), créez une
  [partition](#page-core-concepts.class-divisions) via
  Ajouter une partition.

Astuce : si les groupes d'une classe sont (presque) identiques à ceux
d'une autre, utilisez le bouton Importer d'une autre classe
pour importer la configuration et l'ajuster.

> _Premium_

Les **classes** et les **groupes** peuvent être synchronisés depuis un
système externe : Synchroniser et
Synchroniser ouvrent le rapprochement.
Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### 3. Configurer les matières par classe (les cours)

Allez dans l'onglet **Matières** (ou le
bouton Cours d'une classe).

Chaque matière que vous affectez ainsi à une classe — avec son volume
horaire et, éventuellement, son type (TD, TP, CM…) — constitue un
**[cours](#page-glossary.course)** : l'unité de base de votre offre
pédagogique (« les mathématiques en 3e A, 4 h par semaine, en TD »).
L'interface parle de « matières » à cet endroit, mais c'est bien la
notion de cours que vous construisez ; l'ensemble des cours d'une classe
en forme le **programme** (sa maquette, sa plaquette). Les
[séances](#page-glossary.lesson) que vous placerez ensuite sur la grille en
sont les occurrences.

Pour chaque cours, indiquez :

- **Nombre d'heures** par semaine,
- **Type de cours** éventuel (TD, TP, CM…),
- **Professeur(s)** affecté(s),
- **Pondération pédagogique** (le solveur tente d'équilibrer la matière
  sur les jours),
- **Salle spéciale requise** (parmi les
  [spécialisations](#page-glossary.classroom-specialization) du site),
- **Préférences de placement** (éviter les mathématiques en fin de journée, sport
  aux heures chaudes…).

Astuce : utilisez Importer d'une autre classe pour
réutiliser une configuration de matières d'une autre classe. La boîte de dialogue
permet même d'importer une classe d'un autre emploi du temps, et on peut étendre
le périmètre : avec ou sans remplacement de la liste existante, et avec ou sans
les professeurs associés, les groupes, les incompatibilités, les contraintes
horaires de la classe. On peut aller jusqu'à dupliquer la répartition en séances,
là encore en choisissant l'extension de l'importation. En ce qui concerne les
positions des séances, sur un emploi du temps de type calendrier, il est possible
de décaler les journées (cela recalcule alors la succession selon les jours ouvrés
de la source et de la cible). C'est très pratique pour les organismes qui ont des
sessions complètes récurrentes, par exemple de six ou huit semaines consécutives,
plusieurs fois dans l'année.

#### 4. Incompatibilités entre matières

Une [incompatibilité](#page-glossary.incompatibility) interdit à une matière
d'en **suivre** une autre. La règle est **orientée** : « la matière A ne
doit pas être suivie de la matière B » n'est pas la même chose que
l'inverse. Le cas typique : « pas de mathématiques juste après le sport ».
Déclarez-les dans l'onglet **Incompatibilités** de la classe.

Au moment de créer la règle, choisissez la **fenêtre** d'application :

- **Consécutif** — pas dans la séance qui suit immédiatement, le même jour.
  Ex. : ne pas enchaîner une matière exigeante sur une matière éprouvante,
  « pas de mathématiques juste après le sport ».
- **Demi-journée** — pas plus tard dans la même demi-journée. Ex. : alterner
  les langues, « pas d'espagnol après l'anglais » — et, pour une exclusion
  mutuelle, ajoutez la règle inverse « pas d'anglais après l'espagnol ».
- **Journée** — pas plus tard dans la même journée. Ex. : étaler les
  apprentissages artistiques, « pas de dessin après la musique le même jour ».
  Pour ce genre d'équilibrage, la **pondération pédagogique** de la matière
  est souvent une option plus simple.
- **Semaine** — pas plus tard dans la même semaine. Ex. : respecter l'ordre
  cours magistral puis travaux pratiques, « pas de travaux pratiques de
  chimie avant le cours magistral de chimie ».
- **Toujours** *(EDT calendrier)* — jamais après, sur toute la période :
  l'outil de **séquencement** des prérequis. Ex. : « pas de C++ avant le C »,
  « pas de finance avant la comptabilité ».

Quelques repères pour ne pas se tromper de réglage :

- **Une matière à ne pas placer à un moment précis** (« pas de maths en
  première heure », « pas de sport en milieu de journée ») n'est **pas**
  une incompatibilité : utilisez les **contraintes horaires de la matière**
  ([clock]), qui portent sur le placement
  absolu d'une seule matière.
- **Empêcher qu'une matière revienne deux fois le même jour** se règle plus
  simplement avec l'option globale d'**auto-incompatibilité** qu'avec des
  règles deux à deux.
- Une incompatibilité est une contrainte **souple** (un malus que le
  solveur cherche à éliminer), pas un blocage : elle peut subsister dans
  l'EDT généré, où le [diagnostic](#page-glossary.diagnostic) la signale.
  Évitez d'en accumuler — chacune réduit la liberté du solveur.

#### Et ensuite

Étape suivante : [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups),
si vous avez des cours communs inter-classes ([cours transverses](#page-glossary.transverse-course)).

Sinon, passez directement à
[Répartir les heures](#page-timetables.hour-distribution).

#### Procédure — Créer une classe avec ses groupes et partitions

1. **Une classe** regroupe les étudiants d'un même cursus. Elle se
   décompose en **groupes** (demi-classes, options, niveaux), avec
   des **partitions** pour déclarer les groupes mutuellement
   exclusifs au sein de la classe.
2. **Cliquez sur Ajouter une classe.** Renseignez nom (`6A`,
   `L1-Info`…), niveau (parmi ceux configurés), campus si vous
   l'utilisez, site par défaut, éventuellement salle dédiée + effectif
   théorique. Sans site, les cours ne pourront pas être positionnés —
   alerte explicite.
3. **Créez les groupes** de la classe. Un groupe par usage
   pédagogique distinct : `TP-A`, `TP-B` (demi-classes labos), `LV2
   Allemand`, `LV2 Espagnol` (options), `Anglais Renforcé`, `Anglais
   Standard` (niveaux). Recommandation forte : **un groupe par cours
   distinct**, même si les étudiants sont les mêmes.
4. **Déclarez les partitions** — groupes mutuellement exclusifs.
   Sélectionnez les groupes (ex. `LV2 Allemand` + `LV2 Espagnol`),
   cliquez Ajouter une partition. Sans partition, le solveur traite
   deux groupes d'une même classe comme potentiellement conflictuels.
5. **Configurez les matières par classe** : volumes horaires
   hebdomadaires, professeurs affectés, type de cours par défaut. Les
   matières sont sélectionnées depuis le référentiel école (officielles
   ou personnalisées).
6. **Étape suivante** :
   [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups)
   si vous avez des cours communs entre plusieurs classes, sinon
   directement
   [Répartir les heures](#page-timetables.hour-distribution).

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Partitions](#page-core-concepts.class-divisions)
- [Campus](#page-glossary.campus)
- [Classe](#page-glossary.class)
- [Groupe](#page-glossary.group)

<a id="page-timetables.alignments-and-groups-of-groups"></a>

### 3.10  Étape 5 — Alignements et groupes de groupes

*Source: `help/fr/timetables/alignments-and-groups-of-groups.md` · id: timetables.alignments-and-groups-of-groups · Audience: admin · Updated: 2026-05-10*

Cette étape est **optionnelle** — passez-la si vous n'avez pas de
cours communs inter-classes. Elle est nécessaire dès que des
élèves de classes différentes doivent suivre **un même cours
ensemble** (latinistes de plusieurs classes, options inter-classes,
spécialités, etc.).

#### Alignements

Utilisables dans **tous** les types d'EDT, mais surtout pertinents pour
les EDT **récurrents** (hebdomadaire / cyclique) avec des classes
parallèles de structure identique. Voir la page de référence :
[Alignements de groupes](#page-core-concepts.alignments).

Synthèse :

- Créez d'abord, dans chaque classe concernée, un **groupe** au nom
  identique (« Latinistes » dans 8A, dans 8B, dans 8C).
- Puis sur l'onglet **Alignement de groupes**,
  cliquez sur Ajouter un alignement et liez les groupes
  des trois classes.
- Vérifiez que les **volumes horaires sont identiques** entre les
  groupes alignés (sinon Omniscol émettra un diagnostic
  d'incohérence).

#### Groupes de groupes

Voir la page de référence :
[Groupes de groupes](#page-core-concepts.groups-of-groups).

Synthèse :

- Onglet **Groupe de groupes**.
- Créez le groupe de groupes en sélectionnant les groupes membres
  (de la même classe ou de classes différentes).
- Assignez ensuite les cours au groupe de groupes — ils apparaîtront
  dans toutes les classes parentes.
- Modifiable à tout moment (ajout / retrait de groupes membres).

#### Affectation directe de plusieurs groupes à une séance

Il existe aussi un raccourci pour **affecter plusieurs groupes
directement à une séance**, sans créer de groupe de groupes nommé.

Ce mode est pratique pour un besoin **ponctuel** ou exploratoire :

- vous cochez plusieurs groupes dans le sélecteur de groupe de la
  séance ;
- la séance est alors partagée entre ces groupes sans créer une entité
  nommée dédiée ;
- vous pouvez revenir ensuite à un groupe simple, ou formaliser le cas
  en groupe de groupes si le besoin devient durable.

En revanche, c'est **moins lisible** et **moins réutilisable** qu'un
groupe de groupes nommé : on perd l'intention métier explicite et il est
plus difficile de repérer, rééditer ou réappliquer le même regroupement
sur plusieurs séances.

#### Quand utiliser l'un ou l'autre

| Situation | Outil |
| --- | --- |
| Cours commun récurrent en mode hebdomadaire / cyclique | **Alignement** |
| Cours commun ponctuel ou évolutif | **Groupe de groupes** |
| Composition susceptible de bouger | **Groupe de groupes** |
| Besoin ponctuel sans structure nommée | **Affectation directe de plusieurs groupes** |
| Configuration figée définitive | **Alignement** ou **groupe de groupes** |

#### Pièges classiques

- **Volumes différents entre les groupes alignés.** Si un groupe a
  3h de latin et un autre 2h, l'alignement émet un diagnostic. Soit
  on harmonise, soit on désaligne.
- **Cours commun à 2 classes seulement** sur 3 alignées. Pour qu'une
  des classes ait son cours indépendant à ce créneau, il faut
  dupliquer son groupe et désaligner le clone.
- **Élèves en double inscription** (par exemple un élève qui
  suit le latin dans 8A mais est inscrit en 8B). Solution : créer un
  groupe « Latinistes » dans 8A *et* dans 8B avec le même élève
  dans les deux, puis aligner.

#### Et ensuite

Étape suivante : [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution).

#### Procédure — Créer un alignement inter-classes

1. **Un alignement** déclare que plusieurs groupes de **classes
   différentes** doivent suivre un même cours, à la même heure, dans
   la même salle, avec le même professeur. Cas typique : les latinistes
   de 8A, 8B, 8C.
2. **Prérequis** : créez d'abord, **dans chaque classe concernée**,
   un groupe au **même nom logique** (`Latinistes` dans 8A, dans 8B,
   dans 8C). Voir
   [Créer une classe avec ses groupes](#page-timetables.creating-classes).
3. **Onglet Alignement de groupes** → cliquez sur
   Ajouter un alignement. Sélectionnez
   les groupes des classes concernées (`Latinistes 8A`, `Latinistes
   8B`, `Latinistes 8C`). Validez.
4. **Vérifiez les volumes horaires** : ils doivent être identiques
   entre les groupes alignés (3 h de latin partout, par exemple).
   Sinon, Omniscol émet un diagnostic d'incohérence.
5. **Mode calendrier** : préférez les
   [groupes de groupes](#page-core-concepts.groups-of-groups)
   qui sont plus flexibles (modifiables a posteriori, ajout / retrait
   de groupes sans dupliquer). Bouton
   Ajouter un groupe de groupes sur l'onglet dédié.

Si le besoin est **ponctuel**, vous pouvez aussi affecter plusieurs
groupes directement à la séance depuis le sélecteur de groupe, sans
créer de groupe de groupes nommé.

6. **Étape suivante** :
   [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution).

#### Voir aussi

- [Alignements de groupes](#page-core-concepts.alignments)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Cours transverse](#page-glossary.transverse-course)
- [Alignement de groupes](#page-glossary.alignment)
- [Groupe de groupes](#page-glossary.groups-of-groups)

<a id="page-timetables.hour-distribution"></a>

### 3.11  Étape 6 — Répartir les heures et créer les séances de cours

*Source: `help/fr/timetables/hour-distribution.md` · id: timetables.hour-distribution · Audience: admin · Updated: 2026-06-25*

Vous avez déjà déclaré les volumes horaires par matière sur chaque
classe (étape 4). C'est ici qu'on décompose ces volumes en **séances
de cours individuelles**.

L'écran s'organise en deux parties :

- **À gauche** : la liste des classes et de leurs **cours** (les matières
  de la classe, éventuellement déclinées par type), avec un compteur
  dynamique d'heures déjà créées par cours.
- **À droite** : les séances de cours créées pour la classe sélectionnée.

#### Trois modes d'affichage

Le panneau de droite se travaille dans **trois modes**, qu'on bascule avec le
sélecteur en haut à gauche de ce panneau. Chacun a sa raison d'être, et on passe
de l'un à l'autre **sans perdre son travail en cours**.

##### Post-its (par défaut)

Les séances de cours apparaissent comme des **cartes** classées par matière ou par
date (pour les EDT de type calendrier). C'est le mode détaillé dans tout le reste
de cette page : double-clic pour créer, glisser la bordure pour la durée, icônes
de la carte pour les attributs.

- **Avantages** : très visuel ; idéal pour **créer** les séances de cours, décomposer
  les volumes, ajuster les durées au glisser et manipuler les cours complexes
  (alternés, concaténés…) directement sur la carte.
- **Inconvénients** : peu pratique pour agir sur **beaucoup** de séances d'un coup,
  pour avoir une vue globale filtrée finement, voir les positionnements et
  positionner rapidement les séances de cours.

##### Emplois du temps (réorganisation)

Les séances de cours s'affichent dans une disposition proche de l'EDT, prêts à être
**réorganisés en lot**.

- **Sélection** : un clic sélectionne une séance et ouvre une fiche interactive.
- **Multi-sélection** : **Maj+clic** étend la sélection à une **plage**. Les
  séances de cours sélectionnées s'éditent alors **ensemble** sur une fiche
  commune (durée de masse, attributs communs…).
- **Filtres dynamiques** et **choix des journées à afficher** resserrent
  l'affichage sur ce que vous traitez.
- **Filtres « en attente »** : isolez les séances **en attente de salle** ou **en
  attente de professeur** pour terminer les affectations manquantes ; des
  pastilles d'avertissement signalent ce qui reste à compléter.
- Une **bascule jours / entités** réoriente l'axe du planning selon ce que vous
  comparez.
- **Avantages** : placement manuel très efficace, vues croisées (classe + professeur,
  par exemple), réorganisation de nombreuses séances, filtrage ciblé pour traiter les
  manques, édition **en lot** rapide directement sur un calendrier.
- **Inconvénients** : moins direct que les post-its pour la création initiale,
  pas de création de cours complexes, moins de filtrage fin pour la vision et
  l'édition en lot.

##### Listing

Une **vue tableau** des séances de cours : une **ligne par séance**, une
**colonne par information** (statut, classe, matière, durée, position, semaine
alternée, professeur, groupe, salle, effectif, ressource, mémo).

- **Tri** : **chaque colonne** est triable — cliquez son en-tête pour trier
  dessus, recliquez pour inverser le sens (croissant / décroissant).
- **Filtrage par colonne** : sous chaque en-tête, un **menu déroulant à choix
  multiples** filtre la colonne (parfois **deux** menus pour une colonne composée
  comme jour + heure ; un champ à intervalles `>=10, <5, 10-20` pour l'effectif).
  Plusieurs valeurs dans **un même menu** se combinent en **OU**, sauf si ce sont
  des valeurs de types différents (par exemple, sur les salles : entre les étiquettes,
  la visioconférence, la taille et le nom), auquel cas c'est un **ET** ; des filtres
  posés sur **plusieurs colonnes** se cumulent en **ET**. Un bouton réinitialise
  tous les filtres.
- **Pagination** : pour les gros volumes, la liste se pagine ; la taille de page
  s'**ajuste automatiquement** (de quelques centaines à quelques milliers de
  lignes) pour rester fluide.
- **Édition massive simplifiée** : cochez les séances voulues (colonne de
  sélection), puis utilisez le **bouton d'action en en-tête** de la colonne
  (durée, professeur, groupe, salle…) pour l'appliquer **d'un coup** à toute la
  sélection.
- **Allocation automatique des salles** : choisissez un **ensemble de séances**
  et un **ensemble de salles** ; l'algorithme propose une **affectation optimale**
  (effectifs, contraintes de salles, disponibilités), que vous **ajustez ligne
  par ligne** avant de confirmer. Voir [Attribution automatique des salles](#page-timetables.auto-room-assignment).
- **Avantages** : vue d'ensemble triable, **filtrage fin par colonne**, édition et
  affectation de salles **en masse**.
- **Inconvénients** : moins de contexte visuel temporel que les deux autres
  modes, pas de création de cours complexes.

#### Créer une séance de cours

Une *séance* est une occurrence individuelle d'un **cours** (sa matière, une durée,
parfois un groupe, généralement un professeur et une salle), positionnée ensuite
sur l'EDT.

Sélectionnez une classe, puis **double-cliquez sur un cours** : une séance de la
matière est créée avec les valeurs par défaut (durée = unité de temps de la classe,
professeur(s) du cours, salle par défaut le cas échéant). Elle naît **sans
position** et rejoint les **séances non encore placées**, prête à être positionnée
par l'algorithme ou à la main.

Le double-clic fonctionne dans les trois modes ; la liste des cours est simplement
à un endroit différent : au centre en post-its, **sous chaque classe dans le
panneau de gauche** en emplois du temps et en listing.

Pour ensuite **régler** la séance (durée, groupe, professeur, salle, ressource),
l'interface dépend de la façon dont elle s'affiche :

- **Tant qu'elle est une carte** — en post-its, ou non encore placée dans la vue
  emplois du temps — glissez la **bordure inférieure** pour la durée et cliquez les
  **icônes** de la carte pour les attributs.
- **Une fois placée sur le calendrier, ou en listing**, les réglages passent par un
  **menu déroulant** : la fiche *Modification du cours* (clic sur la séance du
  calendrier), ou les menus de ligne et de colonne du listing — ces derniers
  permettant en plus l'édition **en masse**.

#### Décomposer un volume horaire

Exemple : les 4 h hebdomadaires d'un cours de mathématiques peuvent donner :

- 4 séances de 1 h, ou
- 2 séances de 2 h, ou
- 1 séance de 2 h + 2 séances de 1 h.

À vous de choisir selon votre rythme pédagogique. Le compteur du cours suit votre
avancement en continu (voir ci-dessous).

##### Répartition automatique

Le menu Actions propose une
**Répartition automatique** qui comble d'un coup le **volume manquant** de chaque
cours : elle ajoute des séances de la durée choisie (1 ou 2 créneaux de la grille,
3 et 4 en calendrier — la valeur en heures dépend donc de la durée de créneau de
l'EDT) et finit par une séance plus courte si le reste n'est pas entier. Elle
respecte les séances déjà créées, pose les professeurs et la salle par défaut, et
laisse tout **non positionné**.

Elle n'agit que sur les **cours visibles** : combinez-la avec le **filtre**
(Filtrer) par matière ou
par type pour ne répartir, par exemple, que les « Cours théoriques ». En
**listing**, elle traite **toutes les classes** d'un coup ; ailleurs, la **classe
sélectionnée**.

#### Le compteur d'heures par cours

Chaque cours, à gauche, porte un compteur qui oppose les **heures créées** au
**volume cible** déclaré à l'étape 4 (par exemple `3 h / 4 h`). C'est l'**aspect
de la carte** qui signale votre avancement :

- **Sous le volume** : aspect normal — il reste des heures à créer.
- **Pile au volume** : la carte **s'estompe** (opacité réduite), signe qu'elle est
  bouclée.
- **Au-dessus du volume** : **bordure rouge** — vous avez créé trop d'heures.

La pastille du compteur, elle, reprend simplement la **couleur de la matière**
(elle peut donc être verte, bleue… sans rapport avec l'avancement) ; au survol,
la carte se souligne de la couleur d'accent de l'interface. Le survol affiche
aussi une bulle détaillant la **ventilation** des séances créées (durées, types,
semaines alternées, brouillons / annulés).

##### Sous-groupes et indicateur d'équilibre

Quand un cours est éclaté en **partition** (plusieurs sous-groupes qui ont cours
**en même temps**, typiquement un dédoublement), le compteur ne **multiplie pas**
par le nombre de groupes : une partition compte **une seule fois** — sinon le total
afficherait `n × volume`, qui n'aurait pas de sens.

Reste à vérifier que tous les sous-groupes reçoivent bien le même volume : c'est
le rôle de l'icône [scale-balanced] qui apparaît alors à droite du cours.

- **Balance verte** — *Groupes en partition à l'équilibre* : tous les
  sous-groupes ont le même nombre d'heures.
- **Balance orange** — *Groupes en partition en déséquilibre* : un sous-groupe a
  plus ou moins d'heures que les autres.

Le survol de l'icône liste le **détail par groupe** (heures de chaque
sous-groupe), pour repérer immédiatement celui à rattraper.

#### Dupliquer une séance

Deux niveaux de duplication coexistent.

**Clone rapide.** L'icône Dupliquer — présente sur
la carte post-it comme sur chaque ligne du listing — crée **une copie** de la
séance dans la **zone temporaire** (non positionnée), attributs compris. Idéal
pour enchaîner des séances identiques.

**Duplication avancée.** Dans la fiche de la séance (popup *Modification du
cours*), le bouton copie à chevron ouvre un menu bien plus riche, exploité
surtout en vue **emplois du temps / calendrier**. On choisit d'abord **combien**
de copies (1 à 999) — ou, sur un EDT de type calendrier, **jusqu'à une date** —
puis **comment** les placer :

- **Nouvelle séance dans la zone temporaire** — copies laissées non positionnées.
- **Même créneau horaire** — répète la séance sur le même créneau.
- **Prochain(s) créneau(x) libre(s)** — cherche automatiquement les créneaux
  compatibles avec la durée.
- **Jour(s) suivant(s)** / **précédent(s)** — décale sur les jours voisins.
- **Semaine(s) suivante(s)** / **précédente(s)** — *(calendrier uniquement)*
  reporte d'une semaine sur l'autre.
- **Choisir les créneaux** — vous pointez vous-même les créneaux libres sur le
  planning.

Sur les options par jour ou par semaine, un bouton **« libre(s) »** restreint la
recherche aux seuls créneaux non occupés. En calendrier, cette recherche peut même
s'étendre au-delà de l'EDT courant lorsqu'une comparaison inter-EDT est active.

#### Mémos

Vous pouvez attacher un **mémo** (commentaire libre) à une séance via
l'icône Commentaire. Plusieurs mémos sont
possibles, avec des **niveaux de visibilité** différents :

- administrateurs seulement,
- administrateurs + professeurs,
- tout le monde (visible pour les élèves et sur le panneau d'affichage).

Les mémos apparaissent dans les bulles au survol des séances sur les
EDT.

#### Cours complexes

Pour les configurations sophistiquées, voir la page dédiée :
[Cours complexes](#page-core-concepts.complex-lessons). Synthèse :

- **Alternés** (semaine A/B) — Ajouter une semaine en
  haut à droite de la séance, ajoute une semaine alternée.
- **Concaténés** (consécutifs) — glisser-déposer une séance sous une
  autre.
- **Associés** (alternance demi-groupes) — bouton qui apparaît entre
  deux séances concaténées.
- **Co-animés** (plusieurs professeurs sur la même séance) — sélection
  multi-professeur sur Affecter des professeurs.

#### Actions de masse

Le menu Actions en haut à droite donne
accès aux opérations massives :

- **Annuler le positionnement** de toutes les séances (sauf les verrouillés),
- **Annuler les verrous** de positionnement,
- **Effacer les affectations de salles**,
- **Affecter les salles préconfigurées** (de la classe ou du professeur par
  défaut, hors salles spéciales),
- **Distribution automatique** des séances sur 1 ou 2 périodes,
- **Import / export tableur** (cf. [Import massif](#page-timetables.mass-import)),
- **Supprimer toutes les séances** d'une classe ⚠.

#### Détection dynamique des erreurs

À chaque modification, Omniscol vérifie la cohérence et affiche les
alertes en haut de l'écran et sur les classes / séances concernées. Voir
[Diagnostic](#page-glossary.diagnostic).

#### Sauvegarder

⚠ La suppression d'une séance est **immédiate et définitive** (sauf si
vous n'avez pas encore sauvegardé). Sauvegardez régulièrement avec
Enregistrer.

Il n'y a pas de fonction Undo / Redo globale sur cet écran. Avant
d'enregistrer, relisez les suppressions et les actions de masse.

#### Et ensuite

Étape suivante :
[Génération automatique](#page-timetables.generation).

#### Procédure — Répartir les heures d'un cours

1. **Vous avez déclaré les volumes horaires de chaque cours** sur ses
   classes à l'étape 4. Cette étape **décompose** ces volumes en
   séances individuelles (une séance = un créneau placé ensuite par
   l'algorithme ou à la main).
2. **Sélectionnez une classe à gauche.** Le panneau de droite affiche
   les séances déjà créées pour cette classe, regroupées par cours.
   Le compteur de chaque cours oppose les heures créées au volume
   cible (`3 h / 4 h`) : la carte s'estompe quand le volume est atteint,
   passe en bordure rouge s'il est dépassé.
3. **Double-cliquez sur un cours** pour ajouter une séance avec les
   paramètres par défaut (durée, type). Glissez la **bordure
   inférieure** de la séance pour ajuster la durée. Cliquez sur les
   **icônes** dans la carte pour modifier groupe, professeur, salle,
   ressources.
4. **Décomposez le volume comme vous voulez** : un cours de 4 h =
   4 séances de 1 h, ou 2 séances de 2 h, ou un mélange. La carte du
   cours s'estompe dès que vous êtes pile au volume cible. En partition
   (sous-groupes simultanés), une icône [scale-balanced] verte / orange signale si
   tous les sous-groupes reçoivent le même volume.
5. **Pour des séances identiques en série**, créez la première puis
   **dupliquez** : clone rapide vers la zone temporaire via Dupliquer,
   ou duplication avancée depuis la fiche (même créneau, jours / semaines
   voisins, créneaux libres…), surtout en vue calendrier.
6. **Cours complexes** (alternés A/B, concaténés en double-période,
   associés avec rotation, co-animés à plusieurs professeurs) : voir les
   icônes dédiées sur la carte de la séance et la page
   [Cours complexes](#page-core-concepts.complex-lessons).
7. **Étape suivante** :
   [Génération automatique](#page-timetables.generation).

#### Voir aussi

- [Cours complexes](#page-core-concepts.complex-lessons)
- [Import massif des cours via tableur](#page-timetables.mass-import)
- [Cours](#page-glossary.course)
- [Séance / Leçon](#page-glossary.lesson)

<a id="page-timetables.auto-room-assignment"></a>

### 3.12  Attribution automatique des salles

*Source: `help/fr/timetables/auto-room-assignment.md` · id: timetables.auto-room-assignment · Audience: admin · Updated: 2026-08-08*

L'**attribution automatique des salles** affecte **en une fois** une salle à un
ensemble de séances sélectionnées. Vous choisissez un **ensemble de salles
candidates**, l'algorithme propose une affectation optimale, et vous
**validez après relecture** — ligne par ligne si besoin.

C'est un outil de **répartition des salles uniquement**. Il ne déplace pas les
séances dans le temps, ne change pas leur durée, n'affecte pas de ressources et
ne relance pas la génération complète de l'emploi du temps. Pour faire poser les
salles **pendant** la génération, voir plutôt [Génération automatique](#page-timetables.generation).

#### Où la trouver

Cet outil vit dans le **mode listing** de l'écran
[Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution) (la vue tableau, une ligne par séance).

1. Affichez les séances en **mode listing**.
2. **Cochez** au moins deux séances (colonne de sélection). Au besoin, servez-vous
   du **tri** et des **filtres par colonne** pour isoler les séances à traiter —
   par exemple celles **en attente de salle**.
3. Ouvrez l'action de salle groupée de l'en-tête,
   Affecter une salle de classe.
4. Dans le sélecteur de salles, activez le mode Affectation automatique des salles.

Les séances en **distanciel** ou en **autonomie** (selon leur [modalité](#page-glossary.lesson-modality)) sont ignorées : elles n'ont
pas besoin de salle physique. Les séances **hybrides** restent prises en compte.
Laissez **hors de la sélection** les séances dont la salle est **verrouillée** :
l'outil ne force pas un verrou.

#### Choisir l'ensemble de salles candidates

En mode automatique, le sélecteur affiche les salles regroupées par **site** puis
par **bâtiment**, avec des cases à cocher à trois niveaux :

- cocher un **site** prend toutes ses salles éligibles ;
- cocher un **bâtiment** prend toutes les salles de ce bâtiment ;
- cocher une **salle** l'ajoute individuellement.

Les salles déjà affectées aux séances sélectionnées sont **pré-cochées**. Une
salle dont la **spécialisation** ne correspond à aucune séance sélectionnée, ou
**trop petite** pour toutes les séances compatibles, est **désactivée**. La
capacité passe en **rouge** quand la salle ne peut accueillir aucune des séances
compatibles, en **orange** quand elle n'en accueille qu'une partie.

Validez l'ensemble pour lancer le calcul.

#### Ce que fait l'algorithme

À partir de l'ensemble choisi, l'algorithme attribue **une salle par séance** en
respectant des **règles strictes** et en optimisant le reste :

- la **spécialisation** requise par la matière de la séance ;
- la **capacité** de la salle face à l'effectif de la séance ;
- l'**occupation existante** de la salle sur le créneau — séances d'autres
  emplois du temps ou d'autres comptes liés, évènements, contraintes horaires de
  salle, [grandes salles](#page-glossary.large-room) partagées ;
- les **salles à privilégier** de la classe — les salles qui portent l'un des
  [campus](#page-timetables.sites-rooms--campus) ou l'une des
  étiquettes retenus
  dans sa fiche — essayées avant les autres, l'algorithme poursuivant sur une
  salle compatible quand elles sont toutes occupées ;
- une **préférence pour le site** de référence de la séance ;
- les **semaines alternées** : deux séances qui ne tombent jamais la même semaine
  peuvent réutiliser la même salle.

L'algorithme peut **réorganiser les salles entre les séances sélectionnées** pour
mieux les loger, et préfère la **plus petite salle qui convient**. Quand la salle
actuelle convient déjà et qu'une autre n'apporterait qu'un gain marginal, il la
**conserve** plutôt que de produire un changement inutile. Si **aucune** salle de
l'ensemble ne convient, la séance est laissée **sans solution**.

#### Relire, ajuster, appliquer

Le calcul ouvre une **fenêtre d'aperçu** : tant qu'elle est ouverte, l'emploi du
temps réel **n'est pas modifié**. Chaque ligne y porte un **statut** — affectée,
inchangée, sans solution, ou ajustée manuellement — ainsi que la salle **avant**
et la salle **proposée**.

- **Ajuster une ligne** : cliquez sa salle proposée pour ouvrir le sélecteur
  classique. Le choix manuel n'est **pas limité** à l'ensemble candidat de départ ;
  la ligne passe au statut « ajustée » et les conflits éventuels se recalculent
  aussitôt sur toutes les lignes.
- **Réinitialiser** : un bouton rétablit la proposition de l'algorithme sur les
  lignes ajustées.
- **Décocher** une ligne l'**exclut** de l'application.
- **Valider** applique les lignes cochées à l'emploi du temps ; **Annuler** ferme
  sans rien changer.

Après application, les séances modifiées **clignotent** et un récapitulatif
indique le **nombre de séances modifiées, inchangées et sans solution**.

#### À noter

- Une séance qui portait **plusieurs salles** peut être ramenée à **une seule**
  par l'attribution automatique.
- Une séance **sans créneau positionné** peut tout de même recevoir une salle (par
  ensemble, spécialisation, capacité et site), mais aucun conflit horaire ne peut
  alors être vérifié pour elle.
- Pour seulement **poser les salles par défaut** (de la classe ou du professeur,
  hors salles spéciales) ou **effacer** des affectations, le menu
  Actions propose des
  actions de masse dédiées — voir [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution).

#### Voir aussi

- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [Spécialisations de salles](#page-core-concepts.classroom-specializations)
- [Grande salle](#page-glossary.large-room)

<a id="page-timetables.mass-import"></a>

### 3.13  Étape 6 bis — Import massif des cours via tableur

*Source: `help/fr/timetables/mass-import.md` · id: timetables.mass-import · Audience: admin · Updated: 2026-06-02*

Si vous avez déjà la liste de vos cours dans un tableur — un export
de votre SIS, un planning préparé en amont sur Excel, voire un export
d'un autre logiciel comme Hyperplanning ou Aurion — vous pouvez la
**copier-coller** directement dans Omniscol.

#### Accéder à l'import

Dans le menu Actions (sur l'écran de
répartition des heures), choisissez **« Tableau - import / export »**.
Si aucune classe n'a encore été créée, un lien direct est aussi
disponible.

L'import s'effectue en **quatre étapes**.

#### Étape 1 — Coller le tableau

Une zone éditable ouvre avec un **canevas de colonnes pré-défini**
par Omniscol. Les colonnes sont typées par position (3e colonne =
matière, etc.) ; vous pouvez **réorganiser les colonnes du canevas**
pour qu'elles correspondent à l'ordre de votre tableur source —
ce qui rend le copier-coller depuis Excel ou Google Sheets propre,
sans réécrire votre fichier.

Champs reconnus :

- **Classe** + **matière** (au minimum, pour qu'un cours soit valide),
- **Durée**, ou **heure début + heure fin** (et **jour** pour
  les séances pré-positionnées),
- **Groupe** (séparateurs libres pour multi-groupes),
- **Type de cours** (TD, TP, CM…),
- **Professeur(s)** (séparateurs libres),
- **Site** + **Salle(s)** (plusieurs salles par séance sont possibles,
  cf. [multi-salles](#page-glossary.multi-room)),
- **Ressource(s)**,
- **Semaines alternées** (format `A/B`, `1/2`…),
- **Commentaire**.

Vous pouvez aussi importer la **liste des cours déjà créés** (ce que
fait l'export) si vous voulez les retravailler dans Excel et
réimporter.

#### Étape 2 — Vérification du planning et des sites

Omniscol affiche les heures détectées (encore éditables). Si plusieurs
sites sont devinés, vous pouvez **glisser-déposer** les classes,
salles et ressources mal affectées au bon site. Si un site superflu a
été créé, videz-le et il disparaîtra.

#### Étape 3 — Désambiguïsation

Après analyse des valeurs importées, le tableau réapparaît avec des
**menus déroulants** sur les champs ambigus. Vérifiez et corrigez les
correspondances proposées.

C'est ici qu'on tranche par exemple :

- « Maths » = quelle matière exacte (avec ou sans type) ?
- « M. Dupont » = lequel des trois M. Dupont ?
- « A102 » = la salle A102 du site Lyon, du site Avignon, ou autre ?

#### Étape 4 — Création des entités inconnues

Si l'import a détecté des entités qui n'existent pas dans la base
(classes, groupes, groupes de groupes, professeur, matière
personnalisée, type de cours, site, salle, ressource…), une dernière
étape vous demande :

- de **valider la création** dans l'EDT,
- pour les **matières personnalisées** et certains **professeurs**,
  de demander si besoin une création côté **Administration** pour les
  rendre disponibles dans toute l'école.

#### Limites

L'import automatise la préparation, mais ne remplace pas une
vérification humaine :

- Les **cours complexes** (alternances multiples, concaténations,
  associations) sont parfois imparfaitement reconstruits — comptez sur
  une passe manuelle de finition.
- Sur des nomenclatures internes très spécifiques, certaines colonnes
  resteront ambiguës — vous trancherez à l'étape 3.
- Pour des **migrations dédiées** depuis un logiciel précis (Aurion,
  ASC…), il existe des [adaptateurs spécialisés](#page-migration.overview).

#### Procédure — Préparer puis importer les cours

1. **Avant de cliquer Importer**, prenez 10 minutes pour préparer le
   fichier source. Un fichier propre = un import sans aller-retour.
   Dans Excel ou Google Sheets, supprimez les lignes fusionnées, les
   en-têtes multi-lignes et les sous-totaux. **Une ligne = une séance de cours.**
   Gardez des libellés cohérents pour les classes, matières,
   professeurs, groupes, sites, salles et ressources.
2. **Ouvrez l'écran d'import** depuis l'écran de répartition des
   heures, menu *Actions → Tableau - import / export*. Réorganisez les
   colonnes du canevas pour qu'elles correspondent à l'ordre de votre
   tableur, puis **collez le tableau** dans la zone éditable. C'est
   l'étape 1.
3. **Étape 2 — vérification du planning et des sites.** Omniscol
   affiche les heures détectées et les sites devinés. Si besoin,
   glissez-déposez les classes, salles et ressources vers le bon site,
   ou videz un site superflu pour le faire disparaître.
4. **Étape 3 — désambiguïsation.** Le tableau réapparaît avec des
   menus déroulants sur les champs ambigus : matière exacte,
   professeur homonyme, salle homonyme, etc. Vous tranchez ici.
5. **Étape 4 — création des entités inconnues.** Validez les créations
   proposées selon votre fichier : classes, groupes, groupes de
   groupes, professeurs, matières et types, sites, salles,
   ressources. Pour les matières personnalisées et certains
   professeurs, vous pouvez aussi demander une création côté
   Administration. Les cours sont ensuite injectés dans l'EDT.
6. **À la sortie**, vous obtenez un EDT partiellement configuré.
   Comptez sur une passe manuelle de finition pour les cas complexes
   (alternances multiples, concaténations, associations) que l'import
   ne reconstitue pas toujours complètement. Pour les migrations depuis
   un autre logiciel, voir [Migration depuis un autre logiciel](#page-migration.overview).

#### Voir aussi

- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Migration depuis un autre logiciel](#page-migration.overview)
- [Étape précédente — Répartir les heures](#page-timetables.hour-distribution)
- Étape suivante — [Génération automatique](#page-timetables.generation)

<a id="page-timetables.generation"></a>

### 3.14  Étape 7 — Génération automatique

*Source: `help/fr/timetables/generation.md` · id: timetables.generation · Audience: admin · Updated: 2026-06-24*

Une fois les séances créées, vous les positionnez sur la grille. Construire un
EDT est en pratique un **cycle**, pas un geste unique :

1. on **place quelques séances à la main** — pour ancrer des immuables ou
   verrouiller des contraintes fortes (interventions datées, examens, calages) ;
2. on **génère** (tout ou partie) pour que l'algorithme place le reste sous
   contraintes ;
3. on **ajuste en marge** — corriger un cas particulier, déplacer une séance,
   changer d'avis ;
4. et ça **peut reboucler** : on régénère au fil de l'eau (séances ajoutées, ou
   — en mode calendrier — par intervalles de dates, par lots de classes ou de
   campus).

On peut aussi tout faire **100 % à la main**, sans solveur. Le positionnement
manuel (placer, déplacer, verrouiller, une à une ou en lot) a sa page dédiée :
[Positionnement manuel](#page-timetables.manual-placement). Pour le flux d'ensemble, voir
[Vue d'ensemble du module](#page-timetables.overview).

Cette page couvre la **génération automatique**.

#### La génération place les séances, elle ne les crée pas

Le solveur travaille sur des séances qui existent déjà. Il leur cherche un
créneau et une salle. Les professeurs, eux, sont ceux que vous avez
affectés au cours : le solveur ne les remplace pas et n'en désigne pas
d'autres, il refuse simplement un créneau où ils ne sont pas libres.

D'où l'ordre à respecter :

1. **déclarez la matière et son volume** pour chaque classe : c'est le
   *cours*, une ligne de volume horaire ;
2. **créez les séances** à partir de ce volume, sur l'étape
   [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution) — ce sont elles que le solveur
   place ;
3. **puis générez**.

Ouvrir l'onglet de génération avant d'avoir créé les séances mène à un
bouton inerte : il n'y a rien à placer, et l'écran de vérification
affiche **Aucune séance définie**.

#### Pourquoi le bouton de génération est grisé

Le bouton reflète le diagnostic affiché juste au-dessus, sur l'onglet
Vérification. Trois situations :

- **Aucune alerte, ou seulement des avertissements** — le bouton reste
  actif, avec un aspect atténué. Un avertissement (jaune) signale un
  risque, pas une impossibilité ; le bleu est informatif.
- **Une alerte bloquante (rouge)** — le bouton principal est désactivé.
  Le calcul reste lançable par
  Plus d'options, à vos
  risques et périls : le solveur ne verra pas le problème que l'alerte
  signale, il produira quand même un EDT, et c'est à vous d'en assumer le
  résultat. Corriger l'alerte est préférable.
- **Une alerte rédhibitoire** — le bouton **et** le menu d'options sont
  désactivés. Il manque une donnée sans laquelle le calcul n'a aucun
  sens : aucune séance, aucune classe utilisable (une classe l'est quand
  elle a un site *et* des séances), ou un site utilisé dont la grille
  horaire n'est pas définie. Un établissement où aucun site n'a encore
  été créé tombe dans ce cas : sans site, aucune classe n'est utilisable.

La statistique **Nombre de classes configurées** passe en rouge dans ce
dernier cas.

Chaque alerte est nommée en clair dans la liste, avec la classe, le site
ou le professeur concerné. Pour l'échelle de gravité et sa lecture, voir
[Conflits et diagnostic](#page-timetables.conflicts) ; pour le dépannage d'une génération qui
n'aboutit pas, [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Disponibilité

La génération automatique est disponible sur les EDT
[hebdomadaires](#page-glossary.weekly-timetable),
[cycliques](#page-glossary.cyclic-timetable) et
[calendrier](#page-glossary.calendar-mode). En mode calendrier, les séances
sont placées sur des dates réelles et les options peuvent limiter la
plage de dates à générer.

#### Préparation

Avant de cliquer Générer EDT :

- déroulez l'onglet **Génération** (intitulé Vérification sur un
  EDT calendrier) pour vérifier les statistiques globales,
- corrigez les **alertes bloquantes** (rouges) — voir la section
  précédente sur le bouton grisé,
- relisez les **avertissements** (jaune) — ils ne bloquent pas mais
  signalent un risque (disponibilités trop contraignantes, capacité limite, etc.).

L'écran indique aussi :

- nombre de séances créées vs séances positionnées,
- volumes horaires saisis vs services horaires des professeurs,
- groupes affectés à au moins un cours (pour repérer les groupes
  oubliés ou inutilisés).

#### Lancement

Cliquez sur Générer EDT. Omniscol lance
un environnement de calcul dédié et parallélisé. La durée dépend de la
taille de l'EDT, du nombre de contraintes et des options choisies. Il
n'y a pas de file d'attente à gérer côté école ; l'initialisation prend
souvent autour d'une dizaine de secondes avant que le calcul commence
réellement.

Le calcul est **plafonné à vingt minutes**, mais c'est en pratique bien
au-delà du nécessaire : un EDT d'environ 200 cours répond souvent en une
vingtaine de secondes — l'algorithme est quasi instantané, c'est surtout
le démarrage de la machine qui pèse — et ~600 cours en une minute
environ. Pour un très gros établissement qui approcherait ce plafond,
l'équipe Omniscol peut augmenter la puissance de la machine de calcul,
sur demande.

#### Options de génération

Par défaut, la génération place toutes les séances créées et non positionnées.
Elle peut aussi déplacer des séances déjà positionnées si cela améliore
l'EDT. Les séances verrouillées gardent leur position.

Le menu d'options permet notamment de :

- gérer les salles avec trois choix : assignation optimisée par défaut,
  vérification uniquement, ou ignorance complète des salles ;
- sélectionner seulement certaines classes ou certaines matières ;
- restreindre un EDT calendrier à une fenêtre de dates cible ;
- ignorer les salles déjà assignées ou les positionnements actuels ;
- assigner uniquement les salles sans recalculer tout le placement ;
- lancer une génération rapide sans optimisation ;
- autoriser le placement flexible sur les sous-créneaux de la grille
  horaire quand l'EDT utilise des sous-créneaux.

Les paramètres avancés d'optimisation permettent aussi de réduire les
trous, éviter deux séances de la même matière le même jour, répartir les
séances, fixer des minima ou maxima d'heures, ou choisir le nombre de
jours de présence des professeurs. Les usages varient selon les pays :
en France, certains établissements cherchent à réduire le nombre de
jours de présence des professeurs ; dans d'autres contextes, on peut au
contraire préférer répartir ces jours, par exemple pour organiser
d'autres missions sur site.

#### Options spécifiques au mode calendrier

En mode calendrier, les options avancées peuvent limiter la génération
à une **fenêtre de dates cible** plus courte que la plage totale de
l'EDT. C'est utile pour générer seulement une partie de l'année : test
sur un mois, construction progressive d'un semestre, ou reprise d'une
période déjà préparée.

L'autre option importante est le **compactage des journées** pour les
classes. Par défaut, le solveur cherche plutôt un équilibre sur les
jours disponibles ; si vous générez seulement une partie des séances de
l'année, ce comportement peut étaler artificiellement les cours. Le
compactage permet de demander un regroupement :

- en début de fenêtre ;
- en fin de fenêtre ;
- sans préférence de début ou fin, mais en gardant les journées aussi
  compactes que possible.

#### Comment la génération travaille

Comprendre la logique du solveur aide à anticiper ce qu'il placera, ce
qu'il sacrifiera, et comment l'orienter. Il poursuit **deux objectifs,
dans cet ordre** :

1. **Tout faire entrer** — la priorité absolue : positionner *toutes* les
   séances en respectant les contraintes dures.
2. **Optimiser la qualité** — une fois que tout rentre, réduire les trous,
   lisser les journées, honorer les préférences.

Il part d'un état propre (les séances **verrouillées** gardent leur place,
les autres sont rejouées) et place **de la séance la plus difficile à la
plus facile**. La difficulté tient surtout à l'**étroitesse des
contraintes** : un cours dont le professeur n'est disponible qu'une
après-midi par semaine, ou un **bloc de quatre heures** à caser d'un seul
tenant, passe en tête. À difficulté égale, il alterne les matières et
traite **les plus rares avant les plus courantes**, pour répartir
équitablement les chances de chacune.

##### Quand tout ne rentre pas : le sacrifice

Si l'EDT est trop contraint pour tout caser, le solveur **ne renonce
pas** : il choisit le plus petit ensemble de séances à **laisser de côté**
pour que le reste tienne, puis optimise cet EDT partiel. Les séances
sacrifiées restent dans la barre des post-its à placer. Comme le tri a
priorisé le plus dur et le plus rare, ce sont plutôt des séances
**faciles et nombreuses** qui cèdent : la 5ᵉ heure d'une matière à gros
volume avant l'unique heure d'une matière rare.

Vous gardez la main sur ces arbitrages : **verrouillez** les séances qui
ne doivent jamais bouger — placées en priorité, elles ne sont pas
sacrifiées — et **détendez la sur-contrainte** (créneaux ouverts,
disponibilités) là où c'est possible, pour que l'ensemble rentre.

##### Contraintes dures et contraintes souples

Toutes les contraintes ne se valent pas :

- **Dures** — jamais violées : l'**occupation** (un professeur, une
  classe, un groupe, une salle ou une ressource ne sert pas deux fois au
  même moment), les plages marquées **Indisponible** (en noir) sur un
  professeur, une classe, une salle, une matière ou un groupe,
  l'**absence de salle ou de ressource libre** sur le créneau, les
  **jours fermés**, les **positions verrouillées** et les **alignements**.
- **Souples** — tout le reste, que le solveur peut **enfreindre** au prix
  d'une pénalité pour réussir à tout caser : les plages marquées
  **Non souhaité** (en rouge — à éviter, pas interdites) et les
  préférences d'optimisation (compacité, étalement, regroupement par
  jour…). Une contrainte de priorité *élevée* pèse plus lourd qu'une de
  priorité *faible*, mais aucune n'est bloquante. Le solveur tente aussi
  des assouplissements ponctuels (placement sur les sous-créneaux de la
  grille…) quand c'est le prix à payer pour ne sacrifier aucune séance.

##### Vérifier sans optimiser

L'option de **génération rapide** (sans optimisation) lance une passe
allégée qui répond surtout à une question : *est-ce que tout rentre ?*
Utile pour tester la faisabilité d'une configuration avant d'investir le
temps d'une optimisation complète.

#### Résultat

- **Bannière verte** : génération réussie. Les séances du périmètre
  demandé ont pu être positionnées et le résultat peut être inspecté.
- **Bannière rouge** : aucune solution complète n'a été trouvée. Le
  meilleur EDT calculé reste visualisable et les séances non positionnées
  apparaissent dans la barre des post-its pour diagnostic.

Voir [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Consolider ou copier

Après une génération réussie, Omniscol propose deux options :

- **Consolider** dans l'EDT en cours (le positionnement remplace
  l'existant).
- **Créer une copie** (l'EDT actuel reste intact, le résultat
  optimisé devient un nouvel EDT).

Si vous prévoyez de re-générer plus tard (parce que vous construisez
incrémentalement, par exemple), **ne consolidez pas** : sinon les
séances déjà positionnées seraient des points de départ pour la nouvelle
génération.

#### Verrouiller une séance avant de relancer une génération

Sur une séance déjà positionnée, utilisez le **cadenas** de position pour
la verrouiller. La prochaine génération ne la déplacera pas mais ajustera
les autres séances autour. Pratique pour ancrer les séances « immuables »
(interventions extérieures fixées, examens datés, calages
manuels…). Détails complets dans
[Verrouiller une séance](#page-timetables.lesson-lock) : verrouillage en
masse, effets sur le diagnostic (rouge → orange), comportement de
l'algorithme.

#### Exporter un EDT en JSON

Le bouton [download] exporte
**l'EDT courant uniquement** au format JSON. Ce n'est pas l'export
complet du compte documenté dans [Import et export](#page-admin.import-export).

Cas typiques :

- conserver une trace d'un brouillon ou d'un scénario avant suppression ;
- archiver un état intermédiaire avant une réorganisation importante ;
- transmettre cet EDT précis à l'équipe Omniscol dans le cadre du support.

Comme pour l'exportation complète du compte école en JSON, la réinjection
n'est pas un usage standard librement accessible côté école.

#### Et ensuite

Étape finale : [Publier (activer) un emploi du temps](#page-timetables.publication).

#### Procédure — Lancer une génération automatique

1. **La génération automatique** positionne les séances sur la grille
   en respectant des dizaines de contraintes (disponibilités,
   capacités, alignements, spécialisations, alternances). Disponible
   sur EDT hebdomadaire, cyclique et calendrier.
2. **Vérifiez l'onglet Génération.** Les statistiques globales y
   apparaissent : séances créées vs positionnées, volumes horaires saisis
   vs services des professeurs, alertes bloquantes (rouge), avertissements
   (jaune — préviennent sans bloquer).
3. **Corrigez les alertes rouges** avant de lancer. Tant qu'il en
   reste, la génération ne peut pas démarrer — sauf à forcer via le
   menu "plus d'options", mais cela n'est pas recommandé. Les jaunes
   sont à arbitrer mais n'empêchent pas la génération.
4. **Réglez les options de génération** si besoin : salles à assigner,
   vérifier seulement ou ignorer ; classes ou matières ciblées ;
   génération rapide sans optimisation ; ignorer les salles déjà
   assignées ou des positions actuelles. En mode calendrier, les
   options avancées permettent aussi de restreindre la fenêtre de dates
   générée et de compacter les séances en début de période, en fin de
   période ou sans préférence.
5. **Cliquez sur Générer EDT.** Le traitement tourne en arrière-plan ;
   l'écran indique l'état de la génération et permet d'inspecter le
   résultat lorsqu'il est disponible.
6. **Sauvegardez** quand la note vous convient. L'EDT est positionné.
   Étape suivante : passez en revue les éventuels conflits, ajustez à la
   main les cas particuliers (voir [Positionnement manuel](#page-timetables.manual-placement)),
   puis publiez.
7. **Et ensuite** : [Publier (activer) un emploi du temps](#page-timetables.publication).

#### Voir aussi

- [Positionnement manuel](#page-timetables.manual-placement)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)
- [Solveur](#page-glossary.solver)
- [Détecter et résoudre les conflits](#page-timetables.conflicts)

<a id="page-timetables.publication"></a>

### 3.15  Étape 8 — Publier (activer) un emploi du temps

*Source: `help/fr/timetables/publication.md` · id: timetables.publication · Audience: admin · Plan: standard · Updated: 2026-06-13*

⚠ Étape **souvent oubliée** : un EDT généré n'est **pas
automatiquement publié**. Tant qu'il n'est pas publié, c'est un
brouillon — visible uniquement dans le module Gestion des EDT par les
administrateurs.

C'est seulement après publication que l'EDT apparaît dans le module
[Emploi du temps](#page-schedules.consult-and-filter) consulté par tous
les utilisateurs autorisés.

#### Comment publier

Sur la page d'accueil du module Gestion des EDT :

1. Sélectionnez l'**année scolaire** concernée dans la **ligne de temps
   en haut**. Par défaut, l'**année scolaire courante** est affichée.
   Si vous préparez la rentrée suivante, cliquez la **flèche droite
   de la ligne de temps** pour basculer sur l'année N+1 — sinon vous
   tenterez de publier sur les semaines de l'année en cours, où les
   semaines sont déjà attribuées à l'EDT actuel. Voir
   [Ligne de temps et navigation temporelle](#page-core-concepts.timeline-navigation)
   pour le concept général.
2. Cliquez sur Répartition des EDT
   (Répartition des EDT).
3. Une grille apparaît : les EDT en lignes, les semaines en colonnes.
4. Pour chaque EDT, **sélectionnez les semaines** où il s'applique
   (cliquez ou glissez sur la banderole). Le bouton
   Ajouter une période ajoute une plage
   supplémentaire pour un EDT.
5. Sauvegardez avec Enregistrer.

#### Compte standard : un EDT par semaine

Avec un compte standard, **une seule publication** par semaine est
permise. Si vous voulez publier deux EDT différents, ils doivent
porter sur des plages disjointes (semestre 1 vs semestre 2, par
exemple).

> _Option: Plusieurs EDT actifs en parallèle_

#### Publications simultanées

Lorsque votre compte dispose de cette capacité (incluse en Premium),
vous pouvez publier **plusieurs EDT en parallèle** sur les mêmes semaines. Le
moteur fusionne dynamiquement les vues : si deux EDT publiés
partagent un professeur ou une salle, son emploi du temps consolidé montre
les séances des deux EDT.

Cas d'usage typique : un EDT hebdomadaire pour les cours du tronc
commun récurrents + un EDT calendrier pour les masterclasses
ponctuelles.

#### EDT calendrier : publication binaire

Un EDT en mode [calendrier](#page-glossary.calendar-mode) ne se publie
pas par plages de semaines (les séances sont déjà datées
individuellement). La publication est binaire — l'EDT est publié, ou
il ne l'est pas.

#### EDT hebdomadaire / cyclique : publication par plages

Pour les EDT hebdomadaires et cycliques, vous ajoutez **une ou
plusieurs plages** de publication, puis sauvegardez. Les modifications
en cours apparaissent en hachuré pour les ajouts et en transparence
pour les suppressions.

#### Semaines alternées : quelles séances sur quelles dates

Quand un EDT à semaines alternées passe en opérationnel, chaque semaine
réelle ne conserve que la séance dont le rang dans le cycle correspond
au **comptage des semaines**. Les vacances peuvent décaler ce comptage :
la **frise** de l'écran [année scolaire](#page-admin.school-year) permet de
forcer les points où il repart en semaine A, pour que les bonnes séances
alternées soient retenues à chaque date.

#### Affecter les élèves après publication

Une fois l'EDT publié pour l'année scolaire en cours, vous pouvez
**affecter les élèves à leurs classes et groupes** :

1. Module Élèves.
2. Sélectionnez les élèves concernés.
3. Assigner à une classe.

Les élèves ne verront leur EDT personnalisé qu'une fois cette
affectation faite — et après changement de l'année courante si vous
préparez la suivante.

#### Procédure — Publier un EDT en 5 étapes

1. **Publier rend un EDT visible** dans le module EDT de
   tous les utilisateurs autorisés. Tant qu'il n'est pas publié, l'EDT
   reste un brouillon visible des seuls administrateurs.
2. **Vérifiez l'année scolaire affichée** dans la ligne de temps en haut. Par
   défaut, c'est l'année courante. Pour publier sur l'année prochaine,
   cliquez **flèche droite de la ligne de temps** pour basculer sur N+1
   avant de continuer.
3. **Cliquez sur Répartition des EDT.** Une grille apparaît avec les
   EDT en lignes et les semaines de l'année scolaire en colonnes.
4. **Sélectionnez les semaines** où l'EDT doit s'appliquer. Cliquez ou
   glissez sur la banderole. Les semaines retenues apparaissent
   colorées ; les autres restent blanches.
5. **Sauvegardez la publication.** L'EDT bascule immédiatement en
   production : il devient visible dans le module Emploi du temps de
   tous les utilisateurs autorisés.
6. **Étape suivante : affecter les élèves** à leurs classes et
   groupes. Cette affectation ne peut se faire qu'après une première
   publication. Les élèves verront alors leur EDT personnalisé.

#### Voir aussi

- [Publication / Activation d'un EDT](#page-glossary.publication)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Préparer la rentrée suivante](#page-timetables.next-school-year)

<a id="page-timetables.multiple-active-timetables"></a>

### 3.16  Plusieurs EDT actifs en parallèle

*Source: `help/fr/timetables/multiple-active-timetables.md` · id: timetables.multiple-active-timetables · Audience: admin · Options: multiple-active-timetables · Updated: 2026-06-13*

> **Option: Plusieurs EDT actifs en parallèle**

Au palier standard, **un seul EDT** peut être publié à la fois sur
une période donnée. C'est suffisant pour un fonctionnement classique de
collège ou lycée. Dans certains contextes — typiquement enseignement
supérieur, formations modulaires, écoles à parcours multiples —, le
besoin se fait sentir de **publier plusieurs EDT en parallèle** qui
se complètent. Cette capacité est incluse de base avec les comptes
Premium.

Dans certains comptes scolaires mixtes, par exemple collège-lycée ou
primaire-collège-lycée avec plusieurs EDT réellement séparés, Omniscol
peut activer cette capacité spécifiquement. Le
cadrage et la facturation sont alors adaptés au besoin réel.

#### Pourquoi plusieurs EDT en parallèle

Quelques scénarios typiques :

- **Tronc commun + spécialisations** — un EDT hebdomadaire couvre le
  tronc commun (matières partagées par toutes les promotions), des EDT
  par spécialité ou par parcours s'ajoutent dessus avec leurs propres
  contraintes.
- **Régulier + calendrier ponctuel** — un EDT hebdomadaire régulier
  porte la majorité des cours, un EDT calendrier porte les séances
  datées (conférences, examens, jurys).
- **Sites multiples** — un EDT par site avec gestion locale, fusion à
  la consultation pour les étudiants qui passent d'un site à l'autre.
- **Programmes de durées différentes** — par exemple un parcours EMBA
  sur 18 mois, un cycle Grande École en semestres calendrier et une
  prépa hebdomadaire, avec des professeurs et des salles partagés.

Sans cette option, ces cas obligent à fusionner toute la complexité
dans un seul EDT, ce qui devient vite ingérable.

#### Fonctionnement

Vous créez plusieurs EDT dans le module Gestion des EDT, comme
d'habitude. Au moment de la **publication** sur les semaines, l'écran
de répartition accepte plusieurs EDT sur les mêmes semaines plutôt
qu'un seul.

Côté consommation (portails, panneaux d'affichage, iCal, API), les
EDT publiés sur une semaine sont **fusionnés dynamiquement** : un
étudiant voit toutes les séances qui le concernent, peu importe de
quel EDT elles viennent.

Au sein d'un même compte, les EDT actifs en parallèle partagent les
occupations des ressources concernées : salles, professeurs et, dans
les cas où c'est pertinent, classes. Cela permet d'éviter qu'un même
professeur ou une même salle soit réservé deux fois par deux EDT actifs.
Le cas des classes partagées entre plusieurs EDT existe aussi, mais il
reste plus marginal et dépend fortement de l'organisation pédagogique.

#### Détection de conflits inter-EDT

Deux mécanismes se complètent, selon l'endroit où vous travaillez.

##### Pendant la construction de l'EDT

Quand vous construisez ou réorganisez un EDT dans Gestion des EDT, le bouton
Synchronisation
(barre d'outils de la réorganisation comme de l'édition d'un EDT calendrier, sur
les **dates partagées**) confronte votre travail aux **autres EDT publiés**. Il prend automatiquement en compte ceux dont les **dates recouvrent**
celles de l'EDT en cours et qui partagent au moins un **professeur**, une **salle**
ou une **classe** — en local (même compte) comme avec les
**[comptes liés](#page-integrations.linked-accounts)**. Il s'active donc de lui-même
dès qu'il y a des ressources communes (orange = actif). Ce couplage automatique
relie les EDT **datés (calendrier)**.

Une exception bienvenue : il **ignore une simple copie** de l'EDT en cours (mêmes
séances). Vous pouvez ainsi travailler sur un **brouillon dupliqué** sans être mis
en conflit avec vous-même.

L'occupation de ces EDT entre alors dans le moteur de conflits :

- les **créneaux candidats** au positionnement (pastilles colorées) passent en
  orange ou rouge si le professeur ou la salle est déjà pris ailleurs ;
- le **diagnostic** signale les doubles réservations inter-EDT.

Le conflit remonté précise alors bien qu'il provient d'un emploi du temps exogène
avec sa référence précise.

Le menu déroulant du bouton liste les EDT et comptes pris en compte : décochez ceux
que vous ne voulez pas surveiller, par exemple pour assumer un chevauchement.

##### À la consultation (EDT opérationnel)

Une fois publiés, les EDT se **fusionnent** en un emploi du temps **opérationnel**
unique — la vue de consultation dans Omniscol (le module EDT), et
tout ce qui consomme l'EDT (portails, panneaux d'affichage, iCal, API). Les conflits
entre EDT s'y lisent naturellement : un professeur (ou une salle) pris sur deux séances
simultanées issues de deux EDT publiés les voit superposées sur la grille fusionnée.
C'est la logique de la fusion : elle forme l'emploi du temps réellement vécu, **tous types
confondus** (un EDT hebdomadaire et un EDT calendrier compris). En vue réorganisation,
cela crée un conflit.

Dans les deux cas, la résolution reste une action de planning : déplacer, adapter
ou accepter le conflit selon le cas.

#### Procédure — Publier un EDT régulier + un EDT calendrier en parallèle

1. **Le cas hybride classique** : un EDT **hebdomadaire** régulier
   pour la majorité des cours, plus un EDT **calendrier**
   pour les séances datées (conférences invitées, examens, jurys).
2. **Préalable** : deux EDT créés dans Gestion des EDT — un
   hebdomadaire avec les cours réguliers, un calendrier avec les
   séances datées. Configurez-les indépendamment. Voir aussi
   [Mode calendrier](#page-timetables.calendar-mode).
3. **Lancez la génération** sur chaque EDT séparément si vous utilisez
   le solveur. Vérifiez d'abord les conflits propres à chaque EDT.
4. **Publiez l'EDT hebdomadaire** sur les semaines voulues (typiquement :
   toute l'année). Voir [Publication](#page-timetables.publication).
   Puis **publiez le second EDT** (calendrier) sur **les mêmes
   semaines**. L'écran de répartition accepte plusieurs EDT en
   parallèle (vs un seul au palier standard).
5. **Vérifiez la fusion** : ouvrez le portail étudiant ou professeur
   — les séances des deux EDT apparaissent sur la même grille,
   fusionnées dynamiquement. iCal, API, panneaux d'affichage
   voient pareil.
6. **Conflits inter-EDT** : entre un EDT hebdomadaire et un EDT
   calendrier, le recoupement se voit surtout sur l'**EDT opérationnel
   fusionné** (consultation, portails) — si une conférence (calendrier)
   tombe sur le créneau d'un cours régulier (hebdomadaire) pour le même
   professeur ou la même salle, les deux séances s'y superposent.
   Résolution comme un conflit ordinaire : déplacer, adapter ou accepter.

#### Voir aussi

- [Publication d'un EDT](#page-timetables.publication)
- [Mode calendrier](#page-timetables.calendar-mode)
- [Comptes liés et ressources partagées](#page-integrations.linked-accounts)
- [Plans et options Omniscol](#page-overview.plans-and-options)

<a id="page-timetables.manual-placement"></a>

### 3.17  Positionnement manuel des séances

*Source: `help/fr/timetables/manual-placement.md` · id: timetables.manual-placement · Audience: admin · Updated: 2026-06-23*

Positionner une séance **à la main**, c'est lui choisir vous-même son créneau,
au lieu de laisser l'algorithme décider. Cela se combine presque toujours avec
la [Génération automatique](#page-timetables.generation) : la construction d'un EDT est un **cycle** (placer
quelques séances → générer → ajuster), décrit dans [Vue d'ensemble du module](#page-timetables.overview).

#### Quand placer à la main

- **Ancrer des immuables avant de générer** — une intervention datée, un examen,
  un calage imposé : on le place (et souvent on le **verrouille**, voir
  [Verrouiller une séance](#page-timetables.lesson-lock)) pour que la génération construise *autour*.
- **Corriger en marge après une génération** — déplacer une séance, régler un cas
  particulier, changer d'avis sur un créneau.
- **Construire entièrement à la main** — sur un petit EDT, ou quand vous préférez
  garder la main de bout en bout (voir plus bas).

#### Le geste : punaise puis créneau coloré

Positionner une séance **n'est jamais un glisser-déposer**. Cliquez le bouton de
positionnement (punaise, Positionner sur l'emploi du temps) de la séance — sur sa carte post-it, sa ligne de
listing, ou dans sa fiche
(Positionner sur l'emploi du temps) si elle
est déjà placée. Omniscol affiche alors **tous les créneaux possibles**, colorés
selon le niveau de conflit :

- **vert** — aucun conflit ;
- **jaune** puis **orange** — conflits mineurs à modérés (la raison s'affiche) ;
- **rouge** — conflit bloquant.

Le détail de chaque niveau et la liste complète des détections sont dans
[Conflits et diagnostic](#page-timetables.conflicts).

Les créneaux apparaissent sur la classe **et** sur le ou les professeurs
concernés, avec les autres séances déjà placées pour aider à choisir. **Cliquez
le créneau retenu** pour y placer la séance. Pour la retirer, double-cliquez sur
une séance déjà positionnée (elle repart dans la zone des séances non placées,
sans être supprimée).

#### Placer en lot — vue planning

Cliquez sur Grille : le planning des
classes / professeurs s'affiche, pratique pour enchaîner les positionnements. Le
geste ne change pas — punaise [thumbtack] d'une séance, puis clic sur un
créneau coloré. C'est utile en mode calendrier pour caler des dates imposées ou
reprendre localement le résultat d'une génération.

#### Verrouiller pour figer un placement manuel

Une séance placée à la main reste, par défaut, déplaçable par la prochaine
génération. Pour qu'elle **ne bouge plus**, verrouillez sa position (cadenas) :
la génération construit alors autour d'elle. Détails (verrouillage en masse,
effet sur le diagnostic) : [Verrouiller une séance](#page-timetables.lesson-lock).

#### Tout faire à la main (sans génération)

Rien n'oblige à lancer le solveur. Sur un EDT hebdomadaire de petite taille, ou
quand le placement est très contraint par des choix humains, vous pouvez
positionner **chaque séance** une à une (ou en lot dans la vue planning) et ne
jamais générer. Le diagnostic en temps réel reste actif : les conflits
(professeur, salle, classe, ressource) sont signalés au fil de l'eau, comme en
génération. Vous publiez ensuite normalement.

Pour des séances qui sortent de la grille (horaires explicites, examens élargis),
voir [Séances hors grille](#page-timetables.off-grid-lessons).

#### Et ensuite

Une fois l'EDT positionné — à la main, par génération, ou les deux —
[Publier (activer) un emploi du temps](#page-timetables.publication).

#### Voir aussi

- [Génération automatique](#page-timetables.generation)
- [Verrouiller une séance](#page-timetables.lesson-lock)
- [Séances hors grille](#page-timetables.off-grid-lessons)
- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)

<a id="page-timetables.lesson-edit"></a>

### 3.18  Édition d'une séance de cours

*Source: `help/fr/timetables/lesson-edit.md` · id: timetables.lesson-edit · Audience: admin · Updated: 2026-06-12*

Une fois la séance créée (voir
[Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)),
vous en ajustez les **champs** un par un : matière, groupe, professeur,
salle, ressources, durée, mémo, et — selon votre offre — statut et
modalité. Cette page récapitule **tous les champs** d'une séance de cours
et comment les modifier.

#### Où s'édite une séance

Les mêmes champs se règlent de **trois façons**, selon le mode
d'affichage de la répartition (voir
[Trois modes d'affichage](#page-timetables.hour-distribution)) :

- **Post-its** : chaque carte de séance porte une rangée d'**icônes**
  (une par champ) ; un clic ouvre le sélecteur correspondant.
- **Réorganisation** : un clic sur une séance ouvre une **fiche de
  cours** regroupant ces mêmes champs ; une multi-sélection les édite en
  lot.
- **Listing** : une **colonne par champ**, avec édition massive depuis
  l'en-tête de colonne sur les séances cochées.

Quel que soit le chemin, c'est la **même séance** que vous modifiez : les
valeurs sont cohérentes d'un mode à l'autre, et rien n'est publié tant
que vous n'avez pas enregistré.

#### Champs standard

Disponibles sur toutes les offres :

- **Matière** Editer — la matière
  rattachée à la séance, parmi celles déclarées sur la classe.
- **Groupe** Affecter un groupe — le groupe ou
  sous-groupe concerné quand la classe est partitionnée.
- **Professeur** Affecter des professeurs — le ou les
  professeurs. Sélectionner **plusieurs** professeurs sur la même séance
  correspond à la **co-animation** (voir
  [Cours complexes](#page-core-concepts.complex-lessons)).
- **Salle** Affecter une salle de classe — choisissez la
  salle principale de la séance ; les variantes avancées sont détaillées
  plus bas selon les fonctions actives sur le compte.
- **Ressources** Affecter des ressources — le
  matériel mobilisé (vidéoprojecteur, tablettes, etc.), avec contrôle de
  disponibilité.
- **Durée** — glissez la **bordure inférieure** de la carte (mode
  post-its) pour allonger ou raccourcir la séance.
- **Position et verrou** Positionner sur l'emploi du temps —
  épinglez une séance pour que la génération ne la déplace pas (voir
  [Verrouiller une séance](#page-timetables.lesson-lock)).
- **Mémo** Commentaire — un commentaire libre,
  avec niveaux de visibilité (voir
  [Mémos](#page-timetables.hour-distribution)).

#### Salle et affectation

L'affectation d'une salle Affecter une salle de classe est
ouverte à toutes les offres : choisissez une salle dans la liste, ou
laissez le **mode automatique** proposer une salle compatible (capacité,
étiquettes, disponibilité).

La liste garde un **ordre stable** — vos salles favorites en tête, puis l'ordre
alphabétique — et signale les bons candidats sans les déplacer :

- l'**étoile** marque la meilleure salle du moment ; la **demi-étoile** marque les
  suivantes. Survolez-les pour lire ce qui les distingue : site, taux de
  remplissage, spécialisation, et la préférence de la classe le cas échéant ;
- une **pastille verte** sur l'un des
  [campus](#page-timetables.sites-rooms--campus) ou l'une des
  étiquettes de la salle indique qu'elle correspond aux
  salles à privilégier de la classe. C'est le même code que la
  spécialisation, verte lorsqu'elle correspond à la séance ;
- la **capacité** passe en orange puis en rouge à mesure que la salle devient
  trop petite pour l'effectif.

L'étoile reste dans les salles privilégiées de la classe. La demi-étoile peut en
sortir quand une autre salle épouse nettement mieux l'effectif : une salle de 60
places retenue pour 25 élèves laisse la demi-étoile désigner la salle de 30
places restée libre.

> _Premium_

#### Fonctions avancées de la séance

##### Statut de la séance

Le **statut** Statut indique où en est
une séance dans le cycle de planification. Quatre valeurs :

- **Planifié** — le statut normal d'une séance
  positionnée.
- **Brouillon** — séance **masquée** et **ignorée par
  la génération automatique** : utile pour préparer une séance sans
  l'imposer encore à l'emploi du temps.
- **Annulé** — séance **affichée comme annulée**
  mais conservée pour mémoire ; elle est **ignorée par la génération**.
- **Réalisé** — séance **réalisée**, prise en compte
  dans les tableaux de bord et la facturation. Ce statut est proposé sur
  les emplois du temps de type calendrier, où le suivi des séances
  effectives a un sens.

Le statut est porté par la **séance entière** (et non par une variante de
semaine alternée). On le change séance par séance, ou **en masse** depuis
le mode listing.

##### Modalité

La **modalité** précise comment la séance se déroule :

- **En présentiel** ;
- **À distance** ;
- **Hybride** ;
- **Travail autonome**.

La modalité se choisit dans le sélecteur de salle, à côté de
l'affectation. Elle a un effet concret : une séance **à distance** ou en
**travail autonome** ne demande **pas de salle**, et la génération ne lui
en réclame pas. L'icône de la séance reflète la modalité retenue.

##### Multi-salles

Une même séance peut recevoir **plusieurs salles** : maintenez
**Maj ⇧** en cliquant pour étendre la sélection. Pratique quand une
cohorte se répartit sur deux salles voisines, ou qu'une séance occupe un
espace doublé. Les salles retenues sont toutes réservées et participent
aux conflits.

##### Durées et horaires personnalisés

Au-delà de la durée lue sur la grille, une séance peut porter des
**durées personnalisées** (durée réelle pour les tableaux de bord, durée
comptabilisée pour la facturation) et un **horaire hors grille**
(heures de début et de fin explicites). Ces réglages, ainsi que les
classes hors grille, sont détaillés sur leur page dédiée :
[Séances hors grille](#page-timetables.off-grid-lessons).

#### Éditer plusieurs séances à la fois

Pour appliquer une même valeur à un lot de séances :

- en **réorganisation**, **Maj+clic** étend la sélection à une plage ; la
  fiche commune édite alors toutes les séances ensemble ;
- en **listing**, cochez les séances voulues puis utilisez le **bouton
  d'action en en-tête** de la colonne (durée, professeur, groupe, salle,
  statut…).

C'est la voie rapide pour, par exemple, basculer un ensemble de séances en
**Brouillon** ou leur affecter une salle commune.

#### Supprimer une séance

L'icône Supprimer retire la séance. La
suppression devient **définitive** à l'enregistrement : avant de
sauvegarder, relisez les suppressions, car il n'y a pas d'annulation
globale sur cet écran.

#### Procédure — Changer le statut d'une séance

1. Ouvrez la répartition de la classe
   ([Étape 6](#page-timetables.hour-distribution)).
2. Cliquez sur l'icône de **statut**
   Statut de la séance (ou ouvrez sa
   fiche en mode réorganisation).
3. Choisissez le statut voulu — par exemple **Brouillon**
   pour la masquer de la génération.
4. Pour traiter un lot, passez en **listing**, cochez les séances et
   appliquez le statut depuis l'en-tête de la colonne.
5. **Enregistrez** pour publier les changements.

#### Voir aussi

- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- [Séances hors grille](#page-timetables.off-grid-lessons)
- [Verrouiller une séance](#page-timetables.lesson-lock)
- [Cours complexes](#page-core-concepts.complex-lessons)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [Détecter et résoudre les conflits](#page-timetables.conflicts)

<a id="page-timetables.off-grid-lessons"></a>

### 3.19  Séances de cours et classes hors grille horaire

*Source: `help/fr/timetables/off-grid-lessons.md` · id: timetables.off-grid-lessons · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Une **séance hors grille horaire** est une séance placée avec des heures
de début et de fin explicites, au lieu de suivre exactement les bornes
d'un créneau de la grille. Cette possibilité existe dans les EDT
hebdomadaires, cycliques et calendriers.

La **classe hors grille** est un réglage distinct : c'est une propriété
de la classe, disponible pour les EDT de type calendrier.

#### Séance avec horaire personnalisé

Utilisez un horaire personnalisé lorsqu'une séance ponctuelle ne tombe
pas exactement sur la grille : examen qui commence à `08:30`,
intervention du soir, séance qui mord sur une pause, réservation qui
commence avant le cours effectif.

La séance reste visible dans l'EDT et continue à participer aux conflits.
Toute entité utilisée par la séance — professeur, salle, classe, groupe ou
ressource — est considérée occupée dès que l'horaire personnalisé mord
sur un créneau horaire.

Pour la génération automatique, la séance est traitée comme indéplaçable :
sa position est verrouillée automatiquement.

#### Quand utiliser un évènement plutôt qu'une séance

Utilisez plutôt un [évènement ponctuel](#page-schedules.events) si le
besoin n'est pas un cours de l'EDT : réunion, réservation simple,
maintenance de salle, journée spéciale sans volume pédagogique à
comptabiliser.

Gardez une séance lorsque le volume doit rester rattaché à un cours,
une matière, une classe, un professeur, un groupe ou un tableau de bord
pédagogique.

#### Classe hors grille

La classe hors grille sert aux programmes dont toutes les séances doivent
être stockées avec des horaires précis, indépendamment de la grille du
site. Elle se configure à la création ou à la modification de la classe,
uniquement dans les EDT de type calendrier.

Cas typique : une formation continue utilise les mêmes salles et les
mêmes professeurs que la formation initiale, mais fonctionne avec des
horaires très différents. La classe peut alors être configurée hors
grille, avec un pas horaire par défaut, par exemple le quart d'heure.

Dans ce mode, les séances de la classe portent directement leurs heures
de début et de fin. Elles **réservent** les professeurs, salles, classes,
groupes et ressources concernés : un chevauchement avec une autre séance
est signalé comme **conflit** — non bloquant pour le placement manuel,
mais la génération automatique, elle, ne posera rien sur un créneau en
conflit.

#### Durées personnalisées

Une séance peut également porter des durées personnalisées :

- **Durée calculée** : durée déduite des heures de début et de fin ;
- **Durée réelle** : durée utilisée en priorité dans les tableaux de
  bord ;
- **Durée comptabilisée** : durée utilisée pour la facturation ou la
  paie du professeur.

Exemple : pour un examen, vous pouvez réserver la salle avant et après
l'épreuve, tout en comptant uniquement la durée réelle de l'examen dans
le Tableau de bord. Pour un surveillant, la durée comptabilisée peut être
plus élevée si l'établissement compense aussi la correction des copies.

#### Points d'attention

- Une séance avec horaire personnalisé peut chevaucher une pause ou un
  créneau normalement libre ; vérifiez que c'est bien l'intention.
- Comme la séance est verrouillée pour la génération, elle peut
  contraindre fortement les placements automatiques autour d'elle.
- Une classe hors grille est structurante : elle doit être choisie avant
  de créer massivement les séances de la classe.
- Les **cours complexes** (alternances, concaténations, associations) sont
  **désactivés** dès qu'il y a des horaires explicites ou une classe hors
  grille : la fonctionnalité n'est pas disponible dans ce cas.

#### Procédure — Créer une séance avec horaire personnalisé

1. Placez ou ouvrez la séance dans l'EDT.
2. Ouvrez l'édition de l'horaire personnalisé de la séance.
3. Saisissez l'heure de début et l'heure de fin.
4. Vérifiez les conflits sur les professeurs, salles, classes, groupes
   et ressources concernés.
5. Relancez la génération si nécessaire : la séance restera verrouillée
   et l'algorithme placera le reste autour d'elle.

#### Voir aussi

- [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)
- [Paramètres généraux](#page-timetables.general-settings)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)
- [Génération automatique](#page-timetables.generation)
- [Évènements ponctuels](#page-schedules.events)

<a id="page-timetables.lesson-lock"></a>

### 3.20  Verrouiller le positionnement d'une séance

*Source: `help/fr/timetables/lesson-lock.md` · id: timetables.lesson-lock · Audience: admin · Updated: 2026-06-13*

**Verrouiller une séance** signifie verrouiller sa **position** dans
l'emploi du temps. La séance reste prise en compte par le solveur, mais
la génération automatique ne peut plus la déplacer.

Le repère visuel attendu est un **cadenas fermé** [lock]. À
l'inverse, un **cadenas ouvert** [unlock] indique que la position
peut encore être déplacée par une génération ou une opération de
réorganisation.

À ne pas confondre : l'icône de **positionnement** [thumbtack]
sert à placer une séance sur l'emploi du temps. Elle ouvre ou active le
placement ; elle n'est pas le marqueur de verrouillage.

#### Quand verrouiller une séance

Cas typiques :

- **Intervenant extérieur** dont l'horaire est imposé.
- **Examen daté** dont le créneau ou la salle sont déjà arrêtés.
- **Sortie scolaire ou visite** programmée à un créneau bien précis.
- **Salle externe à horaire imposé** (gymnase, piscine…) : possible par
  verrouillage, mais il vaut souvent mieux passer par les **contraintes
  horaires de la salle**, qui guident le solveur sans figer chaque séance
  une à une.
- **Séance d'un [groupe libre](#page-core-concepts.free-groups)** placée
  manuellement à côté d'une séance principale.
- **Position obtenue par une génération précédente** que vous voulez
  conserver avant de relancer une génération plus large.

#### Comment verrouiller

1. Positionnez la séance sur l'emploi du temps si ce n'est pas déjà fait.
2. Ouvrez le détail de position de la séance.
3. Activez le **cadenas fermé** pour verrouiller la position.
4. Vérifiez que la séance affiche un cadenas sur sa position.

Pour libérer la position, utilisez le **cadenas ouvert**. La séance peut
alors être déplacée par une génération ou par certaines opérations de
réorganisation.

#### Actions en masse

Dans la répartition des heures, le menu Actions propose aussi des
opérations globales :

- Verrouiller toutes les positions de séances verrouille les
  séances déjà positionnées ;
- Déverrouiller toutes les positions de séances enlève le
  verrou sans retirer la position ;
- Annuler tous les positionnements de séances enlève
  le verrou et retire la position.

Cette dernière option est utile avant une nouvelle génération propre,
lorsque vous voulez repartir de séances non positionnées.

#### Effets côté génération et diagnostic

Une séance verrouillée reste une contrainte forte pour le solveur. Les
autres séances doivent se placer autour d'elle.

Conséquence importante : si vous verrouillez une séance sur un créneau
très contraint, Omniscol respecte cette décision. Les conflits ou
avertissements restent visibles, mais le verrou indique que la position
est volontaire. Dans le diagnostic, un problème porté par une séance
verrouillée est ainsi rétrogradé d'alerte bloquante (rouge) en
avertissement (orange) : Omniscol signale le point sans plus l'imposer
comme blocage à corriger.

#### À ne pas confondre

- **Verrouillage de position d'une séance** : la séance garde son
  créneau pendant la génération.
- **Verrou collaboratif** : mécanisme lié à l'édition simultanée par
  plusieurs administrateurs. Voir
  [Collaboration temps réel](#page-core-concepts.collaboration).
- **Position sans salle verrouillée** : cas particulier où une séance
  doit rester sans salle attribuée automatiquement, via
  Verrouiller.

#### Bonne hygiène

- Avant de relancer une génération, vérifiez les séances verrouillées :
  trop de positions fixes réduisent la marge d'optimisation.
- Après une phase de tests, déverrouillez ce qui ne doit pas être
  conservé.
- Pour les groupes libres, placez la séance manuellement puis verrouillez
  sa position. Voir [Groupes libres](#page-core-concepts.free-groups).

#### Voir aussi

- [Génération automatique](#page-timetables.generation)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)
- [Groupes libres](#page-core-concepts.free-groups)
- [Détecter et résoudre les conflits](#page-timetables.conflicts)
- [Solveur](#page-glossary.solver)

<a id="page-timetables.conflicts"></a>

### 3.21  Détecter et résoudre les conflits (à la génération)

*Source: `help/fr/timetables/conflicts.md` · id: timetables.conflicts · Audience: admin · Plan: standard · Updated: 2026-06-23*

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](#page-timetables.diagnosing-generation).

#### 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](#page-timetables.manual-placement)). **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
[magnifying-glass] 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 [link] ne
garde que les groupes en relation, ce qui fait ressortir la contrainte
quand le diagnostic brut ne suffit pas.

> _Premium_

#### 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

1. Ouvrez le diagnostic de l'EDT.
2. Filtrez si nécessaire par niveau, campus, site, entité ou type de
   problème.
3. Traitez d'abord les conflits bloquants.
4. Ouvrez le détail du problème pour identifier les séances et
   ressources impliquées.
5. Corrigez la séance, la contrainte ou la modélisation.
6. Relancez le diagnostic ou la génération pour vérifier que le
   problème a disparu.

#### Voir aussi

- [Conflit](#page-glossary.conflict)
- [Diagnostic](#page-glossary.diagnostic)
- [Campus](#page-glossary.campus)
- [Génération automatique](#page-timetables.generation)
- [Positionnement manuel](#page-timetables.manual-placement)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)

<a id="page-timetables.diagnosing-generation"></a>

### 3.22  Diagnostiquer une génération qui échoue

*Source: `help/fr/timetables/diagnosing-generation.md` · id: timetables.diagnosing-generation · Audience: admin · Updated: 2026-06-24*

La génération « échoue » quand le solveur ne parvient pas à **tout
caser** : il rend le meilleur EDT partiel trouvé, et les séances qu'il a
dû **sacrifier** restent dans la barre des post-its à placer (une bannière
rouge résume le blocage). Le problème est presque toujours une
**sur-contrainte** : trop de cours pour les créneaux ouverts, ou des
contraintes trop serrées pour s'emboîter. Le remède consiste à **relâcher**
ce qui peut l'être — c'est l'objet de cette page. Pour comprendre comment
le solveur priorise et ce qu'il sacrifie, voir [Génération automatique](#page-timetables.generation) ;
pour le catalogue des conflits sur un EDT déjà posé,
voir [Conflits et diagnostic](#page-timetables.conflicts).

#### Le diagnostic est une piste, pas un verdict

Quand une séance ne peut pas être positionnée, Omniscol met en avant
**l'entité qui a posé le plus de problèmes** au fil des tentatives — « ce
professeur n'a pas assez de créneaux », « cette classe ne tient pas dans
sa grille ». **C'est une heuristique** : l'entité signalée est celle qui
revient le plus souvent dans les blocages, pas nécessairement *la* cause
unique. Les contraintes sont **croisées** — desserrer ailleurs peut tout
débloquer. Prenez donc le message comme une **direction de recherche** :
le vrai remède est souvent de **détendre la sur-contrainte générale** (un
peu plus de créneaux, des disponibilités moins strictes) plutôt que de
s'acharner sur l'entité pointée.

#### Causes les plus fréquentes

##### 1. Disponibilités trop restrictives

Un professeur a marqué tellement de plages comme **impossibles** qu'il ne
reste pas assez de créneaux pour positionner ses séances.

**Diagnostic** : examinez l'écran des disponibilités du professeur concerné. Comptez
les créneaux libres et comparez à son volume horaire.

**Résolutions** :

- Assouplir certaines plages (passer du noir au rouge — indésirable
  mais pas impossible),
- Redistribuer les cours (attribuer une partie à un autre professeur),
- Discuter avec le professeur si la disponibilité est négociable.

##### 2. Pas de salle compatible

Une matière requiert une **spécialisation** pour laquelle aucune salle
n'est créée, ou toutes les salles correspondantes sont occupées sur
les seuls créneaux possibles.

**Résolutions** :

- Créer la spécialisation manquante sur une salle adéquate,
- Réduire la contrainte de spécialisation,
- Ajouter une salle.

##### 3. Capacité insuffisante

L'effectif d'un groupe / d'une classe dépasse la capacité de toutes
les salles candidates.

**Résolutions** :

- Affecter une salle plus grande,
- Affecter [plusieurs salles](#page-glossary.multi-room) à un même cours
  (la capacité totale est la somme),
- Diviser la classe / le groupe.

##### 4. Alignement structurellement impossible

Les volumes horaires des groupes alignés diffèrent, ou les classes
parentes ont des grilles horaires incompatibles, ou un professeur aligné
ne peut être qu'à un seul endroit.

**Résolutions** :

- Harmoniser les volumes horaires entre les groupes alignés,
- Désaligner et créer un cours par classe,
- Vérifier que les sites des classes alignées partagent une grille
  horaire commune sur le créneau cible.

##### 5. Trop de séances de cours pour la grille

Quand une classe ou un professeur a manifestement plus d'heures que de
créneaux ouverts, un **avertissement le signale en amont** (onglet
**Génération**, compteurs heures vs créneaux). Le cas pervers est plus
sournois : pris isolément, aucun débordement évident, mais
l'**accumulation** des contraintes entre professeurs et classes — et leurs
**croisements** — finit par ne plus rentrer.

**Résolutions** :

- Réduire les volumes horaires saisis,
- Étendre la grille horaire (ouvrir le mercredi après-midi, par exemple),
- Assouplir quelques indisponibilités, en visant les **plages que
  beaucoup d'entités évitent en même temps** : le cumul sature la grille.

##### 6. Incompatibilités trop nombreuses

Empiler les contraintes « pas X après Y » peut créer un système
sans solution.

**Résolution** : remplacer certaines incompatibilités par des
**poids pédagogiques** plus souples.

##### 7. Pas assez de salles (goulot d'étranglement)

Très fréquent : même si chaque salle convient, leur **nombre** ne suffit
pas à absorber la demande au même moment. Les séances de cours s'empilent sur les
mêmes créneaux et le manque de salles devient le **goulot** qui empêche
l'ensemble de rentrer.

**Résolutions** :

- Ajouter des salles (ou en mutualiser entre classes),
- Étaler la demande en élargissant la grille horaire,
- Réduire les contraintes qui concentrent les cours sur peu de créneaux.

##### 8. Plusieurs sites : les trajets rognent les heures

Avec plusieurs sites, les **temps de trajet** entre implantations
réduisent les créneaux réellement utilisables par un professeur (ou une
classe) : changer de site coûte du temps, qui n'est plus disponible pour
placer une séance. Les disponibilités effectives se resserrent et le
casse-tête se complique.

**Résolutions** :

- Regrouper les cours d'un professeur sur un même site dans la journée,
- Vérifier les temps de trajet déclarés entre sites,
- Limiter les allers-retours inter-sites dans une même journée.

#### Checklist avant de relancer une génération

- Toutes les classes ont un site assigné ?
- Toutes les classes ont leurs matières et leurs professeurs ?
- Tous les groupes utilisés dans des cours ont un effectif théorique
  ou une capacité gérable ?
- Les disponibilités de tous les professeurs sont validées ?
- Pas d'alerte critique (rouge) dans
  l'onglet **Génération** ?

#### Outils de diagnostic intégrés

- **Onglet Génération** — *en amont* : statistiques (cours / heures par
  professeur, par classe, par site) et avertissements (heures vs créneaux,
  alertes critiques à corriger avant de lancer).
- **Séances non placées** (post-its, à droite) — *après un échec* : la
  sortie d'une génération incomplète. Le bouton de positionnement (punaise)
  sur chacune montre, par les créneaux colorés, pourquoi aucune place ne
  convient.
- **Détection de groupes oubliés** : groupes définis mais sans aucun
  cours affecté.

#### Procédure — Diagnostiquer une génération qui échoue

1. **Quand la génération échoue**, Omniscol affiche une bannière rouge,
   garde l'EDT partiel visible, et place les séances qu'il n'a pas pu
   caser dans la **barre des post-its**, à droite.
2. **Lisez la bannière** : elle donne une **direction** (heuristique, cf.
   plus haut), pas un verdict.
3. **Partez des séances non placées, pas de « conflits ».** La génération
   ne crée jamais de conflit : elle laisse simplement de côté ce qui ne
   rentre pas. Prenez une séance dans les post-its et cliquez son bouton de
   positionnement (punaise,
   Positionner sur l'emploi du temps).
4. **Lisez les créneaux colorés.** Omniscol affiche tous les créneaux
   candidats ; pour une séance impossible à placer, ils sont tous bloqués.
   Cherchez **pourquoi**, dans l'ordre des trois bloquants usuels : le
   **professeur** occupé ou indisponible, la **classe** (ou le groupe)
   occupée, ou **aucune salle** libre et compatible. La raison s'affiche au
   survol du créneau.
5. **Relâchez la contrainte qui bloque** — selon le cas : assouplir des
   disponibilités, ajouter ou libérer une salle, harmoniser un alignement,
   élargir la grille (cf. les causes ci-dessus) — puis relancez.
6. **Avant de relancer**, parcourez la checklist plus haut (sites
   assignés, matières et professeurs en place, effectifs renseignés,
   disponibilités validées, pas d'alerte critique dans l'onglet
   **Génération**).

#### Voir aussi

- [Génération automatique](#page-timetables.generation)
- [Conflits et diagnostic](#page-timetables.conflicts)
- [Diagnostic](#page-glossary.diagnostic)
- [Conflit](#page-glossary.conflict)
- [Cas particuliers et configurations avancées](#page-faq.edge-cases)

<a id="page-timetables.visualize-duplicate"></a>

### 3.23  Visualiser, dupliquer, réorganiser un EDT

*Source: `help/fr/timetables/visualize-duplicate.md` · id: timetables.visualize-duplicate · Audience: admin · Updated: 2026-06-25*

Une école a souvent **plusieurs EDT** à différents stades : l'EDT
actif sur l'année courante, un brouillon pour la rentrée suivante,
un scénario de test pour explorer une réorganisation. Cette page
résume comment gérer ces multiples versions sans confusion, et à quoi
servent les écrans **Visualiser** et **Réorganiser** une fois un EDT
généré.

#### Voir la liste des EDT

Le module **Gestion des EDT** s'ouvre sur la liste des EDT du compte :
actifs et brouillons. Pour chaque EDT, vous voyez :

- son **libellé** (`Année 2026-2027`, `Brouillon rentrée 2027`,
  `Scénario fusion 6e/5e`),
- son **statut** (publié ou non publié),
- la **plage de semaines** sur laquelle il est publié (le cas
  échéant),
- les **statistiques rapides** (nombre de classes, nombre de cours,
  nombre de professeurs).

Les actions disponibles permettent notamment d'ouvrir, dupliquer ou
supprimer un EDT. La suppression est désactivée sur un EDT publié.

#### Visualiser un EDT généré

Le bouton Visualiser ouvre l'EDT en
**lecture seule** : vous regardez l'EDT final sans pouvoir le modifier.
C'est l'écran à privilégier pour **relire** avant publication,
**vérifier** une semaine ou un enchaînement de cours, **montrer** l'EDT
sans donner accès aux fonctions d'édition, **exporter** ou **partager**.

##### Une inspection sans risque

L'écran reprend le moteur d'affichage habituel des EDT, mais en mode
**sécurisé** : pas de déplacement de séance, pas d'enregistrement, pas de
correction involontaire. Vous y retrouvez les filtres d'affichage, le
sélecteur de jours, les différents modes d'affichage (grille, liste,
tableau, planning, jour, mois, vis-à-vis — détaillés dans
[Affichage des EDT](#page-schedules.schedule-display)) et la fermeture rapide de plusieurs
calendriers ouverts côte à côte.

##### Semaines alternées et variantes

C'est particulièrement utile quand l'EDT gère des **semaines alternées** :
vous affichez la vue **Toutes les semaines**, puis les **variantes** une
par une via les onglets dédiés (A/B, 1/2, etc.). C'est souvent le moyen le
plus simple de vérifier qu'un EDT récurrent est cohérent sur l'ensemble de
ses variantes, sans le bruit des outils d'édition.

##### Partager en lecture seule

Depuis cet écran, vous ouvrez la fonction de **partage** : vous diffusez le
planning théorique complet en lecture seule à une tierce partie
(partenaire externe, direction, responsable de site), via un lien web,
sans ouvrir l'accès au compte Omniscol. Pour un EDT de type calendrier, un
lien **iCal** est aussi disponible. Détails dans [Partager un EDT par lien public](#page-schedules.share-link).

##### Exporter (PDF, Excel, impression)

L'écran Visualiser est le point naturel pour sortir un fichier de l'EDT
affiché :

- Exporter les données au format PDF pour générer un **PDF**,
- Exporter les données au format Excel pour exporter en **Excel / XLSX**,
- Imprimer pour l'**impression**.

Pour les EDT de classes et de professeurs, c'est généralement le plus
direct pour produire un document propre à transmettre.

#### Réorganiser rapidement un EDT finalisé

Le bouton Réorganiser ouvre le
même EDT en mode **édition rapide**. L'idée n'est pas de refaire toute
la construction de l'EDT, mais de corriger rapidement des cas marginaux sur
un planning déjà abouti.

Cas typiques :

- déplacer une séance déjà générée,
- changer une salle, un créneau ou une affectation ponctuelle,
- ajouter une séance de cours isolée,
- corriger quelques conflits résiduels sans repasser par toute la
  chaîne **répartition des heures → génération**.

Dans cet écran, vous retrouvez la grille, les filtres, le panneau des
créneaux disponibles, le bouton Ajouter
et le bouton Enregistrer
pour enregistrer les modifications.

Si la modification devient **structurelle** (classes, groupes,
matières, volumes horaires, contraintes globales), revenez plutôt aux
étapes de construction de l'EDT ou dupliquez l'EDT pour travailler sur
un brouillon.

#### Dupliquer un EDT

Trois cas typiques :

- **Préparer l'année suivante** depuis l'EDT actif — voir
  [Préparer la rentrée suivante](#page-timetables.next-school-year).
- **Créer un scénario de test** depuis l'EDT actif pour explorer une
  modification structurante sans risque (fusion de classes,
  réorganisation des sites, ajout d'une nouvelle filière).
- **Repartir d'un ancien EDT conservé dans le compte** — récupérer une
  structure d'une année passée comme base pour une nouvelle.

L'action Dupliquer
ouvre un dialogue. La copie créée est toujours un **brouillon non
publié** : elle ne devient active que lorsque vous la publiez
explicitement. Le dialogue présente un arbre de cases **toutes cochées
par défaut** : tout laisser coché produit une copie identique ; décocher
une case retire l'élément correspondant de la copie.

##### Choisir ce qui est repris

L'arbre suit la structure de l'EDT ; décochez une branche pour la
reconstruire à neuf :

- **Sites** — avec leurs salles et leurs ressources. Décocher les sites
  retire aussi les salles et les ressources portées par les séances de cours
  **et les placements des séances** : la copie repart alors d'une grille à
  replacer.
- **Professeurs** — le vivier de professeurs de l'EDT. Décocher le
  vivier retire du même coup les affectations professeur-classe-matière
  et les professeurs portés par les séances de cours.
- **Classes** — avec leurs groupes, leurs disponibilités, leurs
  incompatibilités et la répartition des heures. Chaque sous-branche se
  décoche séparément : groupes, disponibilités de classe,
  incompatibilités, ou le détail des séances de cours (groupes, salles,
  ressources, modalité, commentaire, positions…).
- **Positions des séances** — décochée seule, la copie conserve toute la
  structure mais **la grille est vide** : c'est la façon propre de
  cloner une préparation pour relancer une génération depuis zéro.

Les dépendances sont appliquées automatiquement : vous ne pouvez pas
garder une salle sur une séance tout en retirant l'ensemble des sites, par
exemple. Et quel que soit le niveau de détail décoché, Omniscol nettoie
les références devenues orphelines — une classe qui pointait vers un
site retiré, par exemple.

##### Transformer le type d'EDT

> _Premium_

La même boîte de dialogue peut **convertir** la copie vers un type
différent de l'original. Le sélecteur ne propose que les deux **autres**
types. Convertir recale les séances sur la nouvelle représentation.

- **Vers un calendrier** (depuis un hebdomadaire ou un cyclique) — vous
  indiquez une **période** (date de début et de fin). Chaque séance
  récurrente est **déployée en une séance datée pour chaque jour ouvré
  correspondant** de la période ; les jours fériés, fermetures et
  absences sont sautés. Le volume horaire de chaque matière est ajusté
  au nombre de semaines de la période, et les semaines alternées sont
  résolues date par date sur la bonne variante (A/B, A/B/C…).
- **Vers un cycle** — vous indiquez la **longueur du cycle** en jours
  ouvrés ; chaque position devient un numéro de jour dans le cycle.
- **Vers un hebdomadaire** (depuis un cyclique ou un calendrier) — chaque
  séance retombe sur son **jour de semaine**.

Convertir vers un hebdomadaire ou un cycle est volontairement
simplificateur : plusieurs séances qui tombaient le même jour de semaine
se regroupent sur un même créneau, et les disponibilités datées d'un
calendrier ne sont pas reportées. Réservez la conversion vers un
calendrier aux cas où vous voulez réellement des dates explicites.

> _Premium_

##### Décaler les dates (EDT calendrier)

Pour un EDT de type **calendrier**, la duplication peut **recaler toutes
les séances** sur une nouvelle date de début — pratique pour rejouer la
même organisation sur l'année suivante. Vous cochez l'option de décalage,
indiquez la nouvelle date de début, et Omniscol décale la période puis
réaligne chaque séance.

Le principe : Omniscol **conserve la succession des journées de cours**.
La Nᵉ journée de cours de la période d'origine devient la Nᵉ journée de
cours de la nouvelle période — le réalignement suit les jours ouvrés, et
non la date calendaire brute.

Une séance peut donc **changer de jour de semaine**, pour deux raisons.
D'abord parce que la nouvelle date de début ne tombe pas forcément le
même jour que l'ancienne : si l'origine commence un lundi et la cible un
mercredi, tout glisse de deux jours. Ensuite — et c'est le cas le plus
fréquent — parce que les jours fériés et les fermetures des deux périodes
ne coïncident pas. Les séances qui tombent hors de la nouvelle période
**repassent en non positionnées** : les séances et tous ses détails restent,
seul le placement est perdu.

#### Réorganiser une école dans Omniscol

Pour une réorganisation structurante (passage d'un fonctionnement
en classes traditionnelles à un mode par groupes, fusion de
niveaux, ouverture d'un nouveau site), travaillez sur un **EDT
brouillon** dédié :

1. Dupliquez l'EDT actif vers `Scénario réorganisation 2027-2028`.
2. Modifiez la structure (classes, groupes, sites) dans le brouillon.
3. Lancez le diagnostic et la génération pour mesurer la faisabilité.
4. Itérez sans toucher au compte de production.
5. Quand le scénario est validé, vous pouvez basculer en publication.

L'avantage : tant que le scénario reste brouillon, les utilisateurs
finaux (élève, professeur) ne voient rien. Seuls les administrateurs ont
accès au brouillon.

#### Supprimer un brouillon inutile

Un EDT non publié peut être supprimé depuis la liste. Pour conserver
une trace avant suppression, ouvrez d'abord l'EDT puis exportez-le en
JSON via [download]. Détails dans
[Génération automatique](#page-timetables.generation).

Un EDT publié ne doit pas être supprimé directement : retirez d'abord
sa publication dans la grille de répartition si vous devez vraiment le
sortir de l'opérationnel.

#### Procédure — Créer un scénario de test à partir d'un EDT actif

1. **Pour explorer une réorganisation** (fusion de classes, nouveau
   site, passage en groupes) sans toucher au compte de production :
   travaillez sur un **brouillon de scénario** dupliqué depuis l'EDT
   actif. Les utilisateurs ne voient rien tant qu'il reste brouillon.
2. **Ouvrez le module Gestion des EDT** : la liste affiche les EDT du
   compte avec leur statut publié/non publié, leurs plages de semaines
   et leurs stats rapides (classes, cours, professeurs).
3. **Cliquez sur [copy] Dupliquer** sur l'EDT actif. Dialogue :
   cochez ce qui est repris — **sites** (salles, ressources),
   **professeurs**, **classes** (groupes, disponibilités), **cours** et leurs
   détails. Pour un scénario, gardez souvent structure et cours, en
   décochant les affectations de professeurs à refaire.
4. **Donnez un libellé parlant** : `S1 26-27`, `T3 2027`,
   `Test nouveau site Paris`, `Réorga groupes options`. Plus le libellé
   est explicite, moins vous risquez de confondre dans 3 mois.
5. **Modifiez la structure dans le brouillon** : créez ou fusionnez
   les classes, ajoutez le site, réorganisez les groupes. **Lancez la
   génération** pour mesurer la faisabilité. Itérez tranquillement —
   zéro impact sur l'EDT actif.
6. **Si le scénario est validé**, basculez en publication (voir
   [Publication](#page-timetables.publication)). Sinon, gardez-le comme
   brouillon ou exportez-le en JSON avant suppression.

#### Voir aussi

- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Affichage des EDT](#page-schedules.schedule-display)
- [Partager un EDT par lien public](#page-schedules.share-link)
- [Préparer la rentrée suivante](#page-timetables.next-school-year)
- [Publication d'un EDT](#page-timetables.publication)

<a id="page-timetables.next-school-year"></a>

### 3.24  Préparer la rentrée suivante

*Source: `help/fr/timetables/next-school-year.md` · id: timetables.next-school-year · Audience: admin · Plan: standard · Updated: 2026-06-25*

La construction d'un EDT pour l'année suivante peut démarrer six à neuf
mois avant, en parallèle de l'opérationnel. Le principe est de
dupliquer l'EDT actif pour créer un brouillon, puis de travailler sur ce
brouillon sans modifier l'EDT publié.

#### Trois éléments à transposer

Trois familles à reprendre depuis l'année courante vers l'année
suivante :

1. **Structure** — sites/salles, classes, groupes, partitions, alignements,
   groupes de groupes. Souvent reconductible à 80-90 % d'une année
   sur l'autre, avec des ajustements en marge.
2. **Séances de cours** — la liste des cours à programmer (matière, classe,
   professeur, durée, nombre d'occurrences hebdomadaires). Reconductible
   à 70-80 %, avec les évolutions de programme.
3. **Affectations professeur-classe-matière** — qui enseigne quoi.
   Plus volatile (départs, arrivées, changements de service).

#### Lancer la duplication

Depuis le module Gestion des EDT, utilisez l'action
Dupliquer sur
l'EDT qui servira de base. Le dialogue coche tout par défaut ; décochez
ce que vous préférez reconstruire :

- **Sites** — avec leurs salles et leurs ressources.
- **Professeurs** — l'affectation des professeurs à l'EDT ; leurs disponibilités
  suivent. Selon votre politique, en EDT récurrent, vous pouvez préférer leur redemander
  leurs disponibilités pour la nouvelle année plutôt que reprendre les anciennes.
- **Classes** — avec leurs cours, groupes, alignements, disponibilités et
  incompatibilités.
- **Séances de cours** (répartition des heures) — avec le détail à conserver ou
  non : affectations des professeurs aux séances, groupes, salles,
  ressources, positions. Souvent à passer en revue, car les professeurs
  et les élèves vont changer.

Le brouillon créé n'est pas publié : il ne touche pas l'EDT actif sur
l'année courante. Pour les EDT hebdomadaires ou cycliques, la
publication sur les semaines de l'année suivante se fait ensuite dans la
grille de répartition. La duplication peut aussi, au passage, **décaler
les dates** des séances (pour un EDT calendrier) ou **transformer le type
d'EDT** : ces deux options et leurs effets — notamment le réalignement
des séances et les regroupements — sont détaillés dans
[Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate).

#### Travailler sur le brouillon

L'EDT préparé apparaît dans la liste comme brouillon. Renommez-le avec
un libellé explicite, par exemple `S1 27-28`. Vous pouvez :

- l'ouvrir pour modifier les classes, ajouter les nouveaux professeurs,
  retirer les anciens,
- demander aux professeurs en place leurs disponibilités pour la nouvelle
  année (envoi en masse via le module Administration),
- lancer la génération automatique pour vérifier la faisabilité,
- itérer tranquillement pendant des mois.

#### Publication à la rentrée

Quand l'EDT brouillon est prêt et que la nouvelle année scolaire
arrive, vous le **publiez** sur les semaines voulues. Voir
[Publication](#page-timetables.publication). Le brouillon devient
l'EDT actif, l'ancien EDT reste consultable comme historique.

#### Procédure — Préparer la rentrée N+1

1. **Démarrer N+1 en parallèle de l'opérationnel** : Omniscol isole
   le brouillon de l'EDT courant. Vous itérez sereinement pendant des
   mois sans rien casser.
2. **Préalable** : créez l'année scolaire N+1 dans
   [Administration → Année scolaire](#page-admin.school-year) avec ses
   dates et ses vacances. Elle sera nécessaire au moment de publier
   sur les semaines de cette année.
3. **Côté Gestion des EDT**, utilisez l'action
   Dupliquer sur l'EDT
   de référence. Tout est coché par défaut ; décochez ce qui sera
   reconstruit :

   - **Sites**, salles et ressources.
   - **Professeurs** affectés à l'EDT (leurs disponibilités suivent) — souvent à
     revoir, voire à redemander pour l'année neuve.
   - **Classes**, groupes et alignements — reconductibles à 80-90 %.
   - **Séances de cours** et leurs détails (affectations, salles, positions…) — à
     revoir, professeurs et élèves vont changer.
4. **Le brouillon est créé**. Renommez-le clairement, ouvrez-le, puis
   ajustez les classes (arrivées, départs, fusions), ajoutez les
   nouveaux professeurs et retirez les anciens.
5. **Demandez les disponibilités** aux professeurs en place via envoi en masse
   depuis Administration. **Lancez la génération auto** pour vérifier
   la faisabilité au plus tôt — itérez sur les contraintes, les
   volumes, les professeurs.
6. **Quand vous êtes prêt à la rentrée**, **publiez** le brouillon
   sur les semaines voulues (voir
   [Publication](#page-timetables.publication)). Le brouillon devient
   l'EDT actif sur N+1, l'ancien EDT N reste consultable comme
   historique.

   ⚠ N'oubliez pas la **flèche droite** de la ligne de temps ou changer
   l'année via le sélecteur, sinon vous restez sur l'année N (cf.
   [Ligne de temps et navigation temporelle](#page-core-concepts.timeline-navigation)).

#### Voir aussi

- [Année scolaire et vacances](#page-admin.school-year)
- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Publication d'un EDT](#page-timetables.publication)
- [Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate)

---

## 4. Tableau de bord

<a id="page-dashboard.overview"></a>

### 4.1  Vue d'ensemble du module Tableau de bord

*Source: `help/fr/dashboard/overview.md` · id: dashboard.overview · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-25*

Le module **Tableau de bord** (icône [gauge-high] dans le
menu de gauche) regroupe les statistiques calculées sur l'EDT opérationnel
(séances réellement positionnées et publiées, en tenant compte des
[absences](#page-glossary.absence) et des
[remplacements](#page-glossary.substitution)).

C'est un outil de **reporting** et de **pilotage** : combien d'heures
chaque professeur a-t-il enseignées, quelle est l'occupation des salles, quel
volume horaire par matière par classe, combien de jours de présence
par élève.

#### Indicateurs disponibles

Six axes d'analyse, accessibles par les onglets du module :

- Professeurs — matières enseignées, nombre de
  classes, heures comptabilisées, heures supplémentaires, heures annulées.
- Salles — heures occupées, jours
  d'ouverture, heures par jour, élèves accueillis.
- Ressources — heures d'utilisation, jours
  d'utilisation, quantité par jour.
- Matières — heures de cours, jours, séances,
  détail par classe.
- Classes — heures totales (avec proportion par
  groupe), jours, détail par matière et par professeur.
- Élèves — séances, heures, jours de
  présence, détail par matière.

#### Période d'analyse

Filtrable par **semaine**, **mois**, **année scolaire** ou **plage
de dates personnalisée**. La ligne de temps en haut sert à naviguer
temporellement.

#### Export

Le bouton Imprimer ouvre un tableau
copiable, imprimable ou exportable en CSV. Pour transmettre ces
chiffres, voir [Lien de partage](#page-glossary.share-link). Un lien iCal
n'a pas de sens ici : le Tableau de bord ne contient que des
statistiques, pas de séances datées.

#### Partage

Le bouton Partage génère un lien public
en lecture seule sur les statistiques de la période. Utile pour les
auditeurs externes, les responsables pédagogiques sans compte
Omniscol, etc.

#### Voir aussi

- [Tableau de bord](#page-glossary.dashboard)
- [Statut](#page-glossary.lesson-status)
- [Consulter et filtrer](#page-schedules.consult-and-filter)
- [Gestion des EDT](#page-timetables.overview)

<a id="page-dashboard.tools-and-filters"></a>

### 4.2  Utiliser les tableaux et graphiques

*Source: `help/fr/dashboard/tools-and-filters.md` · id: dashboard.tools-and-filters · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18*

Les onglets du **Tableau de bord** combinent un tableau et des
graphiques. Le tableau sert à contrôler le détail ; les graphiques
servent à visualiser rapidement la répartition ou les valeurs extrêmes.

#### Recherche et graphiques

La recherche filtre les lignes du tableau. Les graphiques se recalculent
sur les lignes visibles : si vous cherchez une matière, un site ou un
professeur, les graphiques reflètent uniquement ce périmètre.

La recherche est tolérante aux majuscules, aux accents et aux espaces
superflus. Plusieurs mots dans la même recherche sont interprétés comme
des critères à respecter ensemble. Une virgule permet de chercher
plusieurs possibilités.

Exemples :

- `math durand` affiche les lignes qui contiennent à la fois `math` et
  `durand`.
- `amphi, laboratoire` affiche les lignes correspondant à l'un ou
  l'autre terme.
- `site nord >50` peut servir, dans une liste de salles, à isoler les
  salles du site nord dont la capacité dépasse 50 places.

#### Tri des colonnes

Les en-têtes de colonnes triables permettent de réordonner le tableau :
ordre alphabétique pour les noms, ordre numérique pour les compteurs,
ordre horaire pour les durées. Cliquez de nouveau sur le même en-tête
pour inverser le tri.

Le tri est utile avant un export : vous pouvez par exemple faire remonter
les professeurs avec le plus d'heures ajoutées, les salles les plus
occupées ou les classes ayant le plus fort volume horaire.

#### Copier un graphique

Pour réutiliser un graphique dans un document, un courriel ou une
présentation :

1. filtrez le tableau si nécessaire ;
2. vérifiez que le graphique affiche le bon périmètre ;
3. faites un clic droit sur le graphique ;
4. choisissez **Copier l'image** dans le navigateur.

Le graphique copié correspond à l'état affiché à l'écran.

#### Exporter ou partager

Le bouton Imprimer ouvre les options de
copie, d'impression ou d'export proposées pour le tableau affiché.
Selon l'onglet, l'export peut servir à préparer un fichier Excel pour la
comptabilité, à transmettre un relevé à un responsable pédagogique ou à
conserver une trace pour audit.

Le bouton Partage crée un lien de partage
en lecture seule. Le destinataire consulte les statistiques de la
période sans pouvoir modifier l'EDT.

#### Voir aussi

- [Recherche et filtres](#page-core-concepts.search-and-filter)
- [Statistiques professeurs](#page-dashboard.teachers)
- [Statistiques salles](#page-dashboard.classrooms)

<a id="page-dashboard.teachers"></a>

### 4.3  Statistiques professeurs

*Source: `help/fr/dashboard/teachers.md` · id: dashboard.teachers · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13*

L'onglet Professeurs consolide les heures réellement comptabilisées
sur la période affichée. Il sert au suivi de service, à la préparation de
la paie, aux exports comptables et au contrôle des remplacements.

#### Indicateurs principaux

- **Heures comptabilisées** : volume retenu pour le suivi administratif
  et, selon l'organisation de l'établissement, pour la paie.
- **Heures supplémentaires** (Heures supplémentaires) : heures issues
  d'un remplacement dans le module Gestion des absences ou d'un ajout manuel sur une
  séance datée d'un EDT récurrent.
- **Heures annulées** (Heures annulées) : heures retirées par
  une absence ou par la suppression manuelle d'une séance datée d'un EDT
  récurrent.
- **Classes et matières** : périmètre d'enseignement du professeur sur la
  période.
- **Types de cours** : détail des volumes par type de cours lorsque les
  cours sont typés.

Les heures supplémentaires et annulées permettent de distinguer le
service prévu du service effectivement réalisé sur la période.

#### Détail par type de cours

Le détail par type de cours est utile quand la comptabilisation dépend
du format pédagogique : cours magistral, TD, TP, accompagnement,
atelier, ou toute autre typologie configurée par l'établissement.

Ce détail aide à vérifier les volumes payables, les règles internes de
valorisation et les besoins de justification auprès de la comptabilité
ou d'un organisme d'audit.

#### Export, partage et comptabilité

Le tableau peut être copié, imprimé ou exporté pour un traitement dans
Excel ou dans un outil comptable. Le lien de partage en lecture seule
permet de transmettre un relevé sans donner accès à l'édition de l'EDT.

Pour un raccordement récurrent avec un logiciel de comptabilité, un flux
ETL ou une intégration dédiée peut reprendre ces statistiques selon le
format attendu par l'établissement.

> _Premium_

Sur un compte **Premium**, l'export de ce tableau ajoute deux colonnes
issues du suivi fin des séances : **Durée réelle**
(durée réellement effectuée, distincte de la durée comptabilisée) et
**Réalisé** (volume dont la séance est marquée
réalisée). Pratique pour rapprocher service prévu, service comptabilisé
et service effectivement assuré. À l'inverse, les séances en
**Brouillon** ou **Annulé** sont
exclues de ces chiffres. Voir [Statut](#page-glossary.lesson-status).

#### Points de contrôle

Avant d'utiliser ces chiffres pour la paie, vérifiez que la période est
correcte, que les absences ont été validées, que les remplacements sont
bien enregistrés et que les séances datées ajoutées ou retirées reflètent
la réalité opérationnelle.

#### Voir aussi

- [Suivi et export des absences](#page-absences.statistics)
- [Statut](#page-glossary.lesson-status)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
- [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)

<a id="page-dashboard.classrooms"></a>

### 4.4  Statistiques salles

*Source: `help/fr/dashboard/classrooms.md` · id: dashboard.classrooms · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13*

L'onglet Salles analyse l'utilisation réelle des salles sur la
période affichée. Il sert à repérer les salles sous-utilisées, les
salles trop sollicitées et les déséquilibres par site ou bâtiment.

#### Indicateurs suivis

Le tableau affiche notamment le nombre de séances, les heures occupées,
les jours d'utilisation, les heures par jour et les effectifs accueillis.
Lorsque les données sont renseignées, les colonnes de site, bâtiment,
spécialisation et tags facilitent les analyses par zone ou par type de
salle.

Les graphiques aident à visualiser la répartition de l'occupation, les
volumes d'heures et les écarts de fréquentation.

#### Sous-utilisation et sur-utilisation

Une salle très peu remplie par rapport à sa capacité peut signaler une
mauvaise affectation, une salle spécialisée mal exploitée ou un
rééquilibrage possible. Les salles utilisées à moins de 25 % de leur
capacité méritent généralement une vérification.

À l'inverse, une salle utilisée au-delà de sa capacité signale un risque
opérationnel : effectif trop élevé, salle mal affectée ou données de
capacité à corriger.

#### Analyse des bâtiments

L'onglet permet de répondre à des questions comme :

- quels bâtiments concentrent l'occupation ;
- quelles salles restent peu utilisées ;
- quelles spécialités de salles manquent ou sont surdimensionnées ;
- quels sites pourraient être réorganisés.

Pour des analyses plus fines, par exemple comparer les heures occupées
aux heures d'ouverture d'un bâtiment ou aux plages de cours possibles,
l'établissement peut exporter le tableau et le retravailler dans un
outil externe, ou interroger le compte depuis un agent IA externe
raccordé en [MCP](#page-integrations.mcp), selon le profil, les droits et
les outils exposés.

#### Filtrer les salles

La recherche accepte les comparateurs de capacité (`>50`, `<=100`, etc.)
et les termes de site, bâtiment, spécialisation ou tags. Les graphiques
se recalculent sur les salles filtrées.

#### Voir aussi

- [Recherche et filtres](#page-core-concepts.search-and-filter)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
- [Sites, salles et ressources](#page-timetables.sites-rooms)

<a id="page-dashboard.subjects"></a>

### 4.5  Statistiques matières

*Source: `help/fr/dashboard/subjects.md` · id: dashboard.subjects · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18*

L'onglet Matières montre comment les volumes d'enseignement se
répartissent sur la période affichée : globalement, par classe, par
professeur et par type de cours lorsque cette information est renseignée.

#### Ce que la page permet de vérifier

- le volume total consacré à chaque matière ;
- la répartition par classe ;
- la répartition par professeur ;
- la part de chaque type de cours, par exemple TP, TD, cours magistral
  ou atelier ;
- les éventuelles modalités utilisées par l'établissement.

#### Analyse pédagogique

Cette vue aide à contrôler que les volumes réellement programmés restent
cohérents avec les maquettes pédagogiques, les engagements de formation
et les répartitions attendues entre types d'enseignement.

Elle est particulièrement utile pour répondre à des questions comme :
combien d'heures de TP ont été planifiées, quelle classe reçoit le plus
d'heures dans une matière, ou quels professeurs assurent une matière sur
la période.

#### Graphiques et filtres

La recherche permet d'isoler une matière, une classe, un professeur ou
un type de cours. Les graphiques se recalculent sur les lignes visibles,
ce qui permet de produire rapidement une vue ciblée avant copie ou
export.

#### Voir aussi

- [Statistiques classes](#page-dashboard.classes)
- [Statistiques professeurs](#page-dashboard.teachers)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)

<a id="page-dashboard.classes"></a>

### 4.6  Statistiques classes

*Source: `help/fr/dashboard/classes.md` · id: dashboard.classes · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18*

L'onglet Classes consolide les volumes suivis par chaque classe sur
la période affichée. Il sert à contrôler la charge réelle de formation,
les répartitions par matière et les justificatifs demandés lors
d'accréditations ou de certifications.

#### Indicateurs suivis

La page permet notamment de suivre :

- les heures totales de la classe ;
- le nombre d'étudiants théorique et réel lorsque les groupes sont
  renseignés ;
- les jours de cours ;
- la répartition par matière ;
- la répartition par professeur ;
- le détail par type de cours ;
- les groupes et sous-groupes impliqués.

#### Accréditations et certifications

Les statistiques classes aident à documenter les volumes dispensés dans
un programme. Elles peuvent être utiles pour des démarches comme
Qualiopi ou CTI en France, ou AMBA, EQUIS et AACSB à l'international,
lorsque l'établissement doit justifier les volumes, formats et
répartitions d'enseignement.

#### Qualité des données

La précision dépend de la qualité des classes, groupes, matières,
types de cours et affectations professeurs dans l'EDT. Les groupes bien
renseignés permettent d'obtenir des chiffres plus fiables sur les
volumes réellement suivis par les étudiants concernés.

#### Voir aussi

- [Statistiques matières](#page-dashboard.subjects)
- [Statistiques professeurs](#page-dashboard.teachers)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)

<a id="page-dashboard.students-resources"></a>

### 4.7  Statistiques étudiants et ressources

*Source: `help/fr/dashboard/students-resources.md` · id: dashboard.students-resources · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18*

Les onglets Élèves et Ressources complètent l'analyse du
Tableau de bord. Ils sont plus ciblés que les vues professeurs, salles,
matières ou classes, mais restent utiles pour contrôler les données
opérationnelles.

<a id="page-dashboard.students-resources--students"></a>
#### Élèves

L'onglet Élèves présente les séances,
heures et jours suivis par élève sur la période affichée. Lorsque
les classes, groupes et sous-groupes sont correctement renseignés, les
statistiques reflètent plus précisément les volumes réellement concernés
par chaque élève.

Les absences sont prises en compte avec des colonnes dédiées, notamment
le nombre d'heures, de séances et de jours d'absence. Cette vue aide à
repérer les situations individuelles qui demandent une vérification ou un
suivi administratif.

<a id="page-dashboard.students-resources--resources"></a>
#### Ressources

L'onglet Ressources suit l'utilisation des ressources matérielles :
heures d'utilisation, jours d'utilisation et quantité mobilisée par jour.
Il sert surtout à vérifier qu'un matériel partagé est effectivement
utilisé et à repérer les périodes ou ressources peu sollicitées.

#### Exploitation

Comme dans les autres onglets, la recherche filtre les lignes visibles,
les graphiques s'adaptent au périmètre affiché et les données peuvent
être copiées, imprimées, exportées ou partagées en lecture seule.

#### Voir aussi

- [Statistiques classes](#page-dashboard.classes)
- [Absences classes et étudiants](#page-absences.class-and-student-absences)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)

---

## 5. Usage quotidien (module Emploi du temps)

<a id="page-schedules.consult-and-filter"></a>

### 5.1  Consulter et filtrer les emplois du temps

*Source: `help/fr/schedules/consult-and-filter.md` · id: schedules.consult-and-filter · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26*

Le module **EDT** (icône [calendar-days] dans le
menu de gauche) est l'écran de consultation au quotidien.
Il affiche les EDT publiés sur la période sélectionnée, avec tous les
filtres et toutes les vues utiles.

#### Filtres disponibles

- **Classe**, **professeur**, **groupe** (avec ou sans la classe
  entière),
- **Salle**, **ressource**,
- **Professeurs par matière**, **équipe pédagogique** (tous les
  professeurs d'une classe), **matière**,
- **Type de cours** (TD, TP, examen, magistral…) si configuré,
- **Élève** (si les élèves sont saisis et affectés à des
  classes).

Vous pouvez **empiler plusieurs EDT à la suite** : pratique pour avoir
sous les yeux la classe et un professeur particulier, ou plusieurs
classes en parallèle.

#### Vues

Le composant d'affichage combine deux niveaux :

- un **mode de rendu** : **grille**, **liste** ou **tableau** type
  tableur ;
- une **organisation temporelle** : **semaine**, **jour**, **mois**,
  **planning** (et **planning par heures**) ou **vis-à-vis**.

La grille est la vue calendrier standard. Le tableau, lui, sert à
présenter la vue en cours dans un format tabulaire plus proche d'un
tableur ; ce n'est pas la vue de base.

Voir [Affichage des EDT](#page-schedules.schedule-display).

#### Ligne de temps et navigation

La **ligne de temps** en haut indique :

- les **vacances** en barres horizontales grises,
- la **période sélectionnée** (semaine, mois, parfois année scolaire)
  en zone verte avec dates en surimpression,
- la **navigation** : touches gauche/droite du clavier, swipe sur
  smartphone, ou boutons `◀ ▶︎`.

Les boutons `◀` et `▶︎` aux **extrémités** de la ligne de temps permettent
de **changer d'année scolaire**.

#### Cache et performance

Omniscol exploite intensivement le cache navigateur. L'application ne
recharge les EDT que quand vous changez de semaine — cliquer à
nouveau sur la semaine active **force un rafraîchissement**.

Cela permet à Omniscol de fonctionner même sur connexion 2G (Edge),
et de continuer à fonctionner pendant des micro-coupures internet
(les requêtes seront rejouées au retour).

#### Mode édition

Le bouton Réorganisation fait basculer
en mode édition : voir
[Modifications ponctuelles](#page-schedules.ad-hoc-changes).

#### Exporter / partager

- Imprimer — imprimer la sélection
  courante (ou l'enregistrer en PDF via le navigateur).
- Partage — ouvrir la fenêtre de partage :
  [lien web](#page-glossary.share-link) public, abonnement
  [iCal](#page-glossary.ical) ou représentation JSON (API) selon vos
  droits.

#### Voir aussi

- [Modifications ponctuelles](#page-schedules.ad-hoc-changes)
- [Conflits et diagnostic](#page-timetables.conflicts)
- [Affichage des EDT](#page-schedules.schedule-display)
- [Statut](#page-glossary.lesson-status)
- [Imprimer et partager](#page-schedules.print-and-export)

<a id="page-schedules.schedule-display"></a>

### 5.2  Affichage des EDT : grille, liste, tableau, planning, mois, vis-à-vis

*Source: `help/fr/schedules/schedule-display.md` · id: schedules.schedule-display · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26*

Cette page décrit l'**affichage commun des EDT** dans Omniscol. On le
retrouve dans **EDT**, dans l'écran
**Répartition des heures** quand on bascule en vue **emplois du
temps**, dans les écrans **Visualiser** et
**Réorganiser** de **Gestion des EDT**, et plus
largement dans les autres écrans qui
ouvrent un calendrier d'EDT avec le même moteur d'affichage.

Les mêmes séances peuvent être lues sous plusieurs présentations sans
changer les données affichées : on change l'affichage, pas l'EDT.

#### Changer d'affichage

Les icônes de transformation sont attachées à **chaque EDT affiché**.
Pour les faire apparaître, **survolez le titre de l'EDT** : la barre de
titre révèle alors les icônes de transformation de la vue. Cliquez celle
que vous voulez :

- [calendar] pour la **grille**, [table-list] pour la
  **liste**, [table] pour le **tableau** (réservé aux
  administrateurs, sur ordinateur) ;
- sur un **planning par heures**, [up-down] **inverse les jours
  et les colonnes**.

La barre de titre porte aussi le partage et la fermeture du calendrier.
Comme chaque EDT garde son propre affichage, sur plusieurs calendriers
empilés vous pouvez en lire un en liste et un autre en grille.

#### Trois modes de rendu pour un même EDT

Le premier niveau de bascule concerne le **rendu** des mêmes séances.

##### Grille

La **grille** (Vision en grille) est la vue calendrier standard :
jours en colonnes, créneaux ou heures en lignes, séances placées dans
leurs cases. C'est la vue de référence pour lire un EDT semaine par
semaine.

C'est particulièrement utile pour :

- repérer immédiatement les trous, chevauchements et amplitudes,
- comparer visuellement une classe, un professeur ou une salle,
- modifier ou relire un EDT dans un repère temporel familier.

##### Liste

La **liste** (Vision en liste) affiche les séances les unes sous les
autres, dans l'ordre chronologique.

C'est particulièrement utile pour :

- parcourir vite une longue période sur petit écran,
- rechercher une séance précise avec les filtres,
- relire séquentiellement les horaires, salles et affectations.

<a id="page-schedules.schedule-display--table-view"></a>
##### Tableau

Le **tableau** est un **rendu type tableur** de
la vue en cours. Il sert à auditer, imprimer, copier les données vers
un tableur ou, selon l'écran, lancer directement un export fichier.
Ce n'est **pas** la vue calendrier standard.

Selon le contexte, il peut reprendre :

- une grille jours × créneaux dans un format plus tabulaire,
- ou une séance par ligne quand l'affichage source est déjà en liste.

Il est particulièrement utile pour :

- contrôle administratif,
- copier-coller vers un logiciel tableur,
- export direct en **PDF**, **CSV** ou **Excel / XLSX** quand l'écran le
  propose,
- vérifications ligne par ligne.

#### Portée temporelle : semaine, jour, mois

Le second niveau de bascule concerne la **période affichée**.

- **Semaine** : vue par défaut dans la plupart des cas.
- **Jour** : même logique que la grille standard, mais resserrée sur une
  seule journée pour lire plus finement un planning chargé.
- **Mois** : vision longue portée. En mode calendrier, l'affichage prend
  la forme d'une grille mensuelle matricielle ; en mode tableau, on
  reste sur un rendu tabulaire du même contenu.

Le sélecteur Choix des journées à afficher permet en plus de
masquer ou d'afficher certains jours dans les vues concernées.

#### Planning

Un **planning** se compose depuis le menu des filtres : il juxtapose
plusieurs entités ou plusieurs jours dans une même vue, pour raisonner
sur des ensembles. Deux variantes, selon l'axe que vous voulez lire :

- **Ajouter un planning** (icône [table-cells]) place une **entité par
  ligne** (classe, professeur, salle, matière) et les heures de chaque
  jour en colonnes — pour comparer plusieurs entités sur une même
  journée.
- **Ajouter un planning par heures** (icône [table-columns]) place les
  **heures en axe vertical** (à l'échelle du temps) et une **colonne par
  entité et par jour** — pour lire l'occupation et les enchaînements sur
  une vraie échelle horaire. Un bouton [up-down] inverse au
  besoin les jours et les colonnes.

Le planning sert notamment à :

- afficher **plusieurs entités côte à côte pour une même journée**,
- afficher **plusieurs jours pour une ou plusieurs entités**,
- lire l'occupation au mois,
- contrôler les enchaînements, les transitions ou les disponibilités.

Il complète la grille calendrier et répond à d'autres questions :
choisissez-le pour raisonner sur des ensembles d'entités ou de jours.

#### Vis-à-vis

La fonction Diviser l'écran ouvre un **vis-à-vis** : deux à
quatre EDT affichés côte à côte, chacun gardant ses propres filtres et
son propre mode d'affichage.

C'est utile pour :

- comparer deux classes ou deux professeurs,
- caler un cours commun ou une surveillance partagée,
- vérifier qu'un créneau libre existe simultanément des deux côtés.

#### Ce qui reste identique quand on change d'affichage

Basculer d'un mode à l'autre ne modifie pas les séances. Vous gardez le
même fond de données, avec selon les cas :

- les mêmes filtres d'entités,
- la même période sélectionnée,
- les mêmes conflits ou absences visibles,
- les mêmes actions d'impression, d'export ou de partage selon les
  droits de l'utilisateur.

#### Procédure — Choisir le bon affichage selon la tâche

1. **Pour lire rapidement un EDT** : partez de la **grille**. C'est la
   vue calendrier standard, la plus lisible pour une semaine de cours.
2. **Pour parcourir les séances une à une** : passez en **liste**.
   Utile sur petit écran ou pour retrouver une séance précise.
3. **Pour copier, imprimer, exporter ou auditer en mode tableur** :
   utilisez le **tableau**. C'est un rendu tabulaire de la vue en
   cours, pas la vue de base de l'EDT.
4. **Pour zoomer sur une seule journée** : choisissez la portée
   **jour**.
5. **Pour prendre du recul sur plusieurs semaines ou plusieurs dates** :
   passez en **mois** ou ouvrez un **planning** selon la question à
   traiter.
6. **Pour croiser plusieurs entités ou plusieurs jours dans une même
   lecture** : ajoutez un **planning** (ou un **planning par heures**
   pour une échelle horaire).
7. **Pour comparer deux EDT séparés** : utilisez le **vis-à-vis**.

#### Voir aussi

- [Consulter et filtrer](#page-schedules.consult-and-filter)
- [Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate)
- [Mode d'affichage de l'EDT](#page-glossary.schedule-view-mode)

<a id="page-schedules.ad-hoc-changes"></a>

### 5.3  Modifications ponctuelles d'un EDT publié

*Source: `help/fr/schedules/ad-hoc-changes.md` · id: schedules.ad-hoc-changes · Audience: admin · Plan: standard · Updated: 2026-06-26*

Omniscol n'est pas seulement un générateur d'EDT pré-rentrée — c'est
aussi un outil opérationnel pour gérer les modifications quotidiennes
au fil de l'année.

#### Activer le mode édition

Cliquez sur Réorganisation. Tous les
calendriers ouverts basculent en mode réorganisation. Les calendriers
nouvellement ouverts seront aussi directement éditables.

Positionnez-vous sur la semaine à modifier (ligne de temps en haut).

#### Modifier une séance

Cliquez sur une séance, un panneau apparaît (que vous pouvez déplacer
ou rendre semi-transparent) avec tous les attributs modifiables :

- professeur(s),
- groupe éventuel,
- ressources,
- salle(s) (voir [multi-salles](#page-glossary.multi-room)),
- mémos.

#### Modifier plusieurs séances à la fois

En mode réorganisation, **Maj+clic** sur plusieurs séances les sélectionne
ensemble (à partir de deux, elles ressortent en surbrillance). Le panneau
devient alors une **fiche commune** : la salle, le ou les professeurs, les
ressources, le mémo ou la durée que vous y réglez s'appliquent à **toutes
les séances sélectionnées** à l'enregistrement — pratique pour changer de
salle un bloc de séances d'un coup. Voir [Édition d'une séance de cours](#page-timetables.lesson-edit).

Plutôt que de cliquer chaque séance, le menu
Sélection de la fiche
**élargit la sélection** d'un seul clic :

- par **fenêtre temporelle** — toute la **journée**, la **semaine** ou le
  **mois** (selon le type d'EDT) ;
- par **similarité** — les **séances suivantes similaires** (même classe,
  matière, groupe et créneau : la récurrence d'un cours) ;
- par **partition** — les séances du même groupe en partition.

Chaque entrée indique le nombre de séances qu'elle ajoute, et une bascule
restreint la portée au planning courant ou l'étend à **tous** les
calendriers ouverts.

Le menu de **duplication** voisin ([copy]) recopie la ou les
séances — en plusieurs exemplaires, ou jusqu'à une date sur un EDT
calendrier. Son fonctionnement détaillé est décrit dans
[Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution).

#### Détacher ou supprimer une séance

Pour **détacher** une séance de la grille cliquez sur l'icône [scissors] du
panneau ou double-cliquez dessus. La séance rejoint la zone des séances non
positionnées à droite, où vous pouvez aussi la modifier.

Pour la **supprimer**, ouvrez son panneau et cliquez sur
Supprimer : là où le détachement conserve la
séance dans la zone à replacer, la suppression la retire de l'EDT. Comme
toute modification, elle apparaît dans le journal des modifications, où
vous pouvez l'annuler (voir plus bas).

#### Déplacer une séance

Ouvrez la séance et cliquez son bouton de positionnement
(Positionner sur l'emploi du temps, punaise) :
les créneaux possibles s'affichent en pastilles colorées (vert → rouge selon les
conflits). Cliquez le nouveau créneau.

Pour déplacer entre semaines, deux options :

- **vue mois** — visualisez plusieurs semaines à la fois, puis repositionnez la
  séance sur le créneau voulu ;
- **détacher / changer de semaine / replacer** — extraire la séance, changer la
  semaine active, replacer.

#### Différence avec les EDT calendriers

Sur un EDT [calendrier](#page-glossary.calendar-mode), une modification
**affecte directement la séance datée** (déjà unique pour cette date).

Sur un EDT [hebdomadaire](#page-glossary.weekly-timetable) ou
[cyclique](#page-glossary.cyclic-timetable), une modification ponctuelle
ne casse **pas** la semaine type — elle est enregistrée comme une
exception sur la date concernée. Les autres semaines continuent à
suivre la semaine type.

#### Voir et annuler les modifications

Le bouton Voir la liste des modifications apportées liste les modifications
en cours sur la période. Vous pouvez en annuler individuellement.

Sur un EDT **hebdomadaire ou cyclique**, une modification ponctuelle est
enregistrée comme une exception sur sa date : elle reste annulable **à
tout moment** depuis ce journal.

⚠ Sur un EDT **calendrier**, en revanche, les modifications sont
**consolidées définitivement à la sauvegarde** : annulez-les **avant
d'enregistrer**.

Ces modifications portent sur **une date précise**, pas sur la structure
de l'EDT. La structure — classes, groupes, **semaine type** — se modifie
à la **construction de l'EDT**, pas ici. Éditer une date **passée**
corrige donc l'historique de cette seule date : faites-le en
connaissance de cause.

#### Détection des conflits

La détection de conflits fonctionne en mode édition comme dans le module
Gestion des EDT : dès que vous déplacez ou modifiez une séance,
Omniscol vérifie en temps réel les double-réservations, dépassements de
capacité, contraintes horaires et absences.

Sur le calendrier, une séance en conflit porte un **double entourage
coloré** — rouge pour un conflit bloquant, orange ou jaune pour une gêne
à arbitrer. Le détail (type de conflit, séances impliquées, et par
exemple une salle manquante) s'affiche dans l'**info-bulle** au survol
de la séance.

La liste complète des types de conflits, les niveaux de gravité et le
panneau de diagnostic sont décrits dans [Conflits et diagnostic](#page-timetables.conflicts).

#### Voir aussi

- [Consulter et filtrer les EDT](#page-schedules.consult-and-filter)
- [Conflits et diagnostic](#page-timetables.conflicts)
- [Évènements ponctuels](#page-schedules.events)

<a id="page-schedules.events"></a>

### 5.4  Évènements ponctuels (hors EDT)

*Source: `help/fr/schedules/events.md` · id: schedules.events · Plan: premium · Updated: 2026-08-07*

> **Premium**

> _Premium_

Un **évènement ponctuel** est une séance qui ne fait pas partie de la
structure régulière de l'EDT : une réunion exceptionnelle, une sortie
scolaire, un examen sur une journée, une journée portes ouvertes, un
conseil de classe. Plutôt que de toucher à la structure régulière des
cours, vous créez un évènement daté qui se pose **par-dessus** la
grille sur un intervalle précis.

La création d'évènements ponctuels est disponible sur les comptes
**Premium**.

#### Quand créer un évènement vs une séance de cours

- **Cours régulier** : se répète toutes les semaines (ou une semaine
  sur deux) tout au long de l'année. Géré dans le module Gestion des EDT, intégré à la génération automatique.
- **Évènement ponctuel** : a lieu sur un intervalle daté, sans
  logique de récurrence régulière. Géré directement dans le module
  EDT.

Règle pratique : si vous l'écririez à la main sur un calendrier
plutôt que dans la grille hebdomadaire, c'est un évènement.

#### Créer un évènement — l'agenda d'évènements

Un évènement ne se saisit pas dans un formulaire isolé : il se trace
**directement sur l'agenda**, comme dans un calendrier. Sur la grille
des évènements, **cliquez-glissez** pour dessiner un intervalle sur une
journée (un aperçu s'affiche pendant le tracé). Au relâchement, une
fiche s'ouvre, ancrée sur la sélection, avec les dates et heures **déjà
pré-remplies** ; vous complétez :

- **Titre** — `Conseil de classe 6e B`, `Sortie au musée d'Orsay`,
  `Examen blanc - bac de français`.
- **Début** et **fin** — date, heure de début, heure de fin.
- **Participants** — classes, groupes, professeurs, élèves, ou des
  participants en **texte libre**.
- **Lieu** — salle connue d'Omniscol ou lieu saisi en **texte libre**.
- **Ressources** — matériel ou ressource à réserver si nécessaire.
- **Matières** et **étiquettes** — pour rattacher et retrouver
  l'évènement ; voir plus bas.
- Lien de visioconférence — optionnel, pour suivre l'évènement à
  distance.
- **Commentaire** — note libre qui apparaît avec l'évènement.
- **Couleur** — aide visuelle pour le distinguer dans la grille.

La sélection à la souris reste **contenue dans une même journée**.

##### Où se trouve l'agenda

- **Dans le module EDT**. Affichez
  le filtre **Évènements** : l'agenda n'est modifiable (traçage à la
  souris actif) qu'en mode **réorganisation** ; en consultation simple,
  il reste en lecture seule.
- **Dans l'édition d'un emploi du temps de type calendrier.** Le filtre
  **Évènements** n'y est proposé que pour un EDT **de type calendrier** ;
  il n'apparaît pas sur un EDT en grille hebdomadaire.

#### Matières et étiquettes

Deux champs servent à rattacher l'évènement à quelque chose de plus
large, et à le retrouver ensuite.

**Les matières.** Un évènement peut se rattacher à une ou plusieurs
matières : une conférence qui compte dans le module d'informatique,
une soutenance rattachée à son cursus. L'évènement apparaît alors dans
l'EDT quand vous filtrez sur cette matière, aux côtés des séances — et
son intitulé la reprend, ce qui aide à le reconnaître d'un coup d'œil.

Une matière posée sur un évènement ne consomme **aucune heure** :
elle ne compte ni dans le volume horaire de la matière, ni dans le
service des professeurs. Un évènement reste un évènement ; le
rattachement sert à dire à quoi il se rapporte, pas à enseigner.

**Les étiquettes.** Vous étiquetez vos évènements avec vos propres
mots — `sortie`, `jury`, `sans signature` —, réutilisables d'un
évènement à l'autre : les étiquettes déjà employées vous sont
proposées, pour éviter dix orthographes d'une même idée.

Une étiquette ne déclenche rien par elle-même. Elle sert à trier, et
surtout à décider ce qui sort d'Omniscol : les connecteurs vers les
outils externes savent filtrer sur ces étiquettes, par exemple pour
tout envoyer sauf ce que vous avez marqué `sans signature`.

#### Un enregistrement direct, en parallèle de l'EDT

Un évènement s'enregistre **immédiatement et séparément**, dès que vous
validez sa fiche : créer, déplacer ou supprimer un évènement déclenche
aussitôt son propre enregistrement (confirmé par une notification).
Vous n'avez **pas besoin** du bouton **Enregistrer** global de la
réorganisation ni de l'édition de l'EDT — les évènements sont déjà
sauvegardés. Réciproquement, enregistrer la réorganisation ou la
répartition horaire d'un EDT porte sur les **séances de cours**, pas sur les
évènements : c'est un sous-système parallèle, persisté au fil de l'eau.

#### Conflits avec les séances de l'EDT

Un évènement référence **les mêmes entités** que l'EDT — professeurs,
classes, groupes, salles, ressources — ce qui permet à Omniscol de
détecter les chevauchements avec les séances régulières. Quand vous
renseignez la fiche, chaque participant et chaque salle ou ressource est
testé contre ce qui est déjà placé sur l'intervalle :

- pour un **professeur**, une **classe** ou un **groupe**, l'évènement
  est comparé aux séances de cours **et aux autres évènements** ;
- les **salles** et **ressources** sont testées pour repérer une
  occupation déjà existante sur le créneau.

Ces vérifications alimentent les indications de disponibilité dans les
sélecteurs et remontent comme conflits dans la vue de réorganisation.
L'évènement se superpose à la grille : il **signale** le conflit mais
ne libère pas de lui-même les séances qu'il chevauche. Traitez-les
séparément (déplacement, modification ponctuelle, absence…).

#### Participants : tout le monde, ou n'importe qui

Au-delà des participants nommément désignés, deux participants
particuliers existent — et ils ne se comportent pas de la même façon
face aux conflits :

- **Tout le monde** — l'évènement concerne **toute l'école**, à titre
  **obligatoire**. Il s'affiche dans tous les EDT **et entre en conflit**
  avec les séances de cours existantes : à retenir pour une journée portes ouvertes
  ou un évènement qui mobilise réellement tout l'établissement.
- **N'importe qui** — l'évènement est ouvert à qui le souhaite, à titre
  **facultatif**. Il s'affiche lui aussi dans tous les EDT, mais **ne
  génère aucun conflit** : pour une proposition optionnelle qui ne doit
  bloquer la grille de personne.

Les deux s'affichent partout ; seul **Tout le monde** provoque des
conflits, parce qu'il rend la présence obligatoire.

#### Projection dans les EDT

Une fois créé, un évènement est **projeté dans chaque EDT concerné** :
il apparaît dans l'emploi du temps de chacun de ses professeurs,
classes, groupes et élèves participants, ainsi que dans celui de
chaque salle et ressource retenue (et partout, pour **Tout le monde** et
**N'importe qui**). C'est le même évènement vu sous plusieurs angles —
il est donc normal de le retrouver à la fois dans l'EDT de la classe, du
professeur et de la salle ; ce ne sont pas des doublons.

Un évènement n'a pas de champ « type » : il se distingue d'un cours
régulier par son titre, ses dates, ses participants et sa couleur
éventuelle.

#### Déplacer, caler, libérer les horaires

Sur l'agenda des évènements, contrairement aux séances de cours,
un évènement se **déplace et se redimensionne au glisser-déposer**.

La **plage horaire affichée** par l'agenda suit les
**horaires d'ouverture** de l'établissement : elle s'étend
de l'ouverture la plus matinale à la fermeture la plus tardive
configurées, et retombe sur 07 h – 20 h si rien n'est défini.

La fiche comporte aussi un bouton **punaise** : il bascule sur le
placement par créneaux libres, et un clic sur le créneau retenu reporte
sa date et ses heures dans la fiche — une alternative au tracé à la
souris pour caler proprement l'évènement.

Enfin, les heures de début et de fin sont **entièrement libres** : elles
ne sont pas contraintes de tomber sur les créneaux de la grille. Un
évènement peut commencer à 9 h 50 et finir à 11 h 34 même si les cours
réguliers sont calés sur des créneaux pleins : c'est tout l'intérêt d'un
évènement posé par-dessus la grille.

#### Modifier ou annuler

L'évènement se modifie comme on l'a créé : le déplacer dans le temps,
changer de salle, ajouter ou retirer des participants.

#### Procédure — Créer un évènement ponctuel

1. **Un évènement ponctuel** se pose **par-dessus** la grille sur un
   intervalle daté : conseil de classe, sortie, examen blanc, journée
   portes ouvertes, réunion. Pas de récurrence régulière à modéliser.
2. **Cliquez-glissez sur l'agenda d'évènements** pour tracer
   l'intervalle (en mode réorganisation). La fiche s'ouvre avec les dates
   pré-remplies ; renseignez le titre (`Conseil de classe 6e B`,
   `Sortie au musée d'Orsay`).
3. **Sélectionnez les participants** : classes, groupes, professeurs
   concernés, élèves si disponibles, ou participants libres.
4. **Ajoutez lieu, ressources, lien de visioconférence et commentaire**
   si nécessaire. Ces champs décrivent l'évènement ; ils ne transforment
   pas les cours réguliers.
5. **Sauvegardez.** L'évènement apparaît dans les EDT concernés. Si
   Omniscol signale un conflit avec des séances de cours régulières, corrigez les
   séances concernées dans la vue Réorganisation.

#### Voir aussi

- [Séances hors grille](#page-timetables.off-grid-lessons)
- [Modifications ponctuelles](#page-schedules.ad-hoc-changes)
- [Consulter et filtrer les EDT](#page-schedules.consult-and-filter)
- [FAQ — cas particuliers](#page-faq.edge-cases)

<a id="page-schedules.print-and-export"></a>

### 5.5  Imprimer et partager

*Source: `help/fr/schedules/print-and-export.md` · id: schedules.print-and-export · Plan: standard · Updated: 2026-06-25*

Tous les EDT consultables dans le module EDT peuvent être
**imprimés** ou **partagés** dans plusieurs formats. Le choix dépend
du destinataire : papier pour un usage hors-ligne, PDF pour une
diffusion par courriel, iCal pour un agenda électronique, lien web pour
une consultation directe. Pour une analyse chiffrée des volumes en
tableur, le **Tableau de bord** agrège les heures et les exporte
en CSV / XLSX.

#### Imprimer

Le bouton Imprimer (en haut de la vue) ouvre
l'aperçu d'impression avec une mise en page optimisée pour le papier :

- les séances sont **évidées** : Omniscol n'imprime que leur **contour
  de couleur** sur fond blanc, pour économiser l'encre tout en gardant
  le repère visuel des couleurs,
- les marges, l'orientation et la taille sont adaptées au format
  A4 / Letter,
- l'en-tête contient le nom de l'établissement, le libellé de l'EDT
  consulté (élève, classe, salle…) et la plage de dates.

L'aperçu utilise le système d'impression du navigateur — donc tout
ce qu'il sait faire (export PDF natif, sélection d'imprimante, double
face, etc.) est accessible.

#### Exporter en PDF

Omniscol propose des **boutons d'export PDF dédiés**, qui mettent un EDT
en page proprement. Le plus complet se trouve dans l'écran
Visualiser de Gestion des EDT (voir
[Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate)). La vue **tableau** d'un EDT
(voir [Affichage des EDT](#page-schedules.schedule-display)) propose elle aussi un export PDF,
aux côtés du CSV et de l'Excel.

À défaut, sur la plupart des navigateurs modernes, l'impression sait
sortir un PDF (`Microsoft Print to PDF`, `Save as PDF`, `Imprimer dans
un fichier`).

Bonne pratique : utilisez le PDF pour les communications
ponctuelles (envoi d'un EDT semaine à un parent par exemple) et le
lien de partage pour les communications récurrentes (le PDF est
figé, le lien suit les modifications).

#### Analyser dans un tableur (CSV / XLSX)

Deux voies mènent au tableur. **Depuis l'écran de consultation**,
transformez la vue de l'EDT en **tableau** (voir
[Affichage des EDT](#page-schedules.schedule-display)) : ce rendu type tableur s'imprime, se
copie-colle et s'exporte directement en **CSV**, **Excel / XLSX** ou
**PDF**. **Pour une analyse agrégée des volumes**, passez par le
**Tableau de bord**, qui calcule les heures par professeur, par
matière, par classe ou par salle sur la période choisie et propose le
même export **CSV** (universel) ou **XLSX** (préformaté pour Excel).

Usages typiques de cet export tableur :

- compter les heures effectuées par professeur, par matière, par classe ;
- alimenter un outil RH externe (paie, suivi temps de travail) ;
- repérer des écarts entre service prévu et service réalisé.

Voir [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
et [Statistiques professeurs](#page-dashboard.teachers).

Pour récupérer les séances elles-mêmes au format machine, le partage
propose une représentation **JSON (API)** ; voir
[Partager un EDT par lien public](#page-schedules.share-link).

#### Exporter en iCal

Pour partager dynamiquement un EDT avec un agenda électronique
(Google Calendar, Apple Calendar, Outlook), utilisez l'**abonnement
iCal** plutôt qu'un export ponctuel. Le destinataire voit les
modifications en continu. Voir [iCal — abonnement et lien dynamique](#page-integrations.ical).

La fenêtre de partage affiche aussi un **QR code** prêt à flasher :
le destinataire pointe son téléphone sur l'écran de l'ordinateur pour
s'abonner à l'agenda sans saisir d'adresse.

Si vous voulez quand même un fichier `.ics` figé pour archivage,
l'export ponctuel est aussi disponible depuis la fenêtre de partage.

#### Filtrer avant d'exporter

Les exports respectent les **filtres actifs** de la vue courante : si
vous avez filtré sur une classe ou une plage de dates précises,
l'export ne contiendra que ce périmètre. Pour un export plus large
(toute l'année, toutes les classes), basculez les filtres en
conséquence avant de lancer l'export.

#### Procédure — Imprimer ou partager un EDT

1. **Deux sorties depuis l'écran de consultation** : l'impression (PDF)
   pour une diffusion figée, et le partage (Web, iCal, JSON) pour une
   diffusion dynamique. L'analyse chiffrée en tableur passe, elle, par
   le Tableau de bord.
2. **Filtrez d'abord** la vue selon le périmètre voulu : classe,
   professeur, salle, plage de dates, type de cours. L'impression et le
   partage respectent les filtres actifs — un filtre étroit = une sortie
   étroite.
3. **Pour un PDF** (envoi par courriel, archivage) : le plus complet est
   l'export PDF de l'écran Visualiser (cf.
   [Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate)) ; depuis la consultation, le
   bouton Imprimer
   ouvre l'aperçu d'impression (séances évidées, en-tête école + libellé
   EDT + plage de dates), d'où l'on peut aussi sortir un PDF.
4. **Dans la boîte d'impression du navigateur**, sélectionnez
   **Save as PDF** / **Microsoft Print to PDF** / **Imprimer dans un
   fichier**. Le PDF est figé : il ne suit pas les modifications
   futures de l'EDT. Pour du dynamique, préférez le **lien de
   partage** (voir [Liens de partage publics](#page-schedules.share-link)).
5. **Pour une analyse en tableur** : basculez l'EDT en **tableau** pour
   un export direct (CSV / XLSX / PDF, cf.
   [Affichage des EDT](#page-schedules.schedule-display)), ou ouvrez le **Tableau de bord**
   pour les volumes agrégés — heures par professeur / matière / classe —
   puis exportez en CSV ou XLSX (cf. [Statistiques professeurs](#page-dashboard.teachers)).
6. **Pour un agenda électronique**, préférez l'**abonnement iCal** au
   fichier figé : le destinataire voit les mises à jour en continu
   (cf. [iCal](#page-integrations.ical)).

#### Voir aussi

- [Affichage des EDT](#page-schedules.schedule-display)
- [Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Partager un EDT par lien public](#page-schedules.share-link)
- [Import et export](#page-admin.import-export)

<a id="page-schedules.share-link"></a>

### 5.6  Partager un EDT par lien public

*Source: `help/fr/schedules/share-link.md` · id: schedules.share-link · Audience: admin/teacher · Plan: standard · Updated: 2026-05-15*

Le module **EDT** propose un bouton Partage qui
génère des URLs signées pour l'EDT consulté. Le destinataire ouvre
le lien web et voit l'EDT en lecture seule, sans avoir à se connecter.
C'est le chemin le plus rapide pour communiquer un emploi du temps à
quelqu'un qui n'a pas de compte Omniscol — typiquement un parent
d'élève, un partenaire externe ou un service administratif.

#### Formats générés par le partage

Selon le contexte et vos droits, la modale de partage peut proposer
plusieurs URLs :

- **page web responsive** — affichage navigable type
  portail, vues semaine / jour / liste,
- **flux iCal `.ics`** — pour s'abonner depuis
  Google Calendar, Apple Calendar, Outlook,
- **JSON (API)** — pour les développeurs et les intégrations
  machine-à-machine, lorsque ce format est autorisé.

Le destinataire choisit ce qui l'arrange : un parent ouvrira la
page web ou s'abonnera en iCal, un développeur utilisera le JSON.

#### Qu'est-ce qu'on peut partager ?

Le partage ne se limite pas à l'écran de consultation des EDT : la même
icône Partage
apparaît sur de nombreux écrans d'Omniscol.

**En lecture seule**, vous pouvez partager :

- l'**EDT individuel** d'un élève ou d'un professeur,
- l'**EDT d'une classe** complète, d'une **salle** ou d'une **matière**,
- les **tableaux de service** du module Service du personnel,
- le **tableau de bord** et le **suivi des absences**,
- les écrans de **visualisation** et de **réorganisation** d'un EDT.

**En lecture-écriture** — cas unique — vous pouvez partager l'écran de
**saisie des disponibilités** des professeurs (et du personnel) : le lien
dédié permet à chacun de renseigner ses disponibilités jusqu'à la date
d'expiration, **sans compte ni mot de passe** Omniscol. C'est le seul
partage qui autorise une saisie, et non une simple consultation.

Chaque URL signée porte le périmètre demandé et une date d'expiration.

#### Créer le lien

Depuis l'écran de consultation, cliquez sur Partage dans la
barre d'outils. La modale propose :

- **Date d'expiration** — date jusqu'à laquelle les liens générés
  restent valables.
- **Onglets Web, iCal et JSON** — visibles selon les formats générés
  pour la sélection courante.

Vous copiez ensuite l'URL voulue. Pour les liens web et iCal, la
modale peut aussi afficher un **QR code** imprimable.

#### Limiter un partage

Choisissez une date d'expiration courte pour les usages ponctuels.

Un lien est porté par le compte qui l'a généré. Pour invalider les liens
existants générés par un compte, utilisez les leviers réels :

- changer ou réinitialiser le mot de passe du compte porteur ;
- désactiver ou supprimer le compte porteur.

Astuce : pour les partages gérés par une équipe planning, on peut
utiliser un **compte de service clairement identifié** (par exemple
`diffusion-planning`) plutôt que le compte personnel d'un collègue.
Ce compte porte alors la responsabilité des liens émis ; ses accès et
son mot de passe doivent être gérés comme un accès administratif.

Les liens web sont en lecture seule, sauf le lien de **saisie des
disponibilités** des professeurs décrit plus haut, qui autorise la saisie
jusqu'à la date d'expiration sans donner accès au compte Omniscol.

#### Sécurité

- Le lien contient un jeton signé hautement sécurisé.
- Il donne accès **uniquement à la ressource partagé** (EDT ou écran),
  pas au compte global.
- La validité est limitée par la date d'expiration choisie.
- Les liens sont invalidés si le mot de passe du compte porteur change,
  même si le nouveau mot de passe est identique en clair.
- Les liens cessent de fonctionner si le compte porteur est désactivé
  ou supprimé.
- Toute personne qui possède l'URL peut consulter le périmètre partagé
  jusqu'à expiration ou invalidation.

#### Différence avec un compte Omniscol limité

Pour partager les données entre les équipes, par exemple auprès d'un service
comptable, les deux options peuvent apparaître concurrentes.

- **Lien public signé** = pas d'identification, accès simple,
  partage rapide.
- **Compte Omniscol limité** = identification dédiée, durée plus longue,
  gestion d'un compte utilisateur, avec l'option des
  [rôles personnalisés](#page-admin.customroles).

Préférez le lien pour les usages ponctuels et un compte limité pour
les usages structurés sur la durée.

#### Procédure — Créer un lien de partage

1. **Un lien de partage** donne accès à un EDT en lecture seule sans
   login. Idéal pour un parent, un partenaire externe, un service
   administratif.
2. **Ouvrez l'EDT à partager** dans le module Emploi du temps :
   élève, classe, salle, professeur ou matière. La page consultation
   est le point de départ.
3. Cliquez sur Partage
   dans la barre d'outils. Une modale s'ouvre avec les options du partage.
4. **Choisissez la date d'expiration.** Plus le lien circule largement,
   plus cette date devrait être proche.
5. **Copiez le format utile.** Web pour une consultation directe, iCal
   pour un abonnement calendrier, JSON si l'intégration API est
   prévue. L'URL est utilisable immédiatement : la personne qui
   l'ouvre voit le périmètre partagé en lecture seule, sans connexion.
6. **En cas de diffusion non souhaitée**, créez un nouveau lien plus
   limité avec un autre compte et invalidez les liens portés par le compte
   d'origine en changeant son mot de passe ou en le désactivant si c'est
   approprié.

#### Voir aussi

- [Liens de partage publics](#page-portal.share-links)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Portail invité (liens publics)](#page-portal.guest-portal)

---

## 6. Absences et remplacements

<a id="page-absences.overview"></a>

### 6.1  Vue d'ensemble du module Absences

*Source: `help/fr/absences/overview.md` · id: absences.overview · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13*

Le module **Gestion des absences** centralise la déclaration et le suivi des
indisponibilités qui doivent modifier l'affichage des emplois du
temps : professeurs, classes, élèves et, si le Service du personnel est
activé, membres du personnel.

#### Entités gérées

| Entité absente | Effet sur l'emploi du temps |
| --- | --- |
| **Professeur** | Séance **annulée** quand le professeur absent en est le seul intervenant, sauf si un **remplaçant** est désigné (il s'affiche alors à côté du titulaire barré). En **co-enseignement**, la séance est **maintenue** : seul le professeur absent est retiré, le ou les autres intervenants l'assurent. |
| **Classe** | Les séances de la classe absente sont retirées de l'affichage sur la période concernée. |
| **Élève** | Les séances restent en place pour la classe ; l'absence concerne la vue et le suivi de l'élève. |
| **Personnel** | Disponible seulement quand le Service du personnel est actif ; fonctionne comme une absence d'entité de planning personnel. |

Les vacances scolaires de l'année ne sont pas saisies comme absences :
elles sont gérées dans l'année scolaire.

#### Pièces justificatives

Le module ne gère pas de **dépôt de justificatif** : la gestion des
emplois du temps n'a pas vocation à conserver des données sensibles
(certificats médicaux, secrets professionnels), elle se concentre sur la
planification. Si vous devez tout de même rattacher une pièce, déposez-la
sur votre espace de stockage habituel et collez le **lien dans le champ
commentaire** de l'absence.

#### Statuts

- **accepté** : l'absence est validée et prise en compte dans
  les affichages.
- **en attente** : demande déclarée par l'utilisateur concerné, à
  valider par un administrateur.
- **refusé** : demande rejetée.
- **abandonné** : demande annulée par son déclarant.

Seules les absences au statut **accepté** produisent un effet :
elles modifient l'affichage des emplois du temps, marquent les séances
impactées (annulées le cas échéant) et alimentent les **statistiques** et
les **exports** d'absences (cf. [Suivi et export des absences](#page-absences.statistics)). Les autres
statuts — en attente, refusé, abandonné —
restent sans effet sur l'EDT.

#### Organisation des écrans

Le module expose des onglets par type d'entité :

- **Professeurs** : absences de professeurs et gestion des
  remplacements.
- **Classes** : absences de classes, gérées par les administrateurs.
- **Élèves** : absences individuelles d'élèves.
- **Personnel** : absences de personnel, si le Service du personnel est activé.

Chaque écran présente les absences de la période, leur statut, les
séances impactées quand l'information est disponible, une navigation
temporelle et une liste exportable pour les administrateurs.

#### Prérequis

- Au moins un emploi du temps publié sur l'année scolaire concernée.
- Pour les absences de professeurs : les professeurs doivent être
  affectés à des cours.
- Pour les absences d'élèves : les élèves doivent être affectés à
  des classes.
- Pour les absences de personnel : le Service du personnel doit être actif.

#### Procédure — Découvrir le module Absences

1. Ouvrez le module **Absences** depuis la navigation principale.
2. Choisissez l'onglet correspondant à l'entité concernée :
   professeurs, classes, élèves ou personnel selon les modules
   activés.
3. Utilisez Déclarer une absence pour ouvrir le
   formulaire : entité absente, dates, plage horaire, motif, commentaire
   et statut selon vos droits.
4. Sur une absence de professeur acceptée, ouvrez
   Gestion des remplacements pour voir les séances concernées
   et affecter des remplaçants ponctuels ou des règles de remplacement.
5. Pour les administrateurs, le bouton
   Tableau permet d'exporter le tableau
   affiché.

#### Voir aussi

- [Déclarer une absence](#page-absences.declaring)
- [Politiques de remplacement](#page-absences.substitution-policies)
- [Absence](#page-glossary.absence)
- [Remplacement / Suppléance](#page-glossary.substitution)

<a id="page-absences.declaring"></a>

### 6.2  Déclarer une absence (administrateur / professeur / étudiant)

*Source: `help/fr/absences/declaring.md` · id: absences.declaring · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13*

#### Qui peut déclarer ?

| Rôle | Pour qui ? | Statut initial |
| --- | --- | --- |
| **Administrateur** | Professeur, classe, élève ou membre du personnel | accepté par défaut, modifiable |
| **Professeur** | Lui-même seulement | en attente |
| **Élève** | Lui-même seulement | en attente |
| **Personnel** | Lui-même seulement, si le Service du personnel est actif | en attente |

Les absences de classes sont des opérations administratives : les
routes de création et de modification sont réservées aux
administrateurs.

#### Champs du formulaire

Le bouton Déclarer une absence ouvre le formulaire. La
sauvegarde se fait avec Ajouter.

- **Entité** : visible pour les administrateurs ; les autres rôles ne
  peuvent déclarer que leur propre absence.
- **Plage de dates** : date de début et date de fin. Pour une absence
  d'une journée, utilisez la même date. Si la fin n'est pas renseignée
  par l'interface, Omniscol prend la fin de l'année scolaire comme
  borne technique : ne l'utilisez pas pour documenter une absence
  réellement ouverte.
- **Plage horaire** : journée entière par défaut, ou créneaux précis.
- **Filtres optionnels** :

  - **Classe** pour restreindre une absence de professeur à certaines
    classes.
  - **Matière** pour ne viser que les séances d'une matière donnée.
  - **Affectation** pour les absences de personnel, si le Service du personnel est
    actif.
- **Motif** : choisi dans la liste proposée ; les administrateurs
  peuvent aussi saisir un motif personnalisé.
- **Commentaire** : texte libre court.
- **Statut** : seuls les administrateurs peuvent fixer librement le
  statut (statut **accepté** par défaut). Pour les autres
  rôles, la demande prend le statut **en attente** et attend la
  validation d'un administrateur ; le déclarant peut toutefois passer sa
  propre demande au statut **abandonné** pour l'abandonner.

#### Procédure — Première absence de professeur

1. Ouvrez l'onglet Professeurs du module Gestion des absences.
2. Cliquez sur Déclarer une absence.
3. Sélectionnez le professeur concerné si vous êtes administrateur.
   Un professeur qui déclare lui-même son absence n'a pas accès au
   sélecteur d'autres professeurs.
4. Renseignez les dates. Pour une journée, mettez la même date en
   début et en fin.
5. Laissez **journée entière** ou définissez les créneaux concernés si
   l'absence ne porte que sur une partie de la journée.
6. Choisissez le motif, ajoutez un commentaire si nécessaire, puis
   sauvegardez avec Ajouter.
7. Si l'absence est acceptée et concerne un professeur, ouvrez la
   gestion des remplacements avec Gestion des remplacements
   pour affecter un remplaçant ou définir une règle de remplacement.

#### Validation d'une demande en attente

Quand un professeur, un élève ou un
membre du personnel déclare sa propre absence, la demande est en
attente. Les administrateurs peuvent
l'accepter ou la refuser depuis les raccourcis
accepté et
refusé, ou en ouvrant la fiche.

#### Modifications ultérieures

- Un administrateur peut modifier les dates, les horaires, le motif, le
  commentaire et le statut.
- Le déclarant peut modifier une absence future qui lui appartient ;
  la modification repasse par le statut en attente.
- Le déclarant peut abandonner sa propre demande.

#### Visibilité

Le fait qu'une entité soit absente peut être visible dans les emplois
du temps ou dans le module Absences selon les droits de consultation.
Le détail du motif, du commentaire, des métadonnées de création et du
statut n'est pas exposé de la même manière à tous les rôles : les
utilisateurs non administrateurs ne voient pas nécessairement les
détails des absences d'autrui.

#### Voir aussi

- [Politiques de remplacement](#page-absences.substitution-policies)
- [Remplacement ponctuel d'une séance](#page-absences.single-lesson-replacement)
- [Absence](#page-glossary.absence)

<a id="page-absences.substitution-policies"></a>

### 6.3  Politiques de remplacement

*Source: `help/fr/absences/substitution-policies.md` · id: absences.substitution-policies · Audience: admin · Plan: standard · Updated: 2026-06-13*

Une **politique de remplacement** permet de couvrir plusieurs séances
touchées par la même absence de professeur. Elle évite de choisir un
remplaçant séance par séance quand une règle simple suffit.

#### Accès

Sur la ligne d'une absence de professeur, ouvrez
Gestion des remplacements.

Le panneau affiche les séances impactées par l'absence et les règles de
remplacement enregistrées. Les séances sans remplaçant restent marquées
comme impactées par l'absence du titulaire.

#### Deux niveaux de règle

##### Remplacement ponctuel

Sur une séance précise, Assigner un remplaçant permet de
choisir un remplaçant pour cette séance seulement. Cette affectation a
priorité sur les politiques longues.

##### Politique longue

Dans la section Remplacements longs du panneau, le bouton
Assigner un remplaçant crée une règle de remplacement.
Pour chaque règle, vous renseignez :

- le **remplaçant** ;
- une **date de début** et une **date de fin** de validité ;
- des **créneaux horaires** si la règle ne vaut pas toute la journée ;
- éventuellement des **matières** ;
- éventuellement des **classes** ;
- un **commentaire** interne.

Plusieurs règles peuvent coexister. Elles s'appliquent dans l'ordre
affiché ; réorganisez-les par glisser-déposer si la priorité change.

#### Lecture du panneau

La liste des séances montre quel remplaçant couvre chacune d'elles. Si
une règle ne correspond à aucune séance de l'absence, le panneau affiche
un avertissement sur cette règle : corrigez les dates, les créneaux, les
matières ou les classes.

#### Cas typique : longue absence avec partage

Pour une absence de plusieurs semaines :

1. Créez une première règle avec le remplaçant principal, sans filtre
   de matière ni de classe.
2. Ajoutez une deuxième règle plus ciblée, par exemple limitée à une
   matière ou à un créneau.
3. Placez la règle la plus spécifique avant la règle générale si elle
   doit l'emporter.

#### Procédure — Partager une longue absence

1. Ouvrez l'absence de professeur avec
   Gestion des remplacements.
2. Cliquez sur Assigner un remplaçant.
3. Choisissez le remplaçant principal, définissez les dates de
   validité, puis sauvegardez.
4. Ajoutez une règle complémentaire si certaines séances doivent être
   assurées par un autre remplaçant.
5. Contrôlez la liste des séances impactées. Elles doivent afficher
   le remplaçant attendu ; les séances non couvertes restent visibles
   comme non remplacées.
6. Validez le panneau avec Assigner.

#### Voir aussi

- [Déclarer une absence](#page-absences.declaring)
- [Remplacement ponctuel d'une séance](#page-absences.single-lesson-replacement)
- [Remplacement / Suppléance](#page-glossary.substitution)

<a id="page-absences.single-lesson-replacement"></a>

### 6.4  Remplacement ponctuel d'une séance

*Source: `help/fr/absences/single-lesson-replacement.md` · id: absences.single-lesson-replacement · Audience: admin · Plan: standard · Updated: 2026-06-13*

Un **remplacement ponctuel** affecte un remplaçant à une seule séance
touchée par une absence de professeur. Il se règle dans le panneau de
gestion des remplacements de l'absence.

Ce mécanisme ne déplace pas la séance, ne crée pas de notification par
lui-même et ne propose pas plusieurs scénarios d'annulation. Il ajoute
un remplaçant sur la séance concernée ; le titulaire absent reste
visible comme professeur remplacé.

#### Accès

1. Ouvrez l'onglet Professeurs du module Gestion des absences.
2. Sur l'absence concernée, cliquez sur
   Gestion des remplacements.
3. Dans la liste des séances impactées, utilisez
   Assigner un remplaçant sur la séance à remplacer.

Le panneau affiche les séances couvertes par l'absence et les règles de
remplacement déjà définies.

#### Effet du remplacement ponctuel

- Le remplaçant choisi est appliqué uniquement à cette séance.
- La salle, la classe, la date et l'horaire de la séance ne sont pas
  modifiés par cette action.
- Le remplacement ponctuel prime sur les règles générales de
  remplacement de la même absence.
- Si aucun remplaçant n'est affecté, la séance reste impactée par
  l'absence du professeur.

#### Choisir le remplaçant

La liste de sélection s'appuie sur les professeurs disponibles pour le
créneau concerné. Vérifiez manuellement que le choix est cohérent avec
la matière, le site et l'organisation interne de l'établissement avant
de valider.

#### Retirer un remplacement ponctuel

Si un remplacement ponctuel a été ajouté par erreur, utilisez
[xmark]. La séance retombe alors sur la
règle longue applicable, ou reste non remplacée si aucune règle ne
correspond.

#### Procédure — Remplacer une séance

1. Créez ou ouvrez une absence de professeur acceptée.
2. Cliquez sur Gestion des remplacements.
3. Repérez la séance à traiter dans la liste des séances impactées.
4. Cliquez sur Assigner un remplaçant, choisissez le
   remplaçant, puis validez le panneau avec
   Assigner.
5. Contrôlez l'affichage de la séance : le titulaire absent doit rester
   barré et le remplaçant doit apparaître sur la séance.

#### Voir aussi

- [Politiques de remplacement](#page-absences.substitution-policies)
- [Déclarer une absence](#page-absences.declaring)
- [Absences pluri-jours](#page-absences.multi-day)
- [Remplacement / Suppléance](#page-glossary.substitution)

<a id="page-absences.multi-day"></a>

### 6.5  Absences pluri-jours

*Source: `help/fr/absences/multi-day.md` · id: absences.multi-day · Audience: admin · Plan: standard · Updated: 2026-06-13*

Une **absence pluri-jours** est une absence déclarée avec une date de
début et une date de fin. Elle permet de couvrir une période continue
sans créer une absence par séance.

Omniscol calcule ensuite les séances concernées par la période. Pour une
absence de professeur, ces séances peuvent être laissées non remplacées,
couvertes par une politique de remplacement, ou ajustées par des
remplacements ponctuels.

#### Déclarer la période

Depuis l'onglet Professeurs du module Gestion des absences :

- sélectionnez le professeur concerné ;
- renseignez la date de début et la date de fin ;
- laissez la journée entière ou précisez les créneaux concernés ;
- choisissez le motif ;
- ajoutez un commentaire si nécessaire ;
- sauvegardez avec Ajouter.

#### Traiter les séances impactées

Après la déclaration :

- ouvrez Gestion des remplacements ;
- vérifiez la liste des séances touchées par l'absence ;
- créez une ou plusieurs règles avec Assigner un remplaçant si
  une logique de remplacement se répète ;
- utilisez Assigner un remplaçant sur une séance particulière
  pour les exceptions séance par séance.

Les **règles de remplacement** sont le mécanisme prévu pour les absences
longues. Une règle **sans filtre** s'applique à **toutes** les séances de
la période ; ajoutez une classe, une matière, des créneaux ou des dates
pour ne viser qu'un sous-ensemble. Pour **tout laisser sans
remplacement**, ne créez aucune règle : les séances dont le professeur
absent est le seul intervenant sont alors annulées sur la période.

#### Absence sur des créneaux récurrents

Une absence qui ne touche que certains créneaux d'une longue période —
par exemple tous les lundis matin pendant deux mois — se déclare en
**une seule fois** : indiquez une plage de dates large, puis précisez les
**créneaux horaires** concernés (et au besoin une classe ou une
matière). Omniscol sélectionne alors, sur toute la période, les seules
séances qui tombent sur ces créneaux : inutile de saisir chaque
occurrence.

#### Suivi et export

Le tableau des absences permet aux administrateurs d'exporter les
lignes affichées avec Tableau. Pour le
suivi disponible dans le module, voir
[Suivi et export des absences](#page-absences.statistics).

#### Procédure — Gérer une absence longue

1. Déclarez l'absence avec une date de début et une date de fin.
2. Si l'absence ne couvre pas toutes les journées, précisez les
   créneaux concernés.
3. Sauvegardez la déclaration.
4. Ouvrez Gestion des remplacements.
5. Ajoutez les règles de remplacement nécessaires, puis contrôlez la
   liste des séances impactées.
6. Utilisez les remplacements ponctuels uniquement pour les séances qui
   doivent déroger aux règles générales.

#### Voir aussi

- [Déclarer une absence](#page-absences.declaring)
- [Politiques de remplacement](#page-absences.substitution-policies)
- [Remplacement ponctuel d'une séance](#page-absences.single-lesson-replacement)
- [Suivi et export des absences](#page-absences.statistics)

<a id="page-absences.class-and-student-absences"></a>

### 6.6  Absences classes et étudiants

*Source: `help/fr/absences/class-and-student-absences.md` · id: absences.class-and-student-absences · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13*

Le module Gestion des absences distingue les absences de **classes entières** et
les absences d'**élèves individuels**. Les deux utilisent le même
principe de déclaration, mais leur effet sur l'emploi du temps n'est
pas le même.

#### Absence d'une classe entière

Cas typiques : sortie scolaire, voyage, stage collectif, journée
d'examens.

Les absences de classes sont gérées par les administrateurs. Depuis
l'onglet Classes, le formulaire permet de renseigner :

- la classe concernée ;
- la plage de dates ;
- la plage horaire si l'absence ne couvre pas toute la journée ;
- éventuellement une matière pour limiter l'effet aux séances concernées ;
- un motif ;
- un commentaire.

Pour un EDT récurrent, une absence de classe acceptée retire les séances
de cette classe de l'affichage sur la période concernée.

#### Absence d'un élève individuel

Cas typiques : maladie, rendez-vous médical, raison familiale, absence
autorisée ou non autorisée.

Une absence d'élève :

- concerne l'élève sélectionné ;
- marque les séances de la période comme **annulées** sur l'EDT de
  l'élève, sans retirer celles de la classe ni celles des
  professeurs ;
- peut être déclarée par un administrateur ou par l'élève concerné
  selon ses droits ;
- passe en attente lorsqu'elle est déclarée par l'élève lui-même.

#### Visibilité

Les administrateurs disposent de la vue complète. Les autres rôles
voient une version limitée selon leurs droits : l'existence d'une absence
peut être visible sans exposer le motif, le commentaire ou les
métadonnées de validation.

#### Procédure — Déclarer une absence de classe

1. Ouvrez l'onglet Classes du module Absences.
2. Cliquez sur Déclarer une absence.
3. Sélectionnez la classe, les dates et les horaires concernés.
4. Ajoutez le motif et, si nécessaire, un commentaire.
5. Sauvegardez. Les séances de cette classe sont retirées de l'affichage
   pour la période acceptée ; les autres classes conservent leurs
   séances.

#### Procédure — Déclarer une absence d'élève

1. Ouvrez l'onglet **Élèves**.
2. Sélectionnez l'élève concerné si vous êtes administrateur.
3. Renseignez les dates, les horaires, le motif et le commentaire.
4. Sauvegardez. Si l'élève a créé la demande lui-même, elle reste en
   attente jusqu'à validation.
5. Une fois acceptée, les séances de la période sont marquées comme
   **annulées** sur l'EDT de l'élève et comptabilisées dans son suivi
   et ses statistiques. Les autres élèves de la classe ne sont pas
   affectés.

#### Voir aussi

- [Déclarer une absence](#page-absences.declaring)
- [Suivi et export des absences](#page-absences.statistics)
- [Absences pluri-jours](#page-absences.multi-day)
- [Évènements ponctuels](#page-schedules.events)

<a id="page-absences.statistics"></a>

### 6.7  Suivi et export des absences

*Source: `help/fr/absences/statistics.md` · id: absences.statistics · Audience: admin · Plan: standard · Updated: 2026-06-13*

Le suivi des absences se lit à plusieurs endroits complémentaires : le
module Gestion des absences pour le suivi opérationnel, le
**Tableau de bord** pour les statistiques agrégées, et le module
Administration pour l'historique d'un élève. Ces deux dernières vues ne
comptent que les absences au statut **accepté**.

#### Suivi dans le module Absences

Selon l'onglet et la période choisie, l'écran affiche :

- les entités absentes sur la période ;
- les statuts des demandes, avec compteurs ;
- les séances impactées par les absences au statut accepté ;
- une navigation par semaine, mois, année scolaire ou plage de dates ;
- la liste tabulaire des absences.

Pour une absence de professeur, la gestion des remplacements
(Gestion des remplacements) ajoute les séances touchées et
les remplaçants affectés.

Les administrateurs exportent le tableau affiché avec
Tableau : entité, dates, horaires, matière
éventuelle, motif, commentaire et statut selon les droits — pratique
pour un bilan interne ou un retraitement hors d'Omniscol.

#### Statistiques dans le Tableau de bord

Pour les **volumes et les taux**, ouvrez le **Tableau de bord**.
L'onglet Élèves totalise, par élève et sur la
période, les **heures**, **séances** et **jours d'absence** ainsi que le
**pourcentage d'absence** correspondant, exportable en CSV / XLSX (voir
[Statistiques étudiants et ressources](#page-dashboard.students-resources)).

Côté **professeurs**, l'onglet Professeurs
reflète l'effet des absences sur le service : la colonne
**Heures annulées** comptabilise les heures retirées (une
absence non remplacée annule la séance) et **Heures supplémentaires** les
heures supplémentaires. Chaque colonne indique le nombre de séances
concernées et propose une infobulle qui les détaille (matière, classe,
jour et heure) ; pour une séance annulée par une absence, le motif y
figure lorsqu'il est renseigné. Cet onglet s'exporte aussi en CSV / XLSX
(voir [Statistiques professeurs](#page-dashboard.teachers)).

#### Historique dans l'Administration

Dans le module Administration, la fiche d'un **élève** comme celle d'un
**professeur** récapitule ses absences de l'année scolaire et propose son
propre export de tableau — pratique pour un suivi individuel ou un
échange (avec la famille pour un élève, avec l'intéressé pour un
professeur).

#### Limites à connaître

- Seules les absences au statut **accepté** comptent dans
  l'affichage et les statistiques ; celles au statut **en attente**,
  **refusé** ou **abandonné** restent informatives.
- Les motifs et commentaires peuvent être masqués selon le rôle du
  lecteur.

#### Procédure — Produire un export de suivi

1. Ouvrez l'onglet concerné du module Gestion des absences.
2. Sélectionnez la période à contrôler.
3. Vérifiez les statuts et les séances impactées si nécessaire.
4. Cliquez sur Tableau.
5. Utilisez le fichier exporté pour vos contrôles internes ou vos
   retraitements.
6. Pour des **volumes et un pourcentage d'absence** par élève, ouvrez le
   Tableau de bord, onglet Élèves (cf.
   [Statistiques étudiants et ressources](#page-dashboard.students-resources)).

#### Voir aussi

- [Vue d'ensemble du module Absences](#page-absences.overview)
- [Absences classes et étudiants](#page-absences.class-and-student-absences)
- [Politiques de remplacement](#page-absences.substitution-policies)
- [Statistiques étudiants et ressources](#page-dashboard.students-resources)

---

## 7. Service du personnel

<a id="page-staffing.overview"></a>

### 7.1  Vue d'ensemble du Service du personnel

*Source: `help/fr/staffing/overview.md` · id: staffing.overview · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13*

> **Option: Service du personnel**

Le **Service du personnel** sert à planifier le personnel **par
tâches** plutôt que par cours : raisonner en « qui couvre quel poste à
quel moment » plutôt qu'en « qui enseigne quoi ». Il complète les
emplois du temps pédagogiques lorsque l'établissement doit gérer de la
vie scolaire, des surveillances, des permanences, des examens ou des
activités d'encadrement.

#### Cas d'usage principal : vie scolaire et AED

Le module a été créé pour répondre au besoin historique des équipes de
vie scolaire : CPE, assistants d'éducation, surveillants et personnels
qui assurent une multitude de postes au fil de la journée,
indépendamment des cours.

Exemples :

- surveiller les couloirs ;
- filtrer les entrées et sorties de l'établissement ;
- assurer l'accueil ;
- surveiller la cour de récréation pendant les pauses ;
- surveiller le réfectoire à midi ;
- assurer les permanences et la salle d'étude ;
- animer ou surveiller le CDI, le foyer ou un espace de travail ;
- accompagner les élèves à l'extérieur, par exemple pour une sortie
  EPS confiée aux seules personnes habilitées ;
- couvrir les inter-cours ponctuels ;
- encadrer des examens, concours ou journées particulières.

Une tâche décrit un besoin de présence. Elle ne porte pas de matière,
de programme pédagogique ou de groupe d'élèves obligatoire comme un
cours. La grille est souvent beaucoup plus fine qu'un EDT pédagogique :
dans une vie scolaire, le quart d'heure est courant. Le besoin peut
changer fortement dans la journée : 0 personne dans la cour pendant les
cours, 3 personnes à midi, 1 personne au CDI tout l'après-midi.

#### Les écrans du module

<a id="page-staffing.overview--staffing-grid"></a>
##### Grille

La grille définit le cadre temporel du service : jours ouvrés, créneaux
horaires — souvent plus fins qu'une grille de cours — et périodes de
l'année où elle s'applique. Elle sert de modèle de travail avant de
nommer les personnes. Les sites et leurs distances se déclarent au même
endroit : ils servent à signaler les affectations incompatibles entre
lieux éloignés.

Voir [Construire une grille de service](#page-staffing.building-grids).

<a id="page-staffing.overview--staffing-assignments"></a>
##### Affectations

L'écran Affectations définit les postes ou tâches à couvrir :
libellé, nombre de personnes requis et idéal, priorité, site, personnel
autorisé et compatibilités entre tâches — par exemple deux couloirs
voisins qu'une même personne peut couvrir sur un créneau calme en
sous-effectif. Les besoins peuvent varier créneau par créneau.

Voir [Définir les tâches à couvrir](#page-staffing.assignments).

<a id="page-staffing.overview--staffing-planner"></a>
##### Planificateur

Le planificateur affecte les membres du personnel sur les tâches
réelles d'une semaine ou d'une plage de dates. L'affectation se fait
par sélection, déplacement, duplication et correction manuelle. Les
absences, indisponibilités, conflits et affectations de personnes non
autorisées apparaissent comme des alertes.

Voir [Affecter le personnel](#page-staffing.planner).

<a id="page-staffing.overview--staffing-roster"></a>
##### Tableau de service

Le tableau de service donne à chaque personne sa liste de tâches ou sa
semaine sous forme de grille. Il peut être imprimé, exporté ou partagé
selon les droits et le mode de diffusion choisi par l'établissement.
Il affiche les totaux utiles à la lecture de la semaine et conserve les
signaux d'absence ou d'indisponibilité.

Voir [Tableaux de service](#page-staffing.roster).

#### Ce que le module vérifie

- disponibilité des personnes ;
- absences déclarées ;
- charge de travail affectée ;
- personnel autorisé sur chaque tâche ;
- conflits avec d'autres tâches ou présences ;
- cohérence des besoins par site et par créneau, en tenant compte des
  distances entre sites.

La planification du personnel est **manuelle** : la grille, les alertes
et les outils de correction guident chaque affectation, que vous gardez
sous contrôle. Omniscol ne place pas le personnel automatiquement.

#### Bénéfice opérationnel

Le gain vient surtout de la centralisation :

- une grille de besoins partagée au lieu d'un tableur isolé ;
- des affectations modifiables semaine par semaine ;
- la duplication des semaines stables ;
- les absences visibles dans le planning du personnel ;
- des tableaux de service imprimables ou partageables ;
- moins d'allers-retours entre la vie scolaire, les personnes
  affectées et l'administration.

Sur un établissement d'un millier d'élèves, le retour d'expérience
indique environ 20 heures de travail administratif économisées par semaine.

> « Nous avons choisi Omniscol pour digitaliser la gestion des
> plannings de notre service Vie scolaire (emploi du temps des
> assistants d'éducation). La solution s'est révélée intuitive,
> complète et parfaitement adaptée à nos besoins. Chacun voit clairement
> où il est affecté. »
>
> — Jeanne Weeber, Directrice adjointe collège Sévigné (fondé 1880), Paris

#### Autres usages

- **Surveillance d'examens** : sessions de partiels, bac, concours,
  plusieurs jours, plusieurs salles, besoins de surveillants par
  épreuve.
- **Permanences et études** : postes de surveillance variables selon le
  nombre d'élèves attendus.
- **Encadrement Montessori et pédagogies actives** : activités ou
  ateliers à couvrir sans imposer la structure d'un cours classique.
- **Plannings d'animateurs et de tâches** : centre de loisirs,
  périscolaire, internat, planning organisé par mission.
- **Encadrement de sorties** : voyage scolaire, sortie pédagogique,
  visite d'établissement.
- **Présences ponctuelles** : accueil parents, journée portes ouvertes,
  conseil de classe.

#### Différence avec un cours

Un cours porte une matière, un groupe d'élèves ou d'étudiants et un
professeur qualifié. Une tâche du Service du personnel porte un
**besoin de présence** : il faut quelqu'un sur ce poste, avec la bonne
disponibilité et, si nécessaire, l'autorisation d'assurer ce poste.

Cette différence explique pourquoi le module fonctionne avec des
grilles de besoins, des affectations de personnes et des tableaux de
service, au lieu de partir d'une répartition matière / classe /
professeur.

#### Périmètre du module

Un compte avec Service du personnel comprend :

- le module Service du personnel : grilles, tâches, planificateur,
  tableaux de service ;
- le module Gestion des absences pour les personnels affectables ;
- les écrans d'administration nécessaires aux comptes et rôles ;
- la recherche transversale, selon les droits du compte.

#### Rôle *Personnel*

Le rôle **Personnel** est conçu pour les équipes de vie scolaire (CPE,
AED, surveillants, appariteurs). Selon les droits du compte, il donne
accès au Service du personnel, au planning personnel et aux absences du
personnel, sans ouvrir toute la configuration globale de l'école.

Un même utilisateur peut cumuler plusieurs rôles : par exemple un
professeur impliqué dans une pédagogie active peut être à la fois
professeur et membre du personnel planifié par tâches.

#### Voir aussi

- [Construire une grille de service](#page-staffing.building-grids)
- [Définir les tâches à couvrir](#page-staffing.assignments)
- [Affecter le personnel](#page-staffing.planner)
- [Tableaux de service](#page-staffing.roster)
- [Vue d'ensemble du module Absences](#page-absences.overview)
- [Service du personnel](#page-glossary.staffing)
- [Permanences et études (scolaire)](#page-k12.study-halls)

<a id="page-staffing.building-grids"></a>

### 7.2  Construire une grille de service

*Source: `help/fr/staffing/building-grids.md` · id: staffing.building-grids · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-26*

> **Option: Service du personnel**

Une **grille de service** définit le cadre temporel du service : les
jours ouvrés, les créneaux horaires et les périodes de l'année où elle
s'applique. C'est l'étape qui se fait **avant** de nommer les
personnes — vous posez le cadre, les tâches à couvrir se décrivent
ensuite dans l'écran Affectations, et le remplissage se fait dans le
planificateur.

Combinée aux besoins déclarés sur chaque tâche, la grille répond à des
questions comme « combien de personnes dans la cour à 10 h ? » ou
« quels créneaux la vie scolaire doit-elle couvrir cette semaine ? ».

#### Créer une grille

L'onglet Grille du Service du personnel affiche les grilles
existantes et leur répartition sur l'année. Pour chaque grille, vous
renseignez :

- le **nom** — court et reconnaissable, par exemple `Semaine type`,
  `Examens T1`, `Vacances` ;
- les **Jours ouvrés** — par exemple lundi-vendredi pour la
  semaine type, ou un choix spécifique pour une semaine d'examens ;
- la **Grille horaire** — les créneaux horaires de la
  grille, que vous définissez librement. En vie scolaire, le quart
  d'heure est courant, et ces créneaux peuvent être plus fins que la
  grille des cours pédagogiques.

Le bouton Répartition des grilles affecte ensuite chaque grille aux
semaines ou plages de dates de l'année qu'elle couvre.

À la première ouverture, une grille vide est proposée. Pour créer une
grille supplémentaire, dupliquez une grille existante avec
Dupliquer, renommez-la, puis adaptez-la.

#### Définir les tâches et leurs besoins

Les tâches elles-mêmes — libellé, nombre de personnes, site, personnel
autorisé — se définissent dans l'écran Affectations : voir
[Définir les tâches à couvrir](#page-staffing.assignments). Pour chaque
tâche, l'éditeur de besoins précise ensuite, créneau par créneau sur la
grille, combien de personnes sont attendues (0 = aucun besoin).

Le besoin peut varier fortement selon l'heure : 0 personne dans la cour
pendant les cours, 3 personnes à midi pour le réfectoire, 1 personne au
CDI tout l'après-midi.

#### Sites et distances

Si votre établissement compte plusieurs sites, déclarez-les en bas de
l'écran Grille avec leurs distances. Une tâche localisée sur un site
éloigné déclenche une alerte si la même personne est attendue ailleurs
sans temps de trajet suffisant.

#### Compatibilités en sous-effectif

Quand l'effectif disponible est plus court qu'idéal (cas
fréquent : absences en cascade, périodes d'examens), vous pouvez
déclarer des **compatibilités** entre tâches voisines : une même
personne peut alors couvrir deux tâches en parallèle.

Exemple typique : `couloir 2` + `couloir 3` sont fusionnables — la
même personne peut surveiller les deux. Vous le déclarez sur la tâche,
dans l'écran Affectations, pour guider les arbitrages d'affectation.

Ne déclarez pas une compatibilité pour masquer durablement un
sous-effectif. La compatibilité doit correspondre à une situation que
l'établissement accepte réellement sur le terrain.

#### Modèles de grille

Si vous gérez la même structure de planning chaque semaine, vous
pouvez **dupliquer une grille existante** pour repartir d'une base.
Cas récurrents :

- **Semaine type** — la grille de référence (rentrée à fin
  d'année).
- **Semaine de vacances** — moins de tâches, équipe réduite.
- **Semaine d'examens** — surveillance d'amphithéâtres qui s'ajoute aux
  tâches courantes.
- **Journée spéciale** — portes ouvertes, sortie, événement interne,
  conseil ou accueil particulier.

#### Vérifier la cohérence avant d'affecter

Avant de passer à l'étape d'affectation, utilisez la grille comme
check-list métier :

- les tâches couvrent-elles bien chaque période utile ?
- les besoins sont-ils réalistes par rapport à l'équipe disponible ?
- les postes multi-sites tiennent-ils compte des temps de trajet ?
- les restrictions de personnel autorisé correspondent-elles aux
  personnes réellement habilitées ?
- les compatibilités entre tâches restent-elles acceptables même en
  sous-effectif ?

Une fois la grille validée, passez à l'étape d'**affectation**.
Voir [Affecter le personnel](#page-staffing.planner).

#### Procédure — Construire une grille de service

1. **Une grille de service** décrit le cadre du service sur l'année :
   jours ouvrés, créneaux horaires, sites.
2. **Créez une grille.** Donnez-lui un nom court (`Semaine type`).
   Sélectionnez les jours ouvrés, puis définissez les créneaux
   horaires — typiquement au quart d'heure pour les AED. Vous pouvez
   aussi dupliquer une grille existante pour repartir d'une base.
3. **Répartissez la grille sur l'année** avec Répartition des grilles :
   chaque grille couvre les semaines ou plages de dates où elle
   s'applique (semaine type, examens, vacances).
4. **Déclarez les sites** si votre établissement en compte plusieurs.
   Les distances entre sites permettent de signaler les affectations
   incompatibles.
5. **Sauvegardez la grille**, puis décrivez les tâches et leurs
   besoins créneau par créneau dans l'écran Affectations. Voir
   [Définir les tâches à couvrir](#page-staffing.assignments).
6. **Étape suivante : affecter le personnel** dans le planificateur.
   Voir [Affecter le personnel](#page-staffing.planner).

#### Voir aussi

- [Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [Définir les tâches à couvrir](#page-staffing.assignments)
- [Affecter le personnel](#page-staffing.planner)

<a id="page-staffing.assignments"></a>

### 7.3  Définir les tâches à couvrir

*Source: `help/fr/staffing/assignments.md` · id: staffing.assignments · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13*

> **Option: Service du personnel**

L'écran Affectations sert à définir les tâches ou postes que le
Service du personnel devra couvrir. C'est une étape de configuration :
on décrit les besoins, avant d'affecter les personnes dans le
[Planificateur](#page-staffing.planner).

La **diffusion** au personnel vient ensuite, via le
Tableau de service (voir [Tableaux de service](#page-staffing.roster)).

#### Ce qu'une tâche décrit

Une tâche peut porter :

- un libellé clair : `Accueil`, `Cour`, `Réfectoire`,
  `Surveillance examen amphithéâtre A` ;
- un nombre de personnes minimum requis et un nombre idéal ;
- un niveau de priorité ;
- un site ou un lieu ;
- la liste spécifique des membres du personnel autorisés à l'assurer
  (vide = tout le personnel) ;
- des règles de compatibilité avec d'autres tâches ;
- des besoins détaillés créneau par créneau sur la grille de service.

La tâche doit être suffisamment précise pour être comprise dans le
planificateur et dans le tableau de service remis au personnel.

Exemples fréquents :

- `Couloir 2` ;
- `Accueil portail nord` ;
- `Cour de récréation` ;
- `Réfectoire` ;
- `Permanence salle B12` ;
- `Surveillance examen amphithéâtre A` ;
- `Sortie EPS stade Charcot`.

#### Besoins et personnel autorisé

Les besoins indiquent combien de personnes doivent couvrir une tâche,
créneau par créneau sur la grille de service (0 = aucun besoin), en
plus du minimum requis et de l'effectif idéal de la tâche. La liste du
personnel autorisé limite les personnes éligibles : réservez-la aux
postes qui exigent une habilitation ou une compétence particulière —
sortie EPS, surveillance spécifique, accueil particulier, accès à un
site.

Ces informations évitent de transformer l'affectation en simple liste
de noms : Omniscol garde le lien entre le poste, le besoin et les
personnes autorisées à le couvrir.

Pour une tâche sensible, limitez le personnel autorisé plutôt que de
compter sur une consigne orale : le planificateur signale alors toute
affectation d'une personne non autorisée.

#### Compatibilités entre tâches

Certaines tâches proches peuvent être couvertes par la même personne
si l'établissement l'autorise. Exemple : deux couloirs voisins pendant
un créneau calme.

Déclarez ces compatibilités seulement quand elles correspondent à une
règle métier réelle. Une compatibilité trop large rend le planning
moins lisible et peut masquer un sous-effectif. Cas à éviter : fusionner
des postes éloignés uniquement parce qu'il manque quelqu'un.

#### Import et reprise de structure

Quand beaucoup de tâches existent déjà, l'écran permet de gagner du
temps avec les outils d'import et de reprise de structure disponibles
dans le module. Après import, vérifiez les libellés, les besoins et le
personnel autorisé avant de passer au planificateur.

Un import propre doit produire des libellés directement lisibles par
les personnes affectées. Si vous importez des codes internes,
renommez-les avant diffusion.

#### Pourquoi séparer tâches et planificateur

La séparation évite de mélanger deux décisions :

- **définir le besoin** : quels postes existent, où, avec quelles
  règles ;
- **affecter les personnes** : qui couvre ces postes sur une semaine ou
  une période donnée.

Quand la structure change peu, cette séparation permet de réutiliser
les mêmes tâches et de ne modifier que les personnes ou les exceptions.

#### Procédure

1. Ouvrez Service du personnel > Affectations.
2. Créez ou importez les tâches à couvrir.
3. Vérifiez les libellés visibles par l'équipe.
4. Renseignez les besoins, les sites et le personnel autorisé.
5. Déclarez uniquement les compatibilités réellement acceptées.
6. Sauvegardez, puis ouvrez le planificateur pour nommer les personnes.

#### Voir aussi

- [Construire une grille de service](#page-staffing.building-grids)
- [Affecter le personnel](#page-staffing.planner)
- [Tableaux de service](#page-staffing.roster)
- [Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [Vue d'ensemble du module Absences](#page-absences.overview)

<a id="page-staffing.planner"></a>

### 7.4  Affecter le personnel

*Source: `help/fr/staffing/planner.md` · id: staffing.planner · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13*

> **Option: Service du personnel**

Le Planificateur sert à nommer
les personnes qui couvrent les tâches définies dans la grille de service.
C'est l'écran de travail opérationnel : choisir une semaine, remplir les cases,
corriger les alertes, puis enregistrer.

#### Affectation manuelle

Pour chaque créneau et chaque tâche, vous placez les membres du
personnel disponibles dans la case correspondante. Omniscol signale les
situations à vérifier :

- personne absente ;
- indisponibilité ou contrainte déclarée ;
- personne déjà affectée ailleurs ;
- personne non autorisée sur la tâche ;
- charge hebdomadaire à surveiller.

Le planificateur est pensé pour les cas réels de vie scolaire : AED
étudiants dont les disponibilités changent, périodes d'examens,
absences déclarées le matin, postes à recouvrir rapidement et équipes à
répartir équitablement.

La planification est **manuelle** : les alertes, la duplication et les
outils de correction guident la construction du planning. Omniscol ne
place pas le personnel automatiquement.

#### Lire les alertes

Les couleurs et infobulles indiquent pourquoi une affectation mérite
une vérification : absence, indisponibilité, autre tâche sur le même
créneau, personne non autorisée ou dépassement du service horaire. Le
résumé hebdomadaire permet de revenir vers la case concernée.

Les alertes se gradent en gravité : un conflit rouge demande une
correction immédiate ; un avertissement signale une situation à arbitrer
selon les règles de l'établissement.

#### Outils de correction

Le planificateur permet notamment :

- de naviguer par semaine et par jour ;
- d'afficher une journée ou toute la semaine selon le besoin ;
- de dupliquer une semaine vers une autre quand la structure se
  répète, en filtrant au besoin les jours ou les tâches recopiés ;
- d'activer un mode gomme pour effacer une case, une ligne ou une
  colonne ;
- d'annuler une correction récente ;
- d'enregistrer les changements.

Les personnes verrouillées sur une case restent fixées lors des
corrections manuelles suivantes.

#### Dupliquer sans repartir de zéro

Quand la structure est stable, dupliquez la semaine précédente puis
corrigez seulement les exceptions : absence, indisponibilité ponctuelle,
changement d'examen, sortie ou besoin renforcé sur un poste. C'est la
méthode courante pour éviter de reconstruire toute la vie scolaire à la
main chaque semaine.

Pour les semaines atypiques, utilisez une grille adaptée : vacances,
examens, portes ouvertes ou période avec équipe réduite.

#### Absences

Les absences de personnel déclarées dans le module Gestion des absences sont prises
en compte dans l'affectation. Une personne absente peut apparaître en
alerte sur les tâches déjà posées, ce qui permet d'identifier les postes
à recouvrir.

Les absences rendent le problème visible au bon endroit : l'administrateur
ou le coordinateur réaffecte alors la tâche en connaissance de cause.

#### Charge de travail

Le planificateur calcule des informations de service par personne et
par journée, notamment les périodes couvertes et les durées. Utilisez
ces indications pour éviter qu'une personne absorbe trop de créneaux ou
que les tâches pénibles soient toujours concentrées sur la même équipe.

#### Partage

Le planificateur peut être partagé selon les options de partage
disponibles sur le compte. Pour transmettre le planning individuel à
chaque personne, utilisez plutôt le
[tableau de service](#page-staffing.roster), plus lisible et prévu pour
l'impression ou la diffusion.

#### Procédure

1. Ouvrez Service du personnel > Planificateur.
2. Choisissez la semaine ou la plage à travailler.
3. Vérifiez que la bonne grille de service est active.
4. Affectez les personnes dans les cases.
5. Traitez les alertes de disponibilité, d'absence ou de personne non
   autorisée.
6. Dupliquez la semaine si la structure se répète.
7. Enregistrez, puis ouvrez le tableau de service pour diffusion.

#### Voir aussi

- [Construire une grille de service](#page-staffing.building-grids)
- [Définir les tâches à couvrir](#page-staffing.assignments)
- [Tableaux de service](#page-staffing.roster)
- [Vue d'ensemble du module Absences](#page-absences.overview)

<a id="page-staffing.roster"></a>

### 7.5  Créer et partager les tableaux de service

*Source: `help/fr/staffing/roster.md` · id: staffing.roster · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-05-18*

> **Option: Service du personnel**

Le Tableau de service présente les tâches affectées à une personne
ou à l'ensemble du personnel sur la période sélectionnée. Il sert à
diffuser le planning après le travail d'affectation.

C'est l'écran destiné à répondre simplement à la question : « où dois-je
être, à quelle heure, et pour quelle tâche ? »

#### Deux vues

- **Vision en liste** : tâches classées par jour et par ordre
  chronologique, avec les informations utiles à la lecture individuelle.
- **Vision en grille** : semaine en tableau, avec les créneaux en
  lignes et les jours en colonnes.

Les absences, indisponibilités et commentaires utiles restent visibles
pour éviter de diffuser un tableau incohérent. La vue liste affiche les
totaux par jour et par semaine.

#### Impression et export

Le tableau de service peut être imprimé. La vue grille propose aussi un
export en tableau lisible, avec possibilité de produire un PDF depuis
la fenêtre d'export.

Selon l'organisation de l'établissement, le tableau peut être :

- imprimé pour affichage ;
- exporté en PDF ;
- transmis par courriel en dehors d'Omniscol ;
- consulté directement par le personnel connecté ;
- partagé par lien lorsque cette option est utilisée sur le compte.

L'impression reste fréquente pour une vie scolaire ; le même écran sert
aussi à préparer un PDF nominatif, à transmettre une vue à une personne,
ou à laisser le personnel consulter son planning avec son compte.

#### Partage et calendrier

Le partage peut inclure un lien web et un abonnement iCal selon les
options disponibles. Comme pour les autres liens de partage, définissez
une date d'expiration adaptée à la période transmise.

Pour une communication nominative, vérifiez toujours que la personne
sélectionnée est la bonne avant d'imprimer, d'exporter ou de partager.

#### Tous les personnels ou une personne

Vous pouvez consulter une personne précise ou l'ensemble du personnel.
La vue individuelle est adaptée à la diffusion nominative ; la vue
globale sert plutôt au contrôle interne avant diffusion.

#### Procédure

1. Ouvrez Service du personnel > Tableau de service.
2. Choisissez une personne ou l'ensemble du personnel.
3. Sélectionnez la période.
4. Choisissez Vision en liste ou Vision en grille.
5. Vérifiez les absences et les éventuelles alertes.
6. Imprimez, exportez ou partagez selon le mode de diffusion prévu.

#### Voir aussi

- [Affecter le personnel](#page-staffing.planner)
- [Définir les tâches à couvrir](#page-staffing.assignments)
- [Liens de partage publics](#page-glossary.share-link)

---

## 8. Administration

<a id="page-admin.users-and-roles"></a>

### 8.1  Utilisateurs et rôles

*Source: `help/fr/admin/users-and-roles.md` · id: admin.users-and-roles · Audience: admin · Updated: 2026-08-07*

L'administration des utilisateurs regroupe les comptes qui peuvent se
connecter à Omniscol. Les vues principales sont les administrateurs,
les professeurs, les élèves et, si le Service du personnel est actif, le
personnel.

#### Rôles principaux

| Rôle technique | Libellé interface | Usage |
| --- | --- | --- |
| `admin` | Administrateur | Administration du compte de l'école. |
| `teacher` | Professeur | Portail professeur, disponibilités, emploi du temps personnel, absences propres. |
| `student` | Élève | Portail élève, emploi du temps personnel, absences propres. |
| `staff` | Personnel | Personnel planifié par le Service du personnel, si ce module est actif. |

Un utilisateur peut cumuler plusieurs rôles. Le menu affiche alors les
modules correspondant à l'ensemble de ses droits.

Le rôle technique `share` existe pour certains liens signés. Ce n'est
pas un compte utilisateur classique : il sert à ouvrir un périmètre
précis, souvent en lecture seule, depuis une URL de partage.

#### Écrans disponibles

- Administrateurs : comptes administrateurs.
- Membres du personnel : personnel de l'établissement (si module actif).
- Professeurs : professeurs et intervenants.
- Élèves : élèves, étudiants ou apprenants selon le
  vocabulaire de l'établissement.
- Tous les utilisateurs : vue consolidée de tous les comptes.

#### Champs communs

Le formulaire utilisateur gère notamment :

- prénom, nom et genre ;
- date de naissance ;
- e-mail et téléphone ;
- identifiant externe / matricule ;
- login, généré selon les paramètres du compte ;
- rôles ;
- commentaire.

Des champs supplémentaires apparaissent selon le rôle : heures de
service, matières et statut externe pour les professeurs ; placements
dans les classes et groupes pour les élèves ; paramètres de service
pour le personnel.

#### Actions de liste

Selon le rôle sélectionné, l'écran propose :

- Importer des données pour l'import ou la modification en
  masse ;
- Inviter un utilisateur pour envoyer des invitations ;
- Modification du mot de passe pour définir des mots de passe ;
- Envoyer un mail pour envoyer un message ;
- Assigner à une classe et
  Groupes pour les élèves.

Les actions visibles dépendent des API disponibles, du type de compte
et des droits de l'utilisateur connecté.

> _Option: Rôles personnalisés_

#### Rôles personnalisés

L’option **Rôles personnalisés** ajoute des rôles d'administration
restreints pour les comptes administrateurs. Elle permet d'exclure certains
modules ou certaines opérations pour un compte qui doit administrer
une partie seulement du périmètre. Voir
[Rôles personnalisés](#page-admin.customroles).

Pour borner non pas les opérations mais les données — un campus, une
filière, un emploi du temps — la même option ouvre les
[domaines](#page-admin.planning-domains), qui s'attribuent au compte comme un
rôle et se cumulent avec lui.

#### Liens de partage

Les liens publics et les partages signés n'impliquent pas
nécessairement la création d'un compte utilisateur. Les liens web d'EDT
sont en lecture seule ; certains liens ciblés peuvent toutefois
autoriser une action limitée, par exemple la saisie des disponibilités d'un
professeur jusqu'à une date d'expiration.

#### Procédure — Inviter un groupe d'utilisateurs

1. Ouvrez l'écran adapté au rôle : professeurs, élèves, personnel ou
   tous les utilisateurs.
2. Sélectionnez les lignes concernées.
3. Cliquez sur Inviter un utilisateur.
4. Vérifiez que chaque utilisateur a un login et un e-mail.
5. Envoyez les invitations. Les utilisateurs définissent ensuite leur
   mot de passe via le lien reçu.

#### Voir aussi

- [Architecture et rôles](#page-overview.architecture-and-roles)
- [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users)
- [Rôles personnalisés](#page-admin.customroles)
- [Domaines](#page-admin.planning-domains)
- [Gérer les membres du personnel](#page-admin.staff)

<a id="page-admin.admins"></a>

### 8.2  Gérer les administrateurs

*Source: `help/fr/admin/admins.md` · id: admin.admins · Audience: admin · Updated: 2026-08-07*

L'écran **Administrateurs** est la vue filtrée des utilisateurs qui
portent le rôle d'administrateur (voir le tableau des rôles dans
[Utilisateurs et rôles](#page-admin.users-and-roles)). Ce rôle donne accès
aux opérations de configuration de l'école : utilisateurs, emplois du
temps, absences, paramètres, imports, exports et publication.

#### Créer un administrateur

Utilisez Ajouter un administrateur depuis la liste. Le formulaire
est celui des utilisateurs :

- prénom et nom ;
- genre ;
- e-mail et téléphone, si utiles ;
- identifiant externe / matricule, si l'établissement en utilise un ;
- login généré selon les paramètres du compte ;
- rôle administrateur ;
- commentaire.

Le compte créé possède déjà un identifiant de connexion. Pour activer
l'accès de la personne, ouvrez sa fiche dans la liste des utilisateurs :
vous pouvez lui **définir un mot de passe**
(Mot de passe), lui **envoyer un
e-mail** (Envoyer un mail) et
**activer ou désactiver** le compte
(Activer). La connexion par
fournisseur d'identité (SSO) reste une alternative, voir
[OIDC / SSO](#page-integrations.oauth2).

#### Cumuler plusieurs rôles

Un même compte peut porter plusieurs rôles. Un coordinateur peut être à
la fois professeur et administrateur : il conserve son portail
professeur et accède aussi aux écrans d'administration.

Les rôles personnalisés permettent de limiter les opérations qu'un
administrateur peut mener. Sans rôle personnalisé, le rôle administrateur
reste global.

Pour limiter les données sur lesquelles il agit — un campus, une filière,
un emploi du temps — un [domaine de planification](#page-glossary.planning-domain) s'attribue
au compte, en plus de ses rôles. Voir [Domaines](#page-admin.planning-domains).

#### Retirer un accès administrateur

Pour retirer les droits d'administration, éditez le compte et retirez
le rôle administrateur. Évitez de créer un second compte pour la même personne
sauf contrainte réelle : le cumul de rôles sur un seul utilisateur est
prévu pour ce cas.

Gardez toujours au moins un compte administrateur opérationnel avant de
modifier les droits des autres administrateurs.

#### Procédure — Créer un administrateur

1. Ouvrez Administrateurs.
2. Cliquez sur Ajouter un administrateur.
3. Renseignez l'identité, l'e-mail si vous comptez lui envoyer un
   message, puis vérifiez que le rôle administrateur est présent.
4. Sauvegardez. Vous devez renseigner **votre** mot de passe administrateur,
   pour confirmer toute création ou modification d'un compte administrateur,
   par mesure de sécurité.
5. Si nécessaire, sélectionnez le compte dans la liste pour **définir
   son mot de passe**, lui **envoyer un e-mail** ou **activer /
   désactiver** l'accès, selon votre mode de déploiement.

#### Voir aussi

- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Rôles personnalisés](#page-admin.customroles)
- [Domaines](#page-admin.planning-domains)
- [OIDC / SSO](#page-integrations.oauth2)

<a id="page-admin.customroles"></a>

### 8.3  Rôles personnalisés d'administration

*Source: `help/fr/admin/customroles.md` · id: admin.customroles · Audience: admin · Options: customroles · Updated: 2026-08-07*

> **Option: Rôles personnalisés**

Les **rôles personnalisés** permettent de restreindre les droits
d'un compte administrateur. Le principe est soustractif : on
part d'un périmètre d'administration, puis on retire les modules ou les
opérations que la personne ne doit pas pouvoir utiliser.

C'est l'option à activer pour déléguer une partie de l'administration
sans donner tous les droits globaux.

#### Pourquoi ne pas donner tous les droits d'administration ?

Le rôle administrateur standard donne tous les droits sur le compte de l'école.
Pour beaucoup de fonctions de coordination, c'est trop :

- un coordinateur d'absences doit voir et gérer les absences, mais pas
  modifier les EDT ou les paramètres globaux ;
- un gestionnaire d'EDT doit construire les emplois du temps sans
  forcément accéder à l'import / export ;
- un service RH peut avoir besoin de modifier les fiches professeurs
  sans toucher aux cours ;
- un service technique peut consulter salles, panneaux ou ressources
  sans gérer les utilisateurs.

#### Ce que le formulaire permet

L'écran **Rôles personnalisés** propose :

- un **nom de rôle** ;
- des permissions par module ;
- des permissions par opération, selon ce que chaque module expose.

Les permissions portent sur les modules et leurs opérations, pas sur
les données elles-mêmes : un rôle personnalisé ne restreint pas l'accès
à une classe, un site, une matière ou une période en particulier. Il
délimite ce que la personne peut faire, pas les données sur lesquelles
elle peut agir.

#### Rôle personnalisé et domaine de planification

Les données, c'est le travail du [domaine de planification](#page-glossary.planning-domain). Les
deux notions répondent à des questions différentes et se donnent ensemble :

- le rôle personnalisé décide **quelles opérations** un administrateur mène ;
- le domaine décide **sur quelles données** il les mène — quelles classes,
  quels sites, quelles salles, quelles matières, quels emplois du temps.

Dès qu'un coordinateur doit gérer son campus, sa filière ou son
établissement sans toucher à ceux de ses collègues, c'est le domaine qui
porte la restriction. Voir [Domaines](#page-admin.planning-domains).

#### Affecter un rôle personnalisé

Une fois créé, le rôle apparaît dans les sélecteurs de rôles des fiches
utilisateurs. Vous l'affectez à un compte administrateur comme un autre
rôle.

Un utilisateur peut cumuler plusieurs rôles standards et personnalisés.
Il obtient alors l'union des permissions restantes.

#### Cas d'usage typiques

- **Vie scolaire / surveillants** — droits sur les absences, le
  Service du personnel et la consultation des EDT, sans accès à la
  configuration.
- **Coordinateurs pédagogiques** — droits sur les écrans d'EDT utiles,
  sans paramètres globaux.
- **Service technique** — accès aux salles, panneaux ou ressources
  selon les opérations autorisées.
- **Assistants administratifs** — gestion des élèves ou professeurs
  sans accès au paramétrage sensible.

#### Auditabilité

Les actions effectuées avec un rôle personnalisé apparaissent dans les
logs lorsque l'option de logs est active et que la route concernée est
journalisée. Voir [Journaux d'activité (logs)](#page-admin.logs).

#### Procédure — Créer un rôle « Coordinateur absences »

1. Ouvrez **Rôles personnalisés** dans l'administration.
2. Créez un rôle nommé `Coordinateur absences`.
3. Autorisez les actions nécessaires sur le module Gestion des absences.
4. Conserver la lecture des emplois du temps si le coordinateur doit
   contextualiser une absence, mais retirez la modification.
5. Excluez les modules qui ne doivent pas être accessibles, notamment
   Gestion des EDT, paramètres globaux ou import / export si ce n'est
   pas son périmètre.
6. Sauvegardez, puis affectez le rôle aux comptes administrateurs
   concernés.
7. Si les journaux d'activité sont actifs, contrôlez les actions depuis
   [Journaux d'activité (logs)](#page-admin.logs).

#### Voir aussi

- [Domaines](#page-admin.planning-domains)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Gérer les administrateurs](#page-admin.admins)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)
- [Journaux d'activité (logs)](#page-admin.logs)

<a id="page-admin.planning-domains"></a>

### 8.4  Domaines de planification

*Source: `help/fr/admin/planning-domains.md` · id: admin.planning-domains · Audience: admin · Plan: premium · Options: customroles · Updated: 2026-08-07*

> **Premium · Option: Rôles personnalisés**

Un **domaine de planification** attribue à un administrateur un
**périmètre** — les données qu'il gère — et des **droits** — les actions
qu'il peut y mener. Sur un compte qui réunit plusieurs campus, filières ou
établissements dans un même emploi du temps, chaque planificateur travaille
ainsi sur sa part, sans se perdre dans l'ensemble ni toucher à celle des
autres.

Un administrateur peut recevoir un ou plusieurs domaines. Tant qu'il n'en a
aucun, il garde l'accès complet au compte : les domaines cadrent les comptes
que vous voulez cadrer, les autres restent inchangés.

#### Domaine ou rôle personnalisé ?

Les [Rôles personnalisés](#page-admin.customroles) et les domaines répondent à deux questions
différentes, et se combinent :

- un rôle personnalisé décide **quelles opérations** un administrateur mène —
  quels modules, en consultation, modification ou suppression ;
- un domaine décide **sur quelles données** il agit — quelles classes, quels
  sites, quelles salles, quelles matières, quels emplois du temps.

Un rôle personnalisé ne distingue pas une classe d'une autre ; un domaine, si.
Vous pouvez donner les deux à la même personne : le rôle borne ses opérations,
le domaine borne son terrain. Les domaines s'activent sur les comptes Premium,
avec la même option que les rôles personnalisés.

#### Ouvrir les domaines

Les domaines se gèrent depuis la liste des administrateurs. Dans
Administration, ouvrez **Utilisateurs**, onglet des
administrateurs, puis Domaines.

Seul un administrateur non restreint — sans domaine — ouvre cet écran et
attribue les domaines. La gestion des comptes administrateurs eux-mêmes reste
de son ressort : un planificateur cadré par un domaine ne crée ni ne modifie
de compte administrateur.

#### Le périmètre : quelles données

Le périmètre se définit dans la section Filtre. Il s'organise en
dimensions, de la plus large à la plus fine :

- **Campus** et **Matières** filtrent transversalement :
  ils s'appliquent à tout ce que touche le planificateur, quel que soit
  l'emploi du temps ;
- l'**emploi du temps**, puis en dessous les **sites**
  (et leurs **salles**) et les **classes** (et leurs
  **groupes**), suivent la structure d'un emploi du temps.

Une dimension laissée sur **Tout** n'impose aucune contrainte.
Pour la restreindre, choisissez un critère et une valeur :

- **Égal à** — la valeur exacte (un site, un
  niveau…) ;
- **Commence par** — un préfixe, pratique quand vos codes de
  matières ou de classes encodent l'unité pédagogique (`M1-`, `UE-INF`…) ;
- **Contient** — une valeur présente dans le libellé.

Les critères numériques, comme la capacité d'une salle,
remplacent ces variantes par des seuils **≥** et **≤** — de quoi confier les
amphithéâtres à un planificateur dédié, ou les tenir hors d'un domaine.

Chaque critère s'inverse en **Exclure** pour retirer plutôt
qu'inclure. Un bouton **+** ajoute une alternative (« ou ») dans la même
dimension — plusieurs sites, plusieurs niveaux — et les dimensions se cumulent :
une séance entre dans le périmètre quand elle satisfait **toutes** les
dimensions contraintes.

Chaque dimension propose les critères qui lui correspondent :

| Dimension | Critères |
| --- | --- |
| Campus | Nom |
| Matières | Nom, Code, Type de cours, Famille |
| Emploi du temps | Intitulé, Publié, Date de début et Date de fin |
| Sites | Nom |
| Salles | Nom, Bâtiment, Spécialisation, Étiquettes, Capacité |
| Classes | Nom, Niveau, Site |
| Groupes | Nom, Code |

En tête du filtre, l'œil ouvre une Vue d’ensemble :
Vue d’ensemble donne le nombre d'entités couvertes et un
échantillon, pour vérifier le périmètre avant d'enregistrer. Chaque ligne a le
sien, pour contrôler une dimension isolément.

#### Les droits : quelles actions

La section Droits propose deux façons d'appliquer le périmètre :

- **Restreindre** — « Seules les données du filtre restent
  modifiables, avec les droits cochés ci-dessous. » Le planificateur consulte
  tout, mais ne modifie que son périmètre, et seulement selon les droits
  accordés.
- **Masquer** — « Le filtre présélectionne seulement
  l'affichage : tous les droits restent accordés. » Le périmètre allège
  l'affichage sans rien retirer : utile pour se concentrer sur son campus tout
  en gardant la main sur l'ensemble.

En mode Restreindre, une matrice précise les droits. Le principe
est soustractif, comme pour les rôles personnalisés : tout est accordé par
défaut, vous décochez ce que le domaine interdit.

Deux tableaux se lisent en Modification,
Création et Suppression :

- les **entités** : Paramètres d'emplois du temps (modification seule),
  Classes, Professeurs, Salles, Matières et
  Sites ;
- les **Séances de cours** : leur création, modification et suppression, puis, en
  modification fine, les positions sur la grille, le
  professeur, la salle, la
  modalité, le lien de visioconférence, le
  statut, la durée et le commentaire d'une séance.
  La salle, la modalité et le lien de visioconférence se partagent une même
  fenêtre mais restent trois droits distincts : confier le choix du présentiel ou
  du distanciel n'ouvre pas l'affectation des salles.

La lecture, elle, reste toujours ouverte : un domaine cadre ce que l'on écrit,
jamais ce que l'on voit.

#### Ce que voit le planificateur

Le planificateur voit l'emploi du temps entier — c'est ce qui lui permet de
repérer un conflit entre son périmètre et celui d'un collègue — mais les listes
de classes, de salles ou de matières ne
présentent que ses entités. Là où des
éléments sont filtrés, un repère **Masquage par vos domaines** l'indique et, d'un clic,
détaille ce qui est masqué et par quel domaine. C'est la réponse directe à un
« je ne vois pas telle salle » : l'information est à l'écran.

Si une action sort du périmètre, Omniscol la refuse et l'explique : le filtrage
de l'affichage se double d'une vérification à chaque enregistrement.

#### Sur l'écran des séances

Un contrôle qu'un droit interdit reste **visible mais inactif**, jamais escamoté :
le planificateur voit que la fonction existe, et sait à quoi s'en tenir. C'est vrai
partout où une séance se modifie — sur la grille, dans la fiche d'une séance et
dans la vue en tableau.

Le menu Actions suit la même règle, action par action : retirer les
salles en masse dépend du droit sur la salle, la
répartition automatique du droit de création,
supprimer toutes les séances du droit de suppression. Une action
massive ne s'applique par ailleurs qu'aux séances du périmètre : une sélection
qui en déborde est **rognée**, pas refusée en bloc, et le planificateur en est
averti.

##### Générer un emploi du temps

La génération demande son propre droit : beaucoup de planificateurs délégués
gèrent leurs séances sans jamais lancer de génération. Quand il est accordé,
la portée du calcul est **contrainte au périmètre** — le planificateur peut la
restreindre davantage, jamais l'élargir. C'est ce qui rend le résultat
applicable : sans cela, une génération qui déplace une séance hors périmètre
serait refusée à l'enregistrement, et tout le travail serait perdu.

Les réglages de génération font exception à une règle : ils s'enregistrent avec
le droit de générer, même sans le droit sur les
paramètres d'emplois du temps.

##### Importer un tableau de séances

Les colonnes que le planificateur n'a pas le droit de modifier s'affichent en
lecture seule : il lit la donnée, il ne la change pas.

La classe, la matière et le groupe font exception, car ce ne sont pas de simples
champs : vider l'un d'eux supprime la séance, et le changer la déplace ailleurs.
Ces trois colonnes ne s'ouvrent donc qu'avec les droits de création, de
modification **et** de suppression réunis.

Si une ligne sort du périmètre, l'import entier est refusé et les lignes en cause
sont désignées. Omniscol n'envoie jamais autre chose que ce qui a été saisi :
mieux vaut un refus explicite qu'un import silencieusement amputé.

#### Affecter un domaine

Un domaine s'attribue depuis la fiche d'un administrateur, comme un rôle. Vous
pouvez en attribuer plusieurs : le planificateur cumule alors les périmètres,
chacun avec ses propres droits. Les domaines s'additionnent sans se fondre —
une action est autorisée dès qu'un domaine la couvre.

Créer, dupliquer ou supprimer un domaine se fait depuis le même écran :
Ajouter ajoute un domaine, Enregistrer
enregistre.

#### Procédure — Créer un domaine « Campus Paris »

1. Ouvrez Administration → **Utilisateurs**, onglet des
   administrateurs, puis Domaines.
2. Ajouter, puis nommez le domaine « Campus Paris ».
3. Dans Filtre, sur la dimension Campus, choisissez
   Égal à et la valeur du campus. Laissez les autres
   dimensions sur Tout.
4. Vérifiez la couverture avec l'œil Vue d’ensemble.
5. Gardez le mode Restreindre. Dans la matrice, décochez ce que
   ce planificateur ne doit pas faire — par exemple la suppression des classes.
6. Enregistrez avec Enregistrer.
7. Attribuez le domaine au compte administrateur concerné depuis sa fiche.

#### Voir aussi

- [Rôles personnalisés](#page-admin.customroles)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Gérer les administrateurs](#page-admin.admins)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)

<a id="page-admin.teachers"></a>

### 8.5  Gérer les professeurs

*Source: `help/fr/admin/teachers.md` · id: admin.teachers · Audience: admin · Updated: 2026-05-15*

L'écran **Professeurs** liste les utilisateurs qui portent le
rôle de professeur. Selon le contexte de l'établissement, on parle aussi
de professeurs, d'intervenants ou de formateurs.

Cet écran sert à créer les comptes, gérer leurs informations, leurs
matières, leurs disponibilités et la consultation de leur emploi du temps.

#### Champs de la fiche

Une fiche professeur contient les champs communs d'un utilisateur et
des champs propres aux professeurs :

- prénom, nom et genre ;
- date de naissance ;
- e-mail et téléphone ;
- identifiant externe / matricule ;
- login ;
- heures de service ;
- matières enseignées ;
- statut externe pour les vacataires ou intervenants ;
- disponibilités et contraintes horaires ;
- commentaire.

L'onglet **Emploi du temps** réunit l'emploi du
temps complet du professeur, sur l'ensemble des années scolaires, avec ses
disponibilités consolidées en arrière-plan. C'est une vue de consultation :
les affectations pédagogiques se font dans les emplois du temps.

Depuis la fiche, le bouton **Partage** ouvre
l'écran de partage, qui fournit notamment un abonnement iCal propre au
professeur, valable sur toutes les années scolaires.

#### Matières enseignées

Les matières rattachées à un professeur servent à filtrer ou préparer
les affectations. Elles se choisissent dans le référentiel de matières
officielles ou personnalisées.

#### Disponibilités

L'onglet **Disponibilités** permet à l'administrateur
de saisir ou corriger les disponibilités d'un professeur. Selon le paramétrage
de l'école, la saisie se fait en mode hebdomadaire, calendrier, mixte ou désactivée.

Le professeur peut également saisir ses propres disponibilités depuis son
portail si l'établissement l'autorise.

#### Actions en masse

En sélectionnant des professeurs dans la liste principale, vous pouvez aussi les inviter,
leur définir un mot de passe ou leur envoyer un message, selon les fonctions
activées pour le compte. Vous pouvez préalablement les filtrer.

Le bouton **Importer des données** ouvre une grille de type tableur :
on y ajoute, corrige ou supprime plusieurs professeurs à la fois, et on en exporte la
liste. Deux colonnes y sont en lecture seule, uniquement destinées à l'exportation :

- **Disponibilités** : restituées en texte, telles qu'elles ont été enregistrées ;
- **Classes** : celles où le professeur a des cours, consolidées depuis
  les emplois du temps actifs de l'année en cours.

> _Premium_

Les professeurs peuvent être synchronisés depuis un système externe :
Synchroniser ouvre le rapprochement avec ce
système. Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure — Créer un professeur

1. Ouvrez Professeurs.
2. Cliquez sur Ajouter un professeur.
3. Renseignez l'identité, l'e-mail, le login ou l'identifiant externe
   selon votre règle interne.
4. Ajoutez les matières enseignées.
5. Renseignez les heures de service si elles sont utilisées par votre
   établissement.
6. Sauvegardez, puis invitez le professeur si vous voulez qu'il se
   connecte.

#### Voir aussi

- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Gérer les élèves](#page-admin.students)
- [Gérer les matières](#page-admin.subjects)
- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Intervenants externes (vacataires)](#page-higher-ed.external-faculty)

<a id="page-admin.students"></a>

### 8.6  Gérer les élèves

*Source: `help/fr/admin/students.md` · id: admin.students · Audience: admin · Plan: standard · Updated: 2026-05-15*

L'écran **Élèves** liste les utilisateurs qui portent le
rôle élève. Selon le contexte de l'établissement, on parle aussi
d'étudiants ou d'apprenants.

Cet écran sert à créer les comptes, à suivre leur statut et à gérer
leurs placements dans les classes et groupes, année scolaire par année
scolaire.

#### Champs de la fiche

Une fiche élève contient les champs communs d'un utilisateur :

- prénom, nom et genre ;
- date de naissance ;
- e-mail et téléphone ;
- identifiant externe / matricule ;
- login ;
- commentaire.

Les représentants légaux, les justificatifs et les notifications
parents ne sont pas des champs de cette fiche.

#### Placements dans les classes et groupes

Les affectations pédagogiques sont gérées dans l'onglet de placement
de l'élève. Un placement indique notamment :

- la classe principale ;
- l'année scolaire concernée ;
- les dates de début et de fin si le placement ne couvre pas toute
  l'année ;
- les groupes suivis, semaine par semaine si nécessaire ;
- les éventuels chevauchements à corriger.

Un élève peut avoir plusieurs placements au fil d'une année scolaire,
par exemple après un changement de classe, un parcours partiel ou un
redoublement partiel.

#### Actions en masse

En sélectionnant des élèves dans la liste principale, vous pouvez les affecter
à une classe avec **Assigner à une classe** ou à des groupes avec
**Groupes** (s'ils sont de la même classe),
les inviter, leur définir un mot de passe, leur envoyer un message, les
désactiver lorsqu'ils quittent l'établissement ou les supprimer définitivement.
Vous pouvez préalablement les filtrer, notamment par classe d'affectation.

Le bouton **Importer des données** ouvre une grille de type tableur :
on y ajoute ou corrige plusieurs élèves à la fois, et on en exporte la liste
(CSV, Excel, PDF). Pour chaque année scolaire, deux colonnes y sont en lecture seule,
uniquement destinées à l'exportation :

- **Classes** : la ou les classes où l'élève est placé sur l'année courante
  et les suivantes ;
- **Groupes** : les groupes suivis sur l'année courante
  et les suivantes.

#### Redoublements et hors-cursus

Un redoublement partiel — un élève qui suit des cours répartis sur deux
niveaux — se gère en le plaçant dans les deux classes concernées sur la
même période : son emploi du temps réunit alors les cours des deux classes.
Omniscol ne contrôle pas les chevauchements d'horaires entre elles, c'est à
vous de les vérifier.

#### Procédure — Créer et placer un élève

1. Ouvrez Élèves.
2. Créez l'élève ou importez-le en masse.
3. Ouvrez sa fiche, puis l'onglet de placement de l'année scolaire
   concernée.
4. Ajoutez une classe, vérifiez les dates, puis sélectionnez les
   groupes suivis si nécessaire.
5. Sauvegardez les placements.
6. Invitez l'élève si vous voulez qu'il se connecte au portail.

#### Voir aussi

- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Import et export](#page-admin.import-export)

<a id="page-admin.staff"></a>

### 8.7  Gérer les membres du personnel

*Source: `help/fr/admin/staff.md` · id: admin.staff · Audience: admin · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-25*

> **Option: Service du personnel**

L'écran **Membres du personnel** liste les utilisateurs qui portent le
rôle **Personnel**. Il n'apparaît que sur les comptes dotés du module
**Service du personnel** : c'est là que vous déclarez les personnes
(surveillants, encadrants, assistants d'éducation…) que vous planifierez
ensuite dans le [Service du personnel](#page-staffing.overview).

Cet onglet sert à créer les comptes, gérer leurs informations et leurs
heures de service. **L'affectation aux tâches** (permanences, surveillances,
examens…) se fait, elle, dans le module Service du personnel — voir
[Affectations](#page-staffing.assignments).

#### Champs de la fiche

Une fiche de membre du personnel contient les champs communs d'un
utilisateur et quelques champs propres au personnel :

- prénom, nom et genre ;
- date de naissance ;
- e-mail et téléphone ;
- identifiant externe / matricule ;
- login ;
- **heures de service** (volume de référence pour le suivi) ;
- rôles et commentaire.

Une **fiche détaillée** est accessible depuis la liste
(Détails) pour consulter et compléter ces
informations membre par membre.

#### Membre du personnel et Service du personnel

La séparation est volontaire : **ici** vous gérez les *personnes* (le
référentiel des membres), **dans le [Service du personnel](#page-staffing.overview)**
vous gérez leur *planning* — grilles, tâches et affectations. Un membre créé
sur cet écran devient sélectionnable comme encadrant autorisé dans les
[affectations](#page-staffing.assignments).

#### Actions de liste

Depuis la liste, Ajouter un membre du personnel ajoute un
membre, et Importer des données ouvre la création ou la correction
**en masse**. Les actions de sélection permettent aussi d'inviter les
membres, de définir des mots de passe, d'activer les comptes ou de les
supprimer, selon les API disponibles.

#### Procédure — Créer un membre du personnel

1. Ouvrez Membres du personnel.
2. Cliquez sur Ajouter un membre du personnel.
3. Renseignez l'identité, l'e-mail, le login ou l'identifiant externe
   selon votre règle interne.
4. Renseignez les **heures de service** si votre établissement en assure
   le suivi.
5. Sauvegardez, puis invitez le membre si vous voulez qu'il se connecte
   à son portail.
6. Planifiez ensuite ses tâches dans le
   [Service du personnel](#page-staffing.assignments).

#### Voir aussi

- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Gérer les professeurs](#page-admin.teachers)
- [Service du personnel — vue d'ensemble](#page-staffing.overview)
- [Affectations](#page-staffing.assignments)
- [Service du personnel](#page-glossary.staffing)

<a id="page-admin.subjects"></a>

### 8.8  Gérer les matières (officielles et personnalisées)

*Source: `help/fr/admin/subjects.md` · id: admin.subjects · Audience: admin · Updated: 2026-05-14*

L'écran **Matières** gère les matières personnalisées de l'école et,
si le référentiel commun est actif, permet de rechercher des matières
officielles du pays configuré.

#### Matières communes et personnalisées

- Les **matières communes** viennent du référentiel Omniscol pour le
  pays de l'école. Elles peuvent être recherchées et ajoutées quand ce
  référentiel n'est pas désactivé.
- Les **matières personnalisées** appartiennent à l'école. Elles
  couvrent les intitulés locaux, modules, options ou unités qui ne sont
  pas dans le référentiel commun.

#### Champs d'une matière personnalisée

| Champ | Obligatoire ? | Rôle |
| --- | --- | --- |
| **code** | Oui | Codification courte de la matière, en binôme avec le nom (qui peut être long, surtout dans le supérieur). Souvent une référence officielle — par exemple les codes matières des ministères de l'éducation (France, Italie) — généralement en majuscules et/ou chiffres. |
| **nom** | Oui | Libellé complet de la matière, affiché dans les sélecteurs de cours, sur l'emploi du temps et dans les exports. |
| **nom court** | Non | Libellé abrégé pour l'affichage sur l'emploi du temps, plus court que le nom complet. |
| **matière parente** | Non | Rattache la matière à une autre matière pour construire une hiérarchie de matières. |
| **famille** | Non | Regroupe les matières. Le sélecteur propose les familles par défaut du référentiel du pays et les familles propres au compte. |
| **couleur** | Non | Couleur d'identification visuelle. À la création, vous choisissez dans une palette de teintes lisibles à l'écran ; à défaut, une couleur est calculée automatiquement à partir du nom. |

Le code et le nom sont tous deux demandés à la création. Évitez de
changer le code une fois qu'il sert de référence dans vos imports,
exports ou échanges avec un système externe.

#### Création et modification en masse

Le bouton [table] ouvre la création et la
modification **en masse** des matières personnalisées : saisir ou
remplacer plusieurs matières en une seule opération, dans une grille de
type tableur. Supprimer une ligne de la grille puis valider retire la
matière correspondante du catalogue : la grille remplace l'ensemble des
matières personnalisées par son contenu. Dans cette grille, la couleur
accepte une valeur hexadécimale libre, sans la palette de teintes
proposée à la création — au risque d'un rendu moins lisible.

Une matière personnalisée peut être supprimée même si elle a servi dans
des emplois du temps passés ou publiés. Vous pouvez ainsi nettoyer le
catalogue des matières d'une année sur l'autre sans toucher à ces
emplois du temps : chaque classe conserve une copie locale du libellé de
la matière (nom, nom court, code), et l'emploi du temps garde la couleur
qui lui était attribuée. La matière continue donc de s'afficher après sa
suppression du catalogue. Voir [Modèle de données complet](#page-integrations.data-model-full) pour le
principe de copie locale.

> _Premium_

Si la synchronisation avec un système externe est configurée,
Synchroniser ouvre le rapprochement avec ce
système. Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Types de cours

Le même écran affiche aussi la liste simple des types de cours. Voir
[Types de cours](#page-admin.lesson-types).

> _Premium_

Les types de cours peuvent aussi être synchronisés depuis un système
externe : Synchroniser ouvre le rapprochement.
Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure — Ajouter une matière

1. Ouvrez Matières.
2. Pour une matière commune, utilisez la recherche du référentiel si
   elle est disponible.
3. Pour une matière propre à l'établissement, cliquez sur
   **Créer** avec Créer.
4. Renseignez le code et le nom, tous deux obligatoires, puis complétez
   le nom court, la famille, la matière parente ou la couleur si
   nécessaire.
5. Sauvegardez. La matière devient disponible dans les sélecteurs de
   cours et les fiches professeurs.

#### Voir aussi

- [Types de cours](#page-admin.lesson-types)
- [Gérer les professeurs](#page-admin.teachers)
- [Matière](#page-glossary.subject)

<a id="page-admin.lesson-types"></a>

### 8.9  Types de cours

*Source: `help/fr/admin/lesson-types.md` · id: admin.lesson-types · Audience: admin · Updated: 2026-05-14*

Dans le module **Administration**, un **type de cours** est un libellé
court attaché aux séances pour distinguer des formats comme `CM`, `TD`,
`TP`, `Examen` ou `Projet`. Les types de cours forment une liste de
libellés textuels, sans couleur ni icône associées.

#### Où les gérer

La liste des types de cours se gère depuis l'écran
**Matières** et depuis l'écran
**Paramètres**, dans la section
**Type de cours**. Les boutons utilisés sont :

- **Créer** pour ajouter un nouveau type ;
- **Enregistrer** pour enregistrer la liste.

L'ordre d'affichage se réorganise par glisser-déposer.

#### Paramètre “Type de cours obligatoire”

Le paramètre Type de cours obligatoire se règle dans l'écran
**Paramètres**. Lorsqu'il est activé, la saisie d'un cours,
c'est-à-dire une matière affectée à une classe dans un emploi du temps, doit
inclure un type. C'est utile lorsque vous exportez les séances vers un ERP
qui exige cette information.

#### Bonnes pratiques

- Gardez une liste courte et stable.
- Évitez de renommer un type utilisé en production sans vérifier les
  imports et exports qui s'appuient dessus.
- Utilisez les types pour distinguer des formats pédagogiques, pas pour
  remplacer les matières ou les modalités de cours (présentiel/distanciel).

#### Procédure — Ajouter un type

1. Ouvrez l'écran **Matières**.
2. Dans la section **Type de cours**, cliquez sur
   **Créer**.
3. Saisissez le libellé du type.
4. Réordonnez la liste si nécessaire.
5. Enregistrez avec **Enregistrer**.

#### Voir aussi

- [Cours, séances, types de cours](#page-core-concepts.lessons-and-types)
- [Gérer les matières](#page-admin.subjects)

<a id="page-admin.school-year"></a>

### 8.10  Année scolaire et vacances

*Source: `help/fr/admin/school-year.md` · id: admin.school-year · Audience: admin · Plan: standard · Updated: 2026-06-26*

Dans le module **Administration**, l'écran **Années scolaires**
définit les périodes sur lesquelles les emplois du temps, vacances,
absences et placements des élèves sont interprétés. On parle aussi
d'année académique.

#### Créer une année scolaire

Une année scolaire contient :

- un **nom** ;
- une **date de début** ;
- une **date de fin**.

À la création, Omniscol peut proposer l'import des vacances communes du
pays configuré lorsque des données sont disponibles pour la plage
choisie. Vous pouvez désélectionner celles qui ne vous concernent pas.

<a id="page-admin.school-year--current-year"></a>
#### Année scolaire courante

Le sélecteur **Année scolaire courante** indique l'année affichée par
défaut dans l'application et les portails. Changer cette valeur fait
basculer le contexte par défaut des utilisateurs. C'est aussi la seule année
accessible aux élèves.

Gardez l'année courante sur l'année réellement utilisée au quotidien.
Préparer l'année suivante se fait en créant une nouvelle année puis en
travaillant les emplois du temps correspondants sans la définir trop tôt
comme année courante.

<a id="page-admin.school-year--holidays"></a>
#### Vacances

Chaque année scolaire contient une liste de vacances :

- nom ;
- date de début ;
- date de fin.

Vous pouvez les ajouter une par une, les modifier, les supprimer ou les
gérer en tableau avec **Tableau**.

<a id="page-admin.school-year--alternate-weeks"></a>
#### Semaines alternées

Si les semaines alternées sont activées dans les paramètres généraux,
l'écran affiche une frise permettant de régler les alternances de
l'année. La sauvegarde se fait avec **Enregistrer**.

Le format des étiquettes (`A, B, ...`, `1, 2, ...`, ou désactivé) se
règle dans les paramètres généraux.

**Décalage par les vacances** : si vous étiez en semaine A juste avant
les vacances et voulez reprendre en semaine B après, cliquez sur les
semaines concernées de la frise pour créer un **décalage virtuel**.
L'alternance se recale alors sur la suite du calendrier.

#### Procédure — Préparer l'année suivante

1. Ouvrez l'écran **Années scolaires**.
2. Créez l'année suivante avec son nom, sa date de début et sa date de
   fin.
3. Importez ou saisissez les vacances.
4. Configurez les semaines alternées si votre établissement les utilise.
5. Créez ou dupliquez ensuite les emplois du temps dans le module
   **Gestion des EDT**.
6. Ne changez l'année scolaire courante qu'au moment où les utilisateurs
   doivent voir cette année par défaut.

#### Voir aussi

- [Année scolaire](#page-core-concepts.school-year)
- [Année scolaire](#page-glossary.school-year)
- [Publier (activer) un emploi du temps](#page-timetables.publication)
- [Préparer la rentrée suivante](#page-timetables.next-school-year)

<a id="page-admin.parameters"></a>

### 8.11  Paramètres généraux de l'école

*Source: `help/fr/admin/parameters.md` · id: admin.parameters · Audience: admin · Updated: 2026-05-14*

Dans le module **Administration**, l'écran **Paramètres**
contient la configuration globale de l'école. Certains paramètres
s'appliquent immédiatement à tout le compte et d'autres servent de valeur
par défaut pour les futurs emplois du temps.

#### Paramètres principaux

L'écran permet notamment de régler :

- **nom de l'école** ;
- **fuseau horaire** ;
- **année scolaire courante** ;
- **niveaux de classe** avec Créer ;
- **heures d'ouverture** pour les comptes qui utilisent le Service du personnel ;
- **mode de saisie des disponibilités des professeurs** ;
- **restriction de visibilité élève** ;
- **restriction de visibilité professeur** ;
- **restriction de connexion par rôle** ;
- **gestion du deuxième prénom** ;
- **règle de capitalisation des noms** ;
- **syntaxe de login** ;
- **premier jour de la semaine** ;
- **format des semaines alternées** ;
- **caractère obligatoire ou non du type de cours** ;
- **activation ou désactivation du référentiel commun de matières** ;
- **logo de l'école**.

Les quotas de snapshots ou la profondeur de conservation des logs ne
sont pas des réglages ordinaires de cet écran. Ils sont activés ou
adaptés par Omniscol selon le contrat de l'établissement.

#### Niveaux

Les **niveaux** servent à classer les classes par progression
pédagogique : 6e, 5e, Bachelor, Master, année 1, année 2, etc.

Ils font partie des réglages **généraux** du compte. Vous pouvez les
créer, les supprimer et les réordonner depuis cet écran. Ils servent
ensuite dans les classes, dans certains filtres et dans plusieurs vues
de diagnostic.

#### Paramètres de visibilité et de connexion

Les paramètres Restriction de consultation des EDT par les étudiants,
Restriction de consultation des EDT par les professeurs et
Restriction de connexion à l’application sont documentés dans
[Restrictions de visibilité](#page-admin.visibility-restrictions).

#### Types de cours et matières communes

Le paramètre Type de cours obligatoire force ou non la
présence d'un type lors de la saisie d'un cours. Le paramètre des
matières communes contrôle l'accès au référentiel officiel du pays.

#### Logo

Le logo téléversé est stocké dans le compte et utilisé par l'interface
quand le contexte le prévoit, notamment sur les écrans de connexion et
dans l'application.

#### Procédure — Configurer le compte

1. Ouvrez **Paramètres**.
2. Vérifiez le nom de l'école, le fuseau horaire et l'année scolaire
   courante.
3. Configurez les niveaux, le premier jour de la semaine et les
   semaines alternées avant de créer les emplois du temps.
4. Réglez les restrictions de visibilité et de connexion selon votre
   politique d'établissement.
5. Sauvegardez les paramètres généraux avec
   Enregistrer.

#### Voir aussi

- [Configurer le compte de l'école](#page-getting-started.setup-school)
- [Année scolaire et vacances](#page-admin.school-year)
- [Gérer les matières](#page-admin.subjects)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)
- [Paramètres avancés et personnalisation](#page-admin.advanced-parameters)

<a id="page-admin.advanced-parameters"></a>

### 8.12  Paramètres avancés et personnalisation

*Source: `help/fr/admin/advanced-parameters.md` · id: admin.advanced-parameters · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Dans le module **Administration**, l'écran **Paramètres**
réunit, sur les comptes Premium, des réglages **avancés** en plus des
paramètres généraux. Cette page documente ces fonctions avancées ; pour
les réglages de base, voir [Paramètres généraux de l'école](#page-admin.parameters).

#### Campus

Les **campus** servent à classer les classes par
organisation interne : implantation, faculté, pôle, programme ou autre
périmètre propre à l'établissement. Cette notion est **facultative** et
reste distincte des sites : un site est un lieu physique, avec sa grille
horaire, ses salles et ses temps de trajet, tandis qu'un campus est une
simple maille d'organisation logique.

Le campus devient surtout utile quand la géographie ne recoupe pas bien
votre organisation logique : plusieurs facultés dans les mêmes
bâtiments, ou plusieurs écoles d'un groupe qui partagent plusieurs
sites de manière croisée. Même quand campus et site se recoupent, cette
maille peut rester utile pour les filtres et les regroupements.

Créez avec **Créer** uniquement les campus qui
servent réellement à organiser ou filtrer le travail. Ils deviennent
ensuite disponibles dans les écrans de création des classes et
certains filtres de diagnostic.

#### Surcharges de traduction et de terminologie

L'écran permet aussi de **surcharger des traductions** pour adapter le
vocabulaire affiché à votre établissement. Cette zone sert à
personnaliser les libellés visibles dans l'interface, sans modifier la
structure fonctionnelle du produit.

Il y a deux mécanismes distincts :

- Règles de remplacements de traductions : elles remplacent un terme
  par un autre dans un ensemble de libellés ;
- Redéfinitions de traductions : elles remplacent
  directement la valeur d'une traduction précise.

##### Règles de remplacement

Les règles de remplacement servent à harmoniser un vocabulaire dans de
nombreux libellés à la fois. Exemples typiques :

- remplacer `Professeur` par `Intervenant` ;
- remplacer `Élève` par `Étudiant` ;
- adapter certains termes à la culture de l'établissement.

Les règles sont **ordonnées**. L'ordre compte : une règle placée plus
haut s'applique avant les suivantes. L'écran permet de :

- saisir un texte source et un texte cible, puis valider avec
  **Ajouter** ;
- prévisualiser les libellés concernés ;
- réordonner les règles ;
- supprimer une règle.

Les options disponibles servent à préciser le type de remplacement :

- `Aa` : distinction alphabétique / casse ;
- `ab` souligné : correspondance complète ;
- `.*` : expression régulière.

Utilisez les règles quand vous voulez changer un terme de manière
cohérente dans plusieurs écrans.

Les règles se sauvegardent **dans leur propre zone** : ajout,
suppression et réordonnancement sont enregistrés séparément des autres
paramètres de la page.

##### Surcharges de clés complètes

Les surcharges de clés complètes servent à corriger ou réécrire un
libellé **au cas par cas**.

L'écran permet de :

- rechercher une traduction existante ;
- l'ajouter à la liste des surcharges ;
- saisir votre propre version ;
- enregistrer ou supprimer cette surcharge.

Utilisez ce mode quand une règle générale serait trop large, ou quand
vous voulez réécrire une phrase entière plutôt qu'un simple terme.

Chaque surcharge de clé se sauvegarde **ligne par ligne** avec son
propre bouton d'enregistrement ou de suppression.

##### Bon usage

Les règles et surcharges servent à personnaliser le **vocabulaire
affiché**. Elles ne changent ni les concepts métier sous-jacents, ni
les identifiants internes, ni les comportements de l'application.

Préférez :

- une **règle** pour un renommage récurrent ;
- une **surcharge de clé** pour une exception locale ou un libellé
  complet.

Évitez les remplacements trop larges ou ambigus qui rendraient l'aide,
les recherches ou la terminologie incohérentes d'un écran à l'autre.

#### Procédure

1. Ouvrez **Paramètres** dans le module **Administration**.
2. Repérez la zone avancée correspondant à votre besoin : campus ou
   surcharges de traduction.
3. Pour les campus, créez et ordonnez les libellés utiles à votre
   organisation.
4. Pour les traductions, choisissez entre règle globale et surcharge
   ponctuelle selon le périmètre du changement.
5. Sauvegardez chaque zone avec son propre mécanisme : les règles sont
   enregistrées dans leur bloc, et les surcharges de clés se valident
   ligne par ligne.

#### Voir aussi

- [Paramètres généraux de l'école](#page-admin.parameters)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)
- [Campus](#page-glossary.campus)
- [Conflits et diagnostic](#page-timetables.conflicts)

<a id="page-admin.visibility-restrictions"></a>

### 8.13  Restrictions de visibilité et de connexion

*Source: `help/fr/admin/visibility-restrictions.md` · id: admin.visibility-restrictions · Audience: admin · Plan: standard · Updated: 2026-05-14*

Dans le module **Administration**, l'écran **Paramètres**
regroupe quelques restrictions ciblées : un horizon de consultation pour
les élèves, le masquage des emplois du temps entre professeurs et le
blocage de connexion par rôle.

#### Restriction côté élèves

Le paramètre Restriction de consultation des EDT par les étudiants définit le nombre
de semaines futures, semaine en cours comprise, pendant lesquelles les
emplois du temps publiés restent visibles par les élèves. Vous le
réglez sur un nombre de semaines ou sur **Illimité**.

Cette restriction porte sur la fenêtre temporelle ouverte aux élèves :
chacun consulte les emplois du temps publiés jusqu'à l'horizon choisi.

#### Restriction côté professeurs

Le paramètre Restriction de consultation des EDT par les professeurs masque les
emplois du temps des autres professeurs. Il agit sur les filtres et les
vues de consultation : un professeur retrouve son propre emploi du temps,
sans accéder à celui de ses collègues.

#### Restriction de connexion

Le paramètre Restriction de connexion à l’application bloque la connexion
des profils sélectionnés : **Professeurs**,
**Membres du personnel** ou **Élèves**. Un utilisateur qui
cumule plusieurs rôles se connecte tant qu'au moins un de ses rôles reste
autorisé.

#### Procédure — Limiter la visibilité élève

1. Ouvrez l'écran **Paramètres**.
2. Repérez Restriction de consultation des EDT par les étudiants.
3. Choisissez **Illimité** ou un nombre de semaines.
4. Validez avec **Enregistrer**.

#### Voir aussi

- [Paramètres généraux](#page-admin.parameters)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [Portail étudiant](#page-portal.student-portal)
- [Portail enseignant](#page-portal.teacher-portal)

<a id="page-admin.import-export"></a>

### 8.14  Import et export

*Source: `help/fr/admin/import-export.md` · id: admin.import-export · Audience: admin · Updated: 2026-06-03*

Dans le module **Administration**, l'écran **Import/Export**
regroupe les opérations de transfert de données du compte : export JSON, échanges aSc,
snapshots, synchronisation avec des systèmes externes et options d’API activées sur le
compte. Tout dépend du pays, il peut aussi y avoir les échanges avec les protocoles
standards. Pour les établissements sous tutelle de l'Éducation nationale, des
échanges propres à la France (STS, UnDeuxTemps, École Directe) sont décrits dans
[Formats français](#page-admin.french-formats).

#### Export JSON

Le bouton **Télécharger** lance un export
JSON complet du compte. Ce fichier contient les données du compte et
doit être traité comme une sauvegarde sensible.

L'export JSON est disponible à tous les administrateurs. Si vous souhaitez
restreindre l'accès, il faut l'option des [Rôles personnalisés](#page-admin.customroles).

#### Import JSON

L'import JSON complet utilise le même format que l'export. Il reste
réservé à l'équipe Omniscol dans le cadre du support : la réinjection se
fait à sa demande, et non comme une opération courante de l'écran
d'administration.

Pour une restauration de compte, privilégiez les snapshots lorsqu'ils
sont activés, ou contactez Omniscol si une réinjection JSON est
nécessaire.

Avant tout import destructif, créez un point de sauvegarde si la fonctionnalité est
active.

#### aSc Timetables

L'écran contient aussi une section aSc Timetables :

- import d'un fichier XML aSc ;
- export XML aSc avec options.

Cet échange porte sur un fichier complet aSc. Pour ajouter des cours à
partir d'un tableur, utilisez plutôt [Import massif des cours via tableur](#page-timetables.mass-import).

<a id="page-admin.import-export--snapshots"></a>
#### Points de sauvegarde

Si les **points de sauvegarde** sont activés, le bouton
**Points de sauvegarde** ouvre leur gestion. Voir
[Points de sauvegarde](#page-admin.snapshots).

#### Synchronisation avec des systèmes externes et options d’API

> _Premium_

L'écran propose aussi :

- la configuration de synchronisation avec des systèmes externes avec
  **Configurer** ;
- le partage global / OpenAPI ;
- les réglages API ;
- la configuration MCP ;
- la gestion OAuth2 / OIDC.

#### Procédure — Exporter le compte

1. Ouvrez **Import/Export**.
2. Cliquez sur **Télécharger**.
3. Conservez le fichier dans un emplacement sécurisé.
4. Si l'objectif est une opération risquée, créez plutôt un snapshot en
   plus de l'export.

#### Voir aussi

- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Import massif des cours via tableur](#page-timetables.mass-import)
- [Points de sauvegarde](#page-admin.snapshots)
- [Vue d'ensemble](#page-migration.overview)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Formats français](#page-admin.french-formats)

<a id="page-admin.french-formats"></a>

### 8.15  Imports et exports français (STS, UnDeuxTemps, École Directe)

*Source: `help/fr/admin/french-formats.md` · id: admin.french-formats · Audience: admin · Plan: standard · Updated: 2026-06-29*

Pour les établissements français, l'écran
**Import/Export** du module **Administration** propose des
échanges spécifiques à la France, en plus des transferts généraux décrits
dans [Import et export](#page-admin.import-export). Ces formats ne concernent que la France :
ils n'apparaissent pas pour les comptes d'autres pays.

Trois formats sont couverts ici : **STS** (Éducation nationale),
**UnDeuxTemps (UDT)** et l'export **Aplim / Charlemagne** vers
**École Directe**. L'échange avec **aSc Timetables** suit un chemin distinct,
décrit dans [Depuis aSc Timetables](#page-migration.from-asc).

#### STS (Éducation nationale)

Pour les établissements **sous tutelle de l'Éducation nationale**,
le fichier **STS** vous est fourni par l'administration. Il décrit votre
établissement, l'année scolaire, les programmes, les professeurs affectés,
les classes et les groupes.

Il existe deux types de fichiers STS :

- **STS_EDT** (aussi appelé **STS_EMP**) : destiné à l'importation des
  données du Ministère dans un logiciel d'emploi du temps. C'est le fichier
  d'entrée pour construire votre emploi du temps à partir des données
  officielles.
- **EDT_STS** (aussi appelé **EMP_STS**) : la remontée (export) des données
  vers le Ministère, pour les services des professeurs.

Un fichier **EDT_STS peut aussi être importé** : il sert alors à créer les
heures de cours d'un emploi du temps construit **au préalable** par
l'importation d'un fichier STS_EDT.

##### Importer un fichier STS

L'import STS est disponible. Dans la section **STS** de l'écran
[Import et export](#page-admin.import-export), utilisez le bouton d'import du fichier STS et
sélectionnez votre fichier `.xml`. Omniscol lit le code de l'établissement
(UAI/RNE), l'année scolaire, les programmes, les matières, les classes, les
groupes et les professeurs, puis construit l'emploi du temps correspondant.

#### UnDeuxTemps (UDT)

Vous pouvez importer un emploi du temps au **format UDT** (UnDeuxTemps), un
format de fichiers `.DBF` produit par UnDeuxTemps ou par tout logiciel
exportant ce format.

Dans la section **UnDeuxTemps (UDT)** de l'écran [Import et export](#page-admin.import-export),
sélectionnez les trois fichiers `.DBF` de l'export (au minimum
`UDTCOURS.DBF`). Omniscol les lit ensemble et reconstitue les cours de
l'emploi du temps.

#### Aplim / Charlemagne, vers École Directe

Cet export produit un emploi du temps au **format UDT** lu par
**Charlemagne (Aplim)**, qui provisionne ensuite l'emploi du temps type
dans **École Directe**.

Le bouton
**Exporter au format UDT (Charlemagne)**
ouvre le choix de la source : un emploi du temps type, ou l'emploi du temps
courant pour une semaine donnée. L'export produit un fichier `.zip`
contenant un dossier avec trois tables `.DBF` (`UDTCOURS.DBF`,
`UDTREGR.DBF`, `UDTREM.DBF`) à coller dans Charlemagne.

Pour un export d'une semaine précise, le dossier est nommé d'après la
semaine (par exemple `S13_23_03_2026 - 27_03_2026`), ce qui facilite le
repérage côté Charlemagne.

L'export Aplim / Charlemagne est **récent** et proposé en **bêta** :
vérifiez le résultat après import dans Charlemagne et signalez tout écart à
Omniscol.

#### Procédure — Exporter vers Charlemagne / École Directe

1. Ouvrez **Import/Export** et repérez la section
   **Aplim/Charlemagne**.
2. Cliquez sur
   **Exporter au format UDT (Charlemagne)**.
3. Choisissez la source : un emploi du temps type, ou l'emploi du temps
   courant puis la semaine voulue.
4. Récupérez le fichier `.zip` téléchargé et collez le dossier `.DBF` qu'il
   contient dans Charlemagne, qui alimentera ensuite École Directe.

#### Voir aussi

- [Import et export](#page-admin.import-export)
- [Depuis aSc Timetables](#page-migration.from-asc)
- [Import massif des cours via tableur](#page-timetables.mass-import)

<a id="page-admin.snapshots"></a>

### 8.16  Points de sauvegarde

*Source: `help/fr/admin/snapshots.md` · id: admin.snapshots · Audience: admin · Plan: premium · Feature: snapshots · Updated: 2026-05-15*

> **Premium**

> _Premium_

Un **point de sauvegarde** ou *snapshot* est un instantané du compte Omniscol. La
fonction est disponible seulement si l'équipe Omniscol a activé un
quota de points de sauvegarde pour le compte, selon le contrat de l'établissement.
Ce quota est défini avec Omniscol selon le besoin de l'école
(sauvegardes manuelles, automatisations, rétention attendue) et peut
être ajusté sur demande. Il n'est pas réglé directement par
l'administrateur depuis ce panneau.

#### Ouvrir les points de sauvegarde

Dans le module **Administration**, ouvrez **Import/Export**
puis cliquez sur **Points de sauvegarde**. Le panneau liste les
points de sauvegarde existants, le quota utilisé et, quand il est disponible, un
**digest** du contenu : volumes d'utilisateurs, années scolaires,
panneaux, évènements, emplois du temps et principaux compteurs métier.

#### Actions disponibles

Selon vos droits, vous pouvez :

- créer un point de sauvegarde avec **Créer** ;
- exporter un point de sauvegarde en JSON avec **Télécharger** ;
- supprimer un point de sauvegarde avec
  **Supprimer** ;
- verrouiller un point de sauvegarde pour éviter sa suppression ;
- définir ou modifier une date d'expiration ;
- inspecter le digest pour identifier rapidement ce que contient le
  point de sauvegarde ;
- restaurer un point de sauvegarde (tout ou partie) avec **Restaurer**.

Les points de sauvegarde sont conservés sur un stockage répliqué. Chaque
point de sauvegarde peut être exporté en JSON pour une analyse ou une
comparaison menées avec vos propres outils.

#### Restauration

La restauration demande une confirmation forte. Le panneau propose trois
modes, selon les familles de données sélectionnées :

- **Écraser les données** : les données sélectionnées sont remplacées
  par l'état du point de sauvegarde. C'est le mode de retour arrière ;
- **Restaurer uniquement les données supprimées** : Omniscol réinjecte
  seulement les éléments absents quand le mode est supporté, par
  exemple après une suppression involontaire d'utilisateurs ;
- **Restaurer sans écraser** : Omniscol restaure sous forme de copie
  quand c'est supporté, afin de comparer ou de réintégrer manuellement
  sans remplacer l'état courant, par exemple lorsqu'un emploi du temps
  a divergé et qu'on ne veut pas écraser ce qui a été fait depuis le moment
  où le point de sauvegarde a été créé. Des doublons peuvent donc apparaître.

La restauration peut porter sur tout le compte ou sur des sous-ensembles
comme les emplois du temps, évènements, panneaux, absences, utilisateurs,
matières, années scolaires ou configuration.

#### Automatisations

Le bouton **Automatisation** permet de configurer
des créations automatiques de points de sauvegarde. Le rythme dépend de
la configuration retenue pour le compte : quotidien, hebdomadaire, en
pleine nuit — vous décidez de la politique adaptée à votre
établissement.

Les dates d'expiration et le verrouillage pilotent la rétention :

- un point de sauvegarde expiré peut être supprimé automatiquement, sauf s'il est
  verrouillé ;
- un point de sauvegarde verrouillé est protégé contre la suppression manuelle et
  contre le nettoyage automatique ;
- lorsqu'une sauvegarde automatique doit entrer dans un quota déjà
  atteint, Omniscol supprime le plus ancien point de sauvegarde automatique
  non verrouillé pour faire de la place. Si aucun point de sauvegarde ne
  peut être supprimé (tous verrouillés), la nouvelle sauvegarde échoue.

Ce fonctionnement donne un historique de sauvegardes proche d'un
Time Machine en environnement Apple : utile pour revenir en arrière,
récupérer des données effacées par erreur ou restaurer une copie pour
comparaison. Il reste borné par le quota défini avec Omniscol, ajustable sur demande.

#### À cadrer avant activation

Avant d'activer ou d'étendre l'option, vérifiez avec Omniscol :

- le quota de points de sauvegarde et la marge souhaitée pour les sauvegardes
  manuelles ;
- le rythme des sauvegardes automatiques que vous souhaiterez configurer ;
- la durée de conservation attendue ;
- les familles de données concernées par les restaurations partielles ;
- le format d'export attendu pour les contrôles externes.

Chaque point de sauvegarde peut être exporté en JSON.

#### Procédure — Créer un point de sauvegarde avant une opération risquée

1. Ouvrez **Import/Export**.
2. Cliquez sur **Points de sauvegarde**.
3. Cliquez sur **Créer**.
4. Vérifiez que le nouveau point de sauvegarde apparaît dans la liste.
5. Lancez ensuite l'import, la réorganisation ou le changement de
   configuration prévu. En cas de problème grave, vous pourrez revenir en
   arrière dans le temps.

#### Voir aussi

- [Import et export](#page-admin.import-export)
- [Journaux d'activité (logs)](#page-admin.logs)

<a id="page-admin.logs"></a>

### 8.17  Journaux d'activité (logs)

*Source: `help/fr/admin/logs.md` · id: admin.logs · Audience: admin · Feature: logs · Updated: 2026-05-15*

> **Premium**

Dans le module **Administration**, l'écran **Journal d'activité**
affiche les entrées de journalisation disponibles pour le compte lorsque
l'option de logs est active. La profondeur de
conservation est définie avec l'équipe Omniscol selon le contrat de
l'établissement et peut être ajustée sur demande.
Le panneau sert à consulter et exporter les traces présentes dans le flux de logs.

#### Ce qui est journalisé

Le journal retrace les actions qui modifient le compte, pas chaque consultation.

- **Chaque modification** des données (fiche utilisateur, emploi du temps,
  paramètres…) — création, mise à jour ou suppression — génère une entrée
  avec son auteur, l'action et l'horodatage.
- **Les connexions** — chaque tentative de connexion enregistre l'identifiant
  utilisé.
- **Les actions sur les mots de passe** — définition, changement, suppression
  ou réinitialisation sont tracées : l'action et son auteur, jamais le mot de
  passe lui-même.
- **Les exports** — l'export JSON du compte est journalisé.

Les simples consultations (ouvrir un écran, lister des données) ne sont pas
enregistrées, en dehors de quelques opérations sensibles. Le journal répond
donc à « qui a fait quoi et quand », pas à « qui a consulté quoi ».

#### Ce que l'écran affiche

Chaque ligne peut contenir :

- un horodatage ;
- l'action effectuée ;
- la route résolue quand elle est connue ;
- les paramètres et extras enregistrés ;
- la méthode HTTP ;
- l'URL web associée ;
- l'utilisateur concerné.

Le contenu exact dépend de ce qui a été journalisé par Omniscol :
l'écran reflète les traces présentes dans le flux de logs du compte.

#### Recherche et export

Quand la liste contient assez d'entrées, une recherche locale permet de
filtrer le tableau. Le bouton **Horodatage** ouvre une
vue exportable des lignes.

#### Portée des journaux

- Chaque ligne donne l'action effectuée, la route, les paramètres et
  l'utilisateur concerné ; le détail couvre ce qu'Omniscol a journalisé.
- La rétention dépend de l'option activée sur le compte et du nettoyage
  périodique des logs.
- Les journaux se consultent et s'exportent depuis cet écran ; Omniscol
  ne les transmet pas automatiquement à un outil de supervision externe.

Pour reconstituer finement l'état d'un compte à une date donnée,
combinez les journaux avec les snapshots.

#### À vérifier dans un contrat

La profondeur de conservation, les obligations d'audit et les exports
attendus relèvent du contrat et des documents sécurité fournis sur
demande. Cette page ne remplace pas ces documents.

#### Voir aussi

- [Points de sauvegarde](#page-admin.snapshots)
- [Utilisateurs et rôles](#page-admin.users-and-roles)

---

## 9. Intégrations

<a id="page-integrations.overview"></a>

### 9.1  Vue d'ensemble des intégrations

*Source: `help/fr/integrations/overview.md` · id: integrations.overview · Audience: admin · Updated: 2026-06-13*

Omniscol s'intègre à votre système d'information par plusieurs voies,
selon le besoin.

Pour des exemples d'outils tiers et de partenaires régulièrement
raccordés à Omniscol, voir aussi
[Partenaires](#page-integrations.partners).

#### Vue synthétique

| Mécanisme | Pour faire quoi | Sens du flux |
| --- | --- | --- |
| [iCal](#page-integrations.ical) | Permettre aux professeurs / élèves de voir leur EDT dans leur agenda personnel | Omniscol → agenda |
| [Liens de partage](#page-glossary.share-link) | Diffuser un EDT en lecture seule ou ouvrir une saisie ciblée selon le contexte | Omniscol → web public |
| [Iframe](#page-portal.share-links) | Intégrer un EDT dans une page sur le **même domaine** qu'Omniscol ; bloqué sur un site externe (sécurité) | Omniscol → même domaine |
| [API Omniscol](#page-integrations.api-tokens) | Intégrations système à système selon droits et options du compte | Selon configuration |
| [MCP](#page-integrations.mcp) | Connecter un agent IA compatible MCP à Omniscol | Agent IA ↔ Omniscol |
| [OAuth2 / OIDC (serveur)](#page-integrations.oauth-server) | Connecter un service tiers identifié par client enregistré + consentement + jeton scopé (base de MCP et OneRoster) | Service ↔ Omniscol |
| [OIDC / SSO (connexion)](#page-integrations.oauth2) | Authentification des utilisateurs via fournisseur d'identité (Google Workspace, Microsoft Entra ID, OIDC générique) | Selon configuration |
| [Synchronisation avec des systèmes externes](#page-integrations.extsync) | Framework de connecteurs : Aurion, Auriga, Edusign, nouveaux connecteurs sur projet | Bidirectionnel |
| [Panneaux d'affichage](#page-panels.lobby-panel) | Afficher l'EDT sur des écrans publics | Omniscol → écrans |

#### Choisir l'intégration adaptée

- **Diffuser un EDT à un professeur / élève** — abonnement
  [iCal](#page-integrations.ical).
- **Donner accès en lecture à un parent / un audit** —
  [lien de partage](#page-glossary.share-link).
- **Synchroniser les apprenants depuis votre ERP / SI** — voir
  [Synchronisation avec des systèmes externes](#page-integrations.extsync)
  qui liste les connecteurs disponibles. Si votre ERP n'y figure
  pas, l'ajout d'un connecteur se cadre avec le support Omniscol.
- **Authentification unique** — [OIDC / SSO](#page-integrations.oauth2).
- **Assistant IA externe** sur le compte, si l'option est activée —
  [MCP](#page-integrations.mcp) pour les clients compatibles.
- **Affichage public dans les locaux** —
  [panneaux d'affichage](#page-panels.lobby-panel).

#### Bonnes pratiques de sécurité

- Utiliser **OIDC / SSO**, quand l'option est activée, pour authentifier
  des utilisateurs réels.
- Réserver les **jetons API** aux intégrations système à système, avec
  scope minimal et rotation périodique.
- Mettre des **dates d'expiration** courtes sur les liens de
  partage.
- Ne pas mettre de jeton API dans un dépôt Git public.

#### Voir aussi

- [iCal](#page-integrations.ical)
- [API Omniscol](#page-integrations.api-tokens)
- [MCP](#page-integrations.mcp)
- [OAuth2 / OIDC (serveur)](#page-integrations.oauth-server)
- [OIDC / SSO (connexion)](#page-integrations.oauth2)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Partenaires](#page-integrations.partners)

<a id="page-integrations.architecture"></a>

### 9.2  Comment Omniscol fonctionne — une seule API, une source de vérité

*Source: `help/fr/integrations/architecture.md` · id: integrations.architecture · Audience: admin · Plan: standard · Updated: 2026-07-12*

Quelques points sur la manière dont Omniscol est bâti méritent d'être
connus avant de l'intégrer — ils expliquent pourquoi l'API est aussi
complète, comment l'interface s'adapte à chaque utilisateur, et un point
de confidentialité à garder en tête.

#### Une seule application sur une seule API

Omniscol s'exécute comme une **application web unique** dans votre
navigateur. Chaque écran, bouton et tableau est dessiné en appelant l'**API
publique** d'Omniscol — la même API que vous pouvez appeler vous-même,
documentée sur la référence d'API interactive d'Omniscol, la page
**Développeurs**
([omniscol.com/fr/developers](https://www.omniscol.com/fr/developers)).
Il n'y a pas d'API cachée, « réelle »,
derrière celle que vous intégrez : ce que l'interface utilise *est* ce que
vous obtenez. Quelques opérations vont dans l'autre sens — offertes pour
l'intégration mais **non utilisées par l'application elle-même** : par exemple,
les points d'accès de **recherche avancée et de résolution d'entité**
(destinés à un agent IA via [MCP](#page-integrations.mcp)), ou ceux qui
permettent à un système externe d'**alimenter Omniscol** (un ETL gardant
une base externe synchrone).

#### operationId — une clé, une source de vérité

Chaque opération est un **couple méthode + URL** (par exemple `GET
/api/schedules/lessons/{datesrange}`), et chacune porte un identifiant
stable : son **operationId** (ici `os_schedules_dates_get`). Le nom est
structuré : **`os`** (Omniscol), puis le **module** (`schedules`), puis ce
sur quoi porte l'**opération** (`dates` — parfois plusieurs segments
reliés par des tirets), et toujours la **méthode HTTP** en dernier
(`get`, `post`, `put`, `delete`). C'est cette clé unique qu'Omniscol
utilise partout — pour nommer l'opération sur la page **Développeurs**,
pour construire l'outil [MCP](#page-integrations.mcp) correspondant,
et pour la désigner depuis une surcharge ou depuis cette aide. Définie une
seule fois, elle garde toutes les surfaces synchrones : la documentation,
les outils et l'interface ne peuvent pas diverger, puisqu'ils lisent tous la
même définition.

#### L'interface suit vos droits

Un **élément graphique doté d'une action** — un bouton, un onglet, une
entrée de menu — n'apparaît que lorsque l'opération qui le sous-tend vous
est **accessible**. Cela dépend de votre rôle et de vos
[rôles personnalisés](#page-admin.customroles) (voir [Utilisateurs et rôles](#page-admin.users-and-roles)), de votre
offre et de vos options (voir [Plans et options Omniscol](#page-overview.plans-and-options)). Modifiez
l'un de ces éléments et l'interface se recompose : des éléments, voire des
modules entiers, apparaissent ou disparaissent en conséquence.

Le même principe joue au-delà de vos droits personnels. Le service
informatique peut désactiver certaines opérations par une **surcharge
d'API**, et les éléments correspondants disparaissent de l'interface (voir
[Personnalisation d'API](#page-integrations.api-customization)). Il en va de même lorsqu'une donnée
est tenue à jour par une **synchronisation externe** : sa création et sa
modification locales peuvent être désactivées, et leurs commandes cèdent
alors la place à la synchronisation (voir [Synchronisation avec des systèmes externes](#page-integrations.extsync)).

C'est pourquoi Omniscol n'a **pas de portail séparé** pour les élèves ou
les enseignants. Il y a une seule application ; chacun voit l'interface
synchronisée sur ses propres droits — un élève, un enseignant, un
administrateur et le titulaire d'un rôle personnalisé obtiennent
exactement les opérations auxquelles ils ont droit, et rien d'autre.

#### L'interface est un confort, pas le verrou

Comme l'interface est pilotée par vos droits, on serait tenté de voir un
bouton masqué comme une frontière de sécurité. Ce n'en est pas une.
**Chaque appel est revérifié sur le serveur** au regard de votre identité
et de vos droits ; une opération à laquelle vous n'avez pas droit y est
refusée, quoi que l'interface affiche. L'interface s'adapte pour la
clarté et le confort ; la frontière réelle est appliquée côté serveur, à
chaque requête.

#### Tokens et liens de partage, même modèle

Un [jeton d'API](#page-integrations.api-tokens) ou un lien de partage
est **restreint à un ensemble d'opérations** — celles que vous autorisez
à sa création. Le serveur applique cette restriction à chaque appel,
exactement comme pour un utilisateur connecté. Un lien de partage, un
jeton et une personne dans l'interface sont trois façons d'atteindre la
même API contrôlée par les droits — jamais une porte dérobée qui la
contourne.

#### Traverser une coupure de connexion

Parce que chaque écran lit l'API, Omniscol peut aussi conserver dans votre
navigateur les réponses déjà reçues, pour qu'une brève perte de réseau
n'interrompe pas votre lecture. Cette **copie locale** vit dans sa base de
données (IndexedDB), à côté du cache de pages ordinaire du navigateur.
C'est un **cache de lecture** : si la connexion tombe, vous continuez de
voir ce que vous aviez déjà ouvert. Il ne met **pas** vos modifications en
file d'attente et ne les rejoue pas — une modification passe toujours par
le serveur.

Cette copie locale repose sur votre **accord**. La première fois sur un
navigateur, Omniscol vous demande si vous lui faites confiance ; la copie
commence une fois que vous avez accepté. L'entrée
Cache hors ligne du menu
utilisateur l'active ou l'efface ensuite à tout moment — une coche indique
qu'elle est active.

Deux choses à savoir :

- **Les données personnelles en sont exclues.** Seules les lectures
  réussies sont conservées ; les réponses que le serveur marque comme non
  stockables (données de session et d'authentification) ne sont jamais
  mises en cache, et de ce qui *est* mis en cache le logiciel retire les
  coordonnées des personnes — e-mail, téléphone, date de naissance, login,
  numéro d'identifiant, état du mot de passe — et supprime entièrement les
  comptes administrateurs. La copie locale contient les données de travail
  ordinaires, pas l'annuaire nominatif.
- **Sur un poste partagé, préférez une fenêtre de navigation privée.** La
  déconnexion n'efface pas cette copie locale (ni le cache normal du
  navigateur) ; une fenêtre privée les supprime toutes deux à sa
  fermeture. C'est le soin que mérite toute application web sur une machine
  que vous ne maîtrisez pas.

#### Voir aussi

- [Vue d'ensemble des intégrations](#page-integrations.overview)
- [Personnalisation d'API](#page-integrations.api-customization)
- [API Omniscol](#page-integrations.api-tokens)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)

<a id="page-integrations.partners"></a>

### 9.3  Partenaires et outils fréquemment raccordés

*Source: `help/fr/integrations/partners.md` · id: integrations.partners · Audience: admin · Updated: 2026-08-08*

Omniscol a vocation à **s'interfacer** avec le système d'information de
votre établissement, pas à remplacer tous les autres outils. Selon les
cas, l'interfaçage passe par l'[API Omniscol](#page-integrations.api-tokens),
des imports / exports, [iCal](#page-integrations.ical), [OIDC / SSO](#page-integrations.oauth2)
ou la [synchronisation avec des systèmes externes](#page-integrations.extsync).

En pratique, Omniscol est souvent raccordé à des ENT, des ERP
pédagogiques, des outils de scolarité, des LMS, des solutions
d'émargement ou des applications plus spécialisées. L'[API REST documentée](#page-integrations.api-tokens)
permet aussi des intégrations **sur mesure**, y compris avec des outils
maison quand l'établissement en a besoin.

#### Connecteurs internes déjà pris en charge

Aujourd'hui, les connecteurs bidirectionnels explicitement documentés
côté Omniscol sont les suivants :

- [Aurion](#page-integrations.aurion) — ERP / outil de scolarité très
  présent dans l'enseignement supérieur.
- [Auriga](#page-integrations.auriga) — outil de scolarité et de gestion
  pédagogique, lui aussi utilisé dans le supérieur.
- [Edusign](#page-integrations.edusign) — plateforme d'émargement et de
  signature électronique. Omniscol y envoie ses séances pour que les
  feuilles de présence soient prêtes sans ressaisie, et récupère les
  présences constatées. Omniscol reste maître de l'emploi du temps,
  Edusign de la présence observée.

Pour ces cas, Omniscol dispose déjà d'une base d'intégration
documentée. Omniscol cherche les entités (professeurs, matières, classes,
salles...) dans le logiciel distant et les rapatrie avec leur identifiant
exogène. Cela évite la double-saisie. À l'autre bout de la chaîne, lorsque
vous planifiez, les séances de cours publiées sont injectées dynamiquement,
en temps réel, dans le logiciel distant, avec ses références aux objets
de sa base de données. Cela évite à la fois la double saisie et les duplications
de données à l'exportation. En bref, une expérience fluide, intégrée.

Si votre établissement utilise un autre ERP, un autre SIS
ou un outil maison, l'interfaçage peut se faire via l'API ou par un
connecteur cadré sur projet (ETL). Si vous avez un ERP standard du
marché, contactez l'équipe Omniscol pour savoir si celui-ci peut être
pris en charge.

#### Partenaires et outils raccordés

Omniscol possède un certain nombre de partenaires qui ont implémenté
un connecteur pouvant rechercher les séances de cours planifiées dans
Omniscol, et les relier à ses propres entités pour éviter les divergences.
Ces logiciels proposent aussi des outils d'emplois du temps internes,
mais beaucoup moins puissants : Omniscol se positionne en partenaire
complémentaire pour offrir une expérience complète de planification
où les données remontent pour nourrir l'emploi du temps du logiciel SIS
(vie scolaire) sans double-saisie.

Certains partenaires n'ont pas encore de connexion de données, parfois
parce que cela ne fait pas sens, mais nous partageons des valeurs communes
fortes et une vraie collaboration est en place.

##### ENT, vie scolaire et portails de services

- [CGI Learning Hub](https://www.cgi.com/france/fr-fr/solution/cgi-learning-hub/portail-ent) —
  environnement numérique de travail et portail de services éducatifs,
  avec ressources, communication, collaboration et suivi des parcours.
  CGI propose un logiciel de vie scolaire 100% web, open source, concurrent
  de Pronote.

##### Scolarité, admissions et gestion d'établissement

- [École Futée](https://ecole-futee.com/logiciel-de-gestion-scolaire/) —
  gestion scolaire tout-en-un avec scolarité, communication,
  facturation et suivi des élèves ; souvent rencontré dans le privé
  hors contrat, en secondaire comme dans certains contextes du supérieur.
  École Futée et Omniscol sont partenaires ; le raccordement des données
  se cadre sur projet avec l'équipe Omniscol.
- [MyScol](https://myscol.com/logiciel-de-gestion-enseignement-superieur/) —
  solution de gestion scolaire couvrant admissions, inscriptions,
  vie scolaire, communication et finance, utilisée de l'école au
  supérieur.
- [Season](https://season-ed.com/) —
  expert des processus et du SI de l'enseignement supérieur,
  notamment autour du CRM, des admissions, de la scolarité, des
  contractualisations et des projets de SIS, construit dans l'environnement
  SalesForce.

##### Gestion pédagogique, coordination et qualité

- [EdSquare / Educentric](https://www.educentric.fr/) —
  plateforme orientée gestion pédagogique et administrative, utilisée
  pour centraliser le suivi des étudiants, intervenants, tuteurs,
  documents, plannings et exigences Qualiopi.
  Une collaboration est en place avec EdSquare ; le raccordement des
  données s'étudie au cas par cas avec l'équipe Omniscol.
- [Lab4Ed / InGenius](https://www.lab4ed.com/ingenius) —
  outil et accompagnement pour les équipes pédagogiques du supérieur :
  conception des formations, orchestration, déploiement, référentiels,
  gouvernance multi-campus et préparation à la planification.

##### ERP

- [Neil](https://neil.app/) —
  ERP conçu spécifiquement pour l'**enseignement supérieur privé**,
  réunissant sur une même plateforme admissions, pédagogie, comptabilité
  et ressources humaines, aussi bien pour l'alternance que pour la
  formation initiale et continue.

##### LMS, digital learning et plateformes pédagogiques

- [Edunao](https://www.edunao.com/) —
  intégrateur et éditeur de solutions LMS / digital learning,
  notamment autour de Moodle, de l'hébergement, de l'intégration au SI
  et de l'accompagnement des plateformes de formation.

#### Ce que cela veut dire concrètement

Si vous avez déjà un outil métier pour :

- la scolarité ;
- les admissions ;
- la vie scolaire ;
- l'ENT ;
- le LMS ;
- l'assiduité ou l'émargement ;
- la signature de documents ;

Omniscol n'a pas vocation à le remplacer. En revanche, Omniscol peut
venir s'y **brancher** pour apporter ce qui relève de la
**planification sous contraintes**, de la génération d'emplois du temps,
de la publication, des diagnostics et de la diffusion multi-supports.

#### Quel mode d'intégration choisir

- **Outil déjà supporté par connecteur** — voir
  [Synchronisation avec des systèmes externes](#page-integrations.extsync),
  [Aurion](#page-integrations.aurion) et [Auriga](#page-integrations.auriga).
- **Outil tiers avec API ou SI bien structuré** — l'[API Omniscol](#page-integrations.api-tokens)
  et les échanges cadrés suffisent souvent.
- **SIS, ENT ou LMS conforme à un standard d'annuaire** — l'échange
  d'annuaire au standard [OneRoster](#page-integrations.oneroster) (1.2 et groupes
  avancés), en producteur comme en consommateur.
- **Portail utilisateur ou ENT** — [OIDC / SSO](#page-integrations.oauth2),
  iCal, liens de partage, API ou panneau d'affichage selon le cas.
- **Besoin spécifique établissement** — intégration sur mesure ou
  connecteur supplémentaire cadré sur projet.

#### Voir aussi

- [Vue d'ensemble des intégrations](#page-integrations.overview)
- [API Omniscol](#page-integrations.api-tokens)
- [OIDC / SSO](#page-integrations.oauth2)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [OneRoster](#page-integrations.oneroster)
- [Connecteur Aurion](#page-integrations.aurion)
- [Connecteur Auriga](#page-integrations.auriga)

<a id="page-integrations.ical"></a>

### 9.4  iCal — abonnement et lien dynamique

*Source: `help/fr/integrations/ical.md` · id: integrations.ical · Plan: standard · Updated: 2026-05-15*

Le format **iCal** (`.ics`) est le standard du partage de calendriers
entre applications. Omniscol expose chaque EDT (individuel, classe,
salle, professeur) sous forme de **lien d'abonnement iCal** que
l'utilisateur peut coller dans Google Calendar, Apple Calendar,
Outlook, Thunderbird ou toute autre application qui consomme du
calendrier standardisé.

#### Lien d'abonnement vs export ponctuel

Deux usages très différents :

- **Lien d'abonnement** (recommandé) — URL HTTPS pointant vers
  Omniscol. L'application cliente la consulte régulièrement (toutes
  les heures, tous les jours selon les paramètres du client) et met
  à jour le calendrier de l'utilisateur en continu. Quand une séance
  bouge dans Omniscol, l'utilisateur le voit dans son agenda sans
  rien faire.
- **Export ponctuel** — téléchargement d'un fichier `.ics` à un
  instant T. Pratique pour archiver, partager par mail, ou
  injecter dans un système qui ne sait pas s'abonner. Mais figé : si
  l'EDT change, le fichier n'est pas mis à jour.

Préférez le lien d'abonnement quand le client final est une
application moderne qui sait rafraîchir un calendrier distant
(Google Calendar, Apple Calendar, Outlook).

#### Récupérer son lien d'abonnement

Depuis les écrans où le partage est disponible, le bouton Partage
ouvre une modale qui peut proposer :

- une ou plusieurs URLs d'abonnement iCal signées,
- un bouton « Copier l'URL »,
- un QR code à flasher,
- un téléchargement de fichier `.ics`.

L'URL contient un jeton secret : ne la partagez pas — quiconque
l'obtient peut voir l'EDT inclus dans le périmètre du lien jusqu'à
expiration ou invalidation.

#### Où générer un iCal

Les principaux points d'entrée sont :

- **En haut du module EDT** — le bouton Partage peut
  générer un iCal de tous les EDT affichés, un iCal combiné qui les
  mélange dans un seul abonnement, puis les iCal individuels. Ces liens
  sont bornés par l'année scolaire affichée.
- **Sur chaque EDT affiché** — la barre de titre de l'EDT donne accès,
  au survol, à un partage atomique pour cet EDT. Le lien couvre l'année
  scolaire concernée.
- **Sur la fiche d'un professeur** — dans **Administration**, le bouton
  Partage de la fiche génère
  l'iCal personnel du professeur, conçu pour rester valable dans la
  durée tant que le lien, le compte porteur et l'expiration choisie le
  permettent.
- **En prévisualisation d'un EDT calendrier** — dans **Gestion des EDT**,
  le bouton Partage de la prévisualisation
  génère l'iCal de ce qui est affiché, même si cet EDT n'est pas encore
  activé ou publié.

À chaque génération, l'utilisateur peut fixer une date d'invalidité.
Cette date est encodée dans le jeton de l'URL : elle ne se modifie pas
après coup. Pour changer l'expiration, il faut générer un nouveau lien.

Comme les autres liens de partage, l'iCal est aussi lié au compte qui
l'a généré : changement de mot de passe, désactivation ou suppression
du compte porteur invalident les liens associés.

#### Lien public pour une classe ou une salle

L'administrateur peut générer un lien d'abonnement pour une **classe** ou une
**salle** (par exemple pour partager avec les parents ou avec un
service externe). Ces liens sont signés et portent une date
d'expiration.

Voir aussi [Partager un EDT par lien public](#page-schedules.share-link) qui
décrit l'ensemble des options de partage (iCal, page web responsive,
JSON via API).

#### Configuration côté client

##### Google Calendar

1. Dans Google Calendar, à gauche, à côté de **Autres agendas**,
   cliquer le **+** > **À partir de l'URL**.
2. Coller l'URL d'abonnement Omniscol.
3. Le calendrier apparaît avec un libellé indicatif et une couleur
   par défaut — modifiable.

Google rafraîchit l'abonnement environ toutes les 8-24 heures.
Modifications urgentes : prévoir un délai.

##### Apple Calendar (macOS, iOS)

1. **Fichier > Nouvel abonnement à un calendrier**.
2. Coller l'URL Omniscol.

Le lien iCal Omniscol est paramétré pour un rafraichissement automatique
toutes les demi-heures.

##### Outlook (Microsoft 365)

1. **Ajouter un calendrier > À partir d'Internet**.
2. Coller l'URL Omniscol.

Outlook met à jour à fréquence variable selon les versions ; pour le
desktop ancien, prévoir des délais.

#### Limitations

- Les modifications côté client (déplacer un évènement dans Google
  Calendar) ne sont pas répercutées dans Omniscol — l'abonnement
  est en lecture seule.
- L'utilisateur doit avoir un compte Omniscol actif pour générer son
  URL personnelle.
- L'expiration du lien est inscrite dans l'URL générée : elle ne se
  prolonge pas après coup ; générez un nouveau lien si besoin.
- Les évènements hors EDT sont inclus seulement si le partage ou le
  filtre iCal les inclut.

#### Procédure — S'abonner à son EDT depuis Google Calendar

1. **L'abonnement iCal** synchronise votre EDT Omniscol avec votre
   agenda personnel (Google Calendar, Apple Calendar, Outlook). Mise
   à jour automatique en continu : pas de copier-coller à
   refaire à chaque changement d'EDT.
2. **Depuis votre écran Omniscol** (élève, professeur ou vue
   partagée), cliquez sur Partage quand le bouton est disponible.
   Une modale s'ouvre avec les URLs générées pour votre périmètre.
3. **Copiez l'URL d'abonnement** (bouton Copier). Ne la partagez pas :
   quiconque l'a peut voir le périmètre inclus dans le lien jusqu'à
   expiration ou invalidation.
4. **Dans Google Calendar** : panneau gauche, **Autres agendas → +
   → À partir de l'URL**, coller, valider. L'agenda apparaît avec
   libellé et couleur (modifiables).

   **Dans Apple Calendar** : `Fichier → Nouvel abonnement à un
   calendrier`, coller.

   **Dans Outlook M365** : `Ajouter un calendrier → À partir
   d'Internet`, coller.
5. **Important** : abonnement = **lecture seule**. Modifications dans
   votre agenda personnel non répercutées dans Omniscol. Les modifications
   côté Omniscol arrivent dans votre agenda à la prochaine
   synchronisation côté client.

#### Voir aussi

- [iCal (export agenda)](#page-glossary.ical)
- [Partager un EDT par lien public](#page-schedules.share-link)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.api-tokens"></a>

### 9.5  API Omniscol — jetons d'authentification

*Source: `help/fr/integrations/api-tokens.md` · id: integrations.api-tokens · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

L'**API Omniscol** est une API REST documentée en OpenAPI. Elle sert
aux intégrations système à système : tableau de bord externe, affichage sur
mesure, synchronisation ERP/SI, ou agent IA via MCP.

Les jetons API administrables depuis l'interface sont disponibles sur
les comptes qui proposent cette intégration. Un jeton dérivé donne accès uniquement aux
points d'accès API sélectionnés lors de sa génération ; ne présumez pas
qu'il couvre toute l'API.

#### Clé et jeton : deux objets distincts

Omniscol distingue deux objets qu'il ne faut pas confondre.

Une **clé** est un objet persistant, conservé côté Omniscol. Elle réunit :

- un **identifiant** court, généré aléatoirement, public : c'est lui que la
  liste affiche, et il voyage dans chaque jeton pour désigner la clé à
  vérifier ;
- un **libellé** descriptif, modifiable à tout moment ;
- une **date d'expiration** facultative, modifiable à tout moment ;
- un **secret aléatoire** long, tiré côté serveur, qui sert de clé de
  signature cryptographique.

L'identifiant, le libellé et la date d'expiration sont des informations
d'administration : l'identifiant n'est qu'une référence publique, pas un
élément secret. Le **secret**, lui, est le seul matériel de signature :
généré aléatoirement à la création de la clé, il reste côté serveur, n'est
pas modifiable, et **n'est jamais affiché ni renvoyé** — ni à la création,
ni dans la liste des clés. Et même s'il fuyait, il ne suffirait pas à
forger un jeton : la signature le combine à un **sel propre au compte** et
à un **secret serveur** qui, eux non plus, ne quittent jamais Omniscol.

Un **jeton** est un **JWT** (JSON Web Token) autonome, signé avec le secret
de la clé. C'est lui que vous transmettez au système externe. Son contenu
signé porte le compte concerné, la liste des points d'accès autorisés, la
clé dont il dérive et sa propre date d'expiration.

Autrement dit : **une clé signe, un jeton est signé.** Une même clé peut
signer plusieurs jetons — tous vérifiables avec le même secret, donc tous
révoqués ensemble si la clé disparaît.

Omniscol ne stocke pas le jeton : il le génère, l'affiche une fois, puis le
revérifie à chaque appel en reconstituant sa signature à partir du secret
de la clé (HMAC SHA-256). Aucune autorisation portée par le jeton ne peut donc être altérée
sans ce secret.

#### Créer un jeton

L'écran Partage est disponible dans Administration →
Import / Export sur les comptes Premium. La création se fait en deux temps :
on crée d'abord une **clé**, puis on **génère un jeton** à partir de cette
clé.

1. **Créer une clé** — renseignez un libellé parlant et, si l'accès est
   temporaire, une date d'expiration. Son libellé et son expiration restent
   modifiables après coup ; son secret de signature, non.
2. **Générer un jeton** — sélectionnez la clé, cochez les points d'accès
   autorisés, choisissez éventuellement une date d'expiration propre au
   jeton, puis générez le JWT.

À la génération, Omniscol affiche le jeton **une seule fois**. Copiez-le
immédiatement dans un gestionnaire de secrets : il ne sera plus ré-affiché.
L'expiration du jeton est inscrite dans son contenu signé : elle ne se
modifie pas a posteriori. Pour changer cette date, générez un nouveau jeton.

Il y a donc deux niveaux d'expiration, indépendants l'un de l'autre :

- **expiration de la clé** — modifiable depuis la liste des clés ;
  lorsqu'elle est atteinte, **tous** les jetons dérivés de cette clé sont
  refusés (l'appel échoue avec un 401) ;
- **expiration du jeton** — fixée à la génération, inscrite dans le JWT, et
  non modifiable ensuite.

#### Points d'accès autorisés

Un jeton ne donne accès **qu'aux points d'accès cochés à sa génération** :
ne présumez jamais qu'il couvre toute l'API. La liste autorisée est
transportée dans le jeton et vérifiée à chaque appel ; un appel vers un
point d'accès non autorisé est refusé (401).

Au-delà des points d'accès individuels, la liste de sélection propose des
**raccourcis par module** :

- l'entrée d'un module seul autorise **tous** ses points d'accès ;
- les variantes par opération — **lecture**, **modification**, **création**,
  **suppression** — restreignent le module à un seul type d'appel.

Cocher « **EDT** [lecture] » accorde ainsi toute la lecture
des emplois du temps sans ouvrir la moindre écriture, sans cocher chaque
point d'accès un par un. Restez au plus juste : n'accordez que les modules
et les opérations strictement nécessaires à l'intégration.

#### Utiliser un jeton

Deux manières usuelles d'envoyer le jeton à l'API :

- **En-tête HTTP** : `Authorization: Bearer <jeton>` (recommandé).
- **Query string** : `?auth=<jeton>` (pratique pour le debug, mais
  apparaît dans les logs HTTP — à éviter en production).

Exemple `curl`, à adapter avec un point d'accès réel issu de l'OpenAPI :

```bash
curl -H "Authorization: Bearer $TOKEN" \
  https://votre-ecole.omniscol.com/api/<module>/<point-acces>
```

#### Documentation OpenAPI

L'écran Import / Export affiche un lien **OpenAPI 3.1** qui ouvre la
spécification disponible pour le compte dans Swagger Editor. Vous y
trouverez :

- la liste des points d'accès API exposés,
- les schémas des données échangées,
- les méthodes et paramètres,
- les réponses attendues.

La spécification est aussi servie directement par votre compte, sans
authentification :

- `/api/guest/openapi.json` — spécification au format JSON ;
- `/api/guest/openapi.yaml` (ou `/api/guest/openapi?yaml=true`) —
  même contenu au format YAML ;
- `/api/guest/school_schema.json` — schéma JSON des données du compte.

#### L'aide complète pour votre assistant IA

Le portail publie aussi l'intégralité de l'aide d'Omniscol en un seul
fichier texte, prêt à servir de base de connaissances à un assistant IA
(projet Claude, GPT personnalisé…) :

- [omniscol.com/fr/llms-full.txt](https://www.omniscol.com/fr/llms-full.txt) —
  le guide complet en Markdown, disponible dans chaque langue de l'aide
  (`/en/llms-full.txt`, `/de/llms-full.txt`…) ;
- [omniscol.com/llms.txt](https://www.omniscol.com/llms.txt) — l'index au
  standard `llms.txt`, que les moteurs IA découvrent automatiquement.

#### Révoquer un accès

La révocation se fait au niveau de la **clé**, pas du jeton individuel.

L'écran liste les **clés** ayant servi à générer des jetons. **Supprimer une
clé** efface son secret de signature côté Omniscol : dès lors, aucune
signature dérivée de ce secret ne peut plus être vérifiée, et tout appel
présentant un jeton issu de cette clé échoue avec un **401**. C'est
l'absence du secret qui invalide les jetons, pas une liste de révocation.

Pour la DSI, deux conséquences :

- **Il n'y a pas de révocation jeton par jeton.** Omniscol ne conserve pas
  les JWT émis et ne peut pas en désactiver un isolément : un jeton déjà
  généré reste valable jusqu'à sa propre expiration, ou jusqu'à ce que sa
  clé soit supprimée ou expirée.
- **Modifier l'expiration d'une clé** agit immédiatement sur tous ses
  jetons : avancer cette date coupe l'accès de l'ensemble des jetons issus
  de la clé.

Bonne pratique : supprimez sans attendre toute clé dont vous soupçonnez la
fuite, puis recréez une clé de remplacement avec un libellé parlant.

##### Une clé par cible et par usage

Puisque la révocation est par clé, **dédiez une clé à chaque intégration**
(un logiciel externe = une clé). Le secret d'une clé ne signe que ses
propres jetons : supprimer cette clé n'invalide que les accès de
l'intégration concernée, sans toucher aux autres.

À l'inverse, une clé unique partagée entre plusieurs systèmes rend toute
révocation brutale : supprimer la clé compromise coupe d'un coup tous les
systèmes qui s'en servaient.

#### Pour quelles intégrations

L'API est typiquement utilisée pour :

- **systèmes de signage** custom (au-delà des panneaux d'affichage
  Omniscol natifs ; voir [Personnalisation des panneaux](#page-panels.customization)),
- **dashboards externes** consolidant Omniscol et d'autres sources,
- **connecteurs ou synchronisations** avec un ERP ou un SI métier,
- **agents IA compatibles MCP** consommant Omniscol via le serveur MCP ;
  voir [MCP — connecter un agent IA externe](#page-integrations.mcp).

Pour un accès délégué à un **service tiers identifié** (jeton scopé,
consentement de l'utilisateur, révocable en désactivant le client), préférez
le serveur OAuth2 d'Omniscol : voir [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server).

#### Procédure — Générer un jeton API

1. **Un jeton d'authentification** permet à un système externe
   (tableau de bord, signage, agent IA via MCP) d'interroger les points d'accès API
   que vous avez sélectionnés.
2. **Allez dans Administration → Import / Export**, puis ouvrez
   l'écran de partage avec Partage.
   Vous y voyez les clés existantes, leurs libellés et leurs dates
   d'expiration éventuelles.
3. **Créez une clé** si nécessaire. Renseignez un libellé parlant
   (`Tableau de bord finance`, `Signage hall principal`, `Agent IA Claude
   desktop`) et une expiration si l'intégration est temporaire. Vous
   pourrez modifier cette expiration de clé plus tard.
4. **Sélectionnez la clé**, puis cochez les points d'accès API que le jeton
   doit pouvoir appeler. Gardez la liste aussi courte que possible.
   Choisissez aussi l'expiration du jeton si l'accès doit être borné.
5. **Générez le jeton**, puis copiez immédiatement le JWT affiché. Il ne
   sera plus ré-affiché et son expiration ne pourra pas être modifiée.
   Utilisez-le ensuite en en-tête HTTP `Authorization: Bearer <jeton>`.
6. **Pour révoquer l'accès**, supprimez la clé correspondante. Les
   jetons dérivés de cette clé deviennent invalides.

#### Voir aussi

- [Vue d'ensemble des intégrations](#page-integrations.overview)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)
- [Requêtage avancé](#page-integrations.advanced-queries)
- [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server)
- [Personnalisation des panneaux](#page-panels.customization)

<a id="page-integrations.oauth-server"></a>

### 9.6  OAuth2 / OIDC — connecter un service à Omniscol

*Source: `help/fr/integrations/oauth-server.md` · id: integrations.oauth-server · Audience: admin · Plan: premium · Updated: 2026-06-29*

> **Premium**

> _Premium_

Cette page s'adresse à la **direction des systèmes d'information**. Elle
décrit Omniscol dans son rôle de **serveur d'autorisation OAuth2 / OpenID
Connect** : comment un service tiers s'enregistre comme **client**, comment
un utilisateur **consent** à lui donner accès, et comment le service reçoit
un **jeton** limité aux **scopes** accordés.

#### Ce que fait Omniscol comme serveur OAuth2

Un service extérieur — un agent IA, un connecteur, un tableau de bord —
devient un **client** déclaré dans votre compte ; un utilisateur de l'école
**approuve** son accès via un écran de consentement ; le service reçoit
alors un **jeton d'accès** à durée de vie courte, dont le périmètre est borné
aux **scopes** accordés et aux droits de l'utilisateur.

Ce mécanisme est distinct du **SSO utilisateur** décrit sur
[OIDC / SSO](#page-integrations.oauth2), où Omniscol est au contraire **client** de votre
fournisseur d'identité pour connecter vos utilisateurs. Ici, Omniscol est du
côté **serveur** : ce sont des services qui se connectent à lui.

Deux intégrations Omniscol consomment ce serveur :

- **MCP** — l'authentification standard d'un agent IA passe par ce serveur
  OAuth2 (voir [MCP — connecter un agent IA externe](#page-integrations.mcp)) ;
- **OneRoster** — le producteur OneRoster s'authentifie par un jeton OAuth2
  de machine à machine émis par ce même serveur (voir
  [OneRoster](#page-integrations.oneroster)).

Tout autre service conforme OAuth2 / OIDC peut s'y connecter de la même
manière.

#### Découverte et points d'accès du protocole

Omniscol publie ses **métadonnées de découverte** aux adresses standard
`.well-known`, servies à la racine du domaine de votre compte (par exemple
`https://votre-ecole.omniscol.com`). Un client conforme y trouve seul tous
les points d'accès, sans configuration manuelle :

- `/.well-known/oauth-authorization-server` — métadonnées du serveur
  d'autorisation (RFC 8414) ;
- `/.well-known/openid-configuration` — métadonnées OpenID Connect (contenu
  identique au précédent) ;
- `/.well-known/jwks.json` — clés publiques de vérification (JWKS), qui
  permettent de vérifier la signature des `id_token` ;
- `/.well-known/oauth-protected-resource` — métadonnées de ressource
  protégée (RFC 9728).

Ces métadonnées annoncent les points d'accès du protocole :

- `/oauth/authorize` — demande d'autorisation (écran de connexion puis de
  consentement) ;
- `/oauth/token` — échange du code contre un jeton, et rafraîchissement ;
- `/oauth/register` — **enregistrement dynamique de clients** (RFC 7591) ;
- `/oidc/userinfo` — informations sur l'utilisateur connecté (OIDC) ;
- `/oauth/revoke` — révocation d'un jeton (RFC 7009).

Ces points d'accès du protocole sont **publics** : ils ne sont pas réservés
aux comptes Premium et n'ont pas à être ouverts manuellement. Seul l'**écran
de gestion des clients** décrit plus bas relève du Premium.

#### Les flux d'autorisation

Omniscol prend en charge trois flux OAuth2 :

- **Code d'autorisation avec PKCE** — le flux par défaut pour un service
  agissant **au nom d'un utilisateur**. Le service redirige l'utilisateur
  vers `/oauth/authorize` ; après connexion et consentement, Omniscol renvoie
  un **code d'autorisation** (valable 5 minutes) que le service échange sur
  `/oauth/token`. La méthode PKCE retenue est **S256**, et le seul
  `response_type` accepté est `code`.
- **Rafraîchissement (`refresh_token`)** — pour prolonger un accès délégué
  sans repasser par le consentement.
- **Client credentials** — flux de **machine à machine**, sans utilisateur,
  utilisé notamment par les consommateurs **OneRoster**. Le client
  s'authentifie directement et reçoit un jeton d'accès.

À l'échange, le serveur émet un **jeton d'accès** (`Bearer`, valable
**1 heure**) et, pour les flux utilisateur, un **jeton de rafraîchissement**
(valable **30 jours**). Lorsque le scope `openid` est demandé, un
**`id_token`** OIDC signé est également émis ; sa signature se vérifie via
`/.well-known/jwks.json`. Le flux `client_credentials` n'émet qu'un jeton
d'accès, sans rafraîchissement ni `id_token`.

Le jeton d'accès se présente ensuite en en-tête HTTP
`Authorization: Bearer <jeton>`. À chaque appel, Omniscol vérifie sa
signature, contrôle que le client est toujours **actif**, que l'utilisateur
existe toujours et possède le rôle requis, et que les **scopes** du jeton
couvrent bien le point d'accès appelé — faute de quoi l'appel est refusé.

#### Les scopes et le consentement

Les scopes que vous gérez sur un client sont :

- **`read:basic`** — lecture des emplois du temps, tableaux de bord et
  consultations (modules Accueil, EDT,
  Tableau de bord, Gestion des EDT) ;
- **`read:user`** — lecture de la liste des utilisateurs ;
- **`write:data`** — écriture sur ces mêmes modules de consultation ;
- **`admin`** — accès d'administration (modules Administration,
  Gestion des absences, Gestion des EDT).

Le serveur connaît aussi les scopes OIDC (`openid`, `email`, `profile`) et
les scopes **OneRoster** en lecture seule (préfixe `imsglobal.org`). Ces
derniers sont **privilégiés** : un client ne peut **pas** se les
auto-attribuer par l'enregistrement dynamique ; ils doivent être provisionnés
par un administrateur sur la fiche du client.

Le scope effectivement accordé est l'**intersection** de ce que le client
demande et de ce qui lui est enregistré : un client n'obtient jamais plus que
ce qui figure sur sa fiche. Lors du flux utilisateur, l'**écran de
consentement** (`/oauth/consent`) affiche le **nom** et le **logo** du service
demandeur ainsi que la **liste lisible** des scopes demandés, avec les
boutons **Accepter** et **Refuser**. Approuver émet le code
d'autorisation et renvoie l'utilisateur vers le service ; refuser le renvoie
avec une erreur `access_denied`.

#### L'enregistrement dynamique de clients

Le point d'accès `/oauth/register` met en œuvre l'**enregistrement
dynamique** (Dynamic Client Registration, RFC 7591) : un service conforme peut
**se déclarer seul** comme client, sans intervention manuelle préalable. C'est
ce qui permet à un agent MCP de se configurer à partir de la seule URL du
serveur.

L'enregistrement dynamique **ne peut pas** s'attribuer de scope privilégié
(les scopes OneRoster) : ceux-ci sont silencieusement écartés, et si aucun
scope valide ne subsiste, `read:basic` est accordé par défaut. Les scopes
privilégiés restent réservés à un provisionnement par un administrateur.

#### L'écran de gestion des clients OAuth2

Sur les comptes **Premium**, vous administrez les clients depuis
**Administration → Import/Export**, section **OAuth2**, avec
le bouton OAuth2. L'accès demande
d'abord le **mot de passe administrateur** — une confirmation supplémentaire
avant d'ouvrir l'écran.

L'écran liste les clients enregistrés et, pour chacun, affiche son **état**
(actif / inactif), son **nom**, ses **scopes**, ses **contacts** et ses
**URIs** (site, logo, URIs de redirection). Vous pouvez :

- **Enregistrer un client** — renseignez le nom, un `software_id` facultatif,
  les scopes, les contacts, le site, le logo et les URIs de redirection. À la
  création, Omniscol affiche **une seule fois** le `client_id` et le
  `client_secret`.
- **Modifier** un client — seuls des champs sûrs sont modifiables : nom,
  scopes, contacts, site et logo. Les URIs de redirection, le `software_id` et
  le secret ne se modifient pas ici.
- **Activer ou désactiver** un client — un client désactivé voit ses jetons
  refusés dès l'appel suivant.
- **Supprimer** un client — la suppression est **définitive**.

##### Le secret du client

Le `client_secret` est affiché **une seule fois**, à l'enregistrement.
Omniscol ne conserve à ses côtés qu'une **empreinte** du secret, jamais le
secret en clair : il **ne peut pas** être ré-affiché ni récupéré ensuite.
Copiez-le immédiatement dans un gestionnaire de secrets.

Le `client_id`, lui, est **déterministe** : il dérive du nom du compte, du nom
du client et d'une empreinte de ses métadonnées techniques. Deux
enregistrements strictement identiques retombent ainsi sur le même
identifiant.

##### Renouveler le secret (rotation)

La **rotation** du secret existe : elle émet un nouveau secret, n'en conserve
que la nouvelle empreinte, et ne renvoie ce nouveau secret **qu'une fois**.
Elle s'effectue via le point d'accès de gestion de l'enregistrement dynamique
(`/oauth/register/<client_id>/rotation`) et suppose de présenter le **jeton
d'enregistrement** remis au client lors de son enregistrement dynamique. Elle
n'est donc **pas** déclenchée depuis l'écran de gestion ci-dessus, qui ne
manipule pas ce jeton.

#### OAuth2 ou clé d'API : lequel choisir

Omniscol propose deux mécanismes d'accès machine, aux modèles de confiance
différents :

- **OAuth2** (cette page) — un **tiers enregistré** obtient, après
  **consentement** d'un utilisateur, un jeton à durée de vie **courte** (1 h),
  borné aux scopes accordés, **rafraîchissable** et **révocable** (en
  désactivant le client). Le flux `client_credentials` couvre en outre la
  machine à machine sans utilisateur. C'est le mode adapté à un service tiers
  identifié, à MCP et à OneRoster.
- **Clé d'API** (voir [API Omniscol](#page-integrations.api-tokens)) — un **jeton autonome**
  signé par le serveur, qui embarque une **liste de points d'accès** autorisés
  et que vous remettez vous-même au système externe : pas de tiers enregistré,
  pas d'écran de consentement, pas de rafraîchissement. C'est une délégation,
  par l'administrateur, de ses propres droits à un système qu'il maîtrise.

En résumé : la **clé d'API** convient quand vous remettez vous-même un accès à
un système que vous contrôlez ; **OAuth2** convient quand un service tiers
identifié doit obtenir un accès délégué, scopé et révocable, ou quand le
protocole l'impose (MCP, OneRoster).

#### Procédure — Enregistrer un client OAuth2

1. **Ouvrez l'écran OAuth2.** Dans **Administration →
   Import/Export**, section OAuth2, cliquez sur
   OAuth2, puis saisissez le mot de
   passe administrateur.
2. **Enregistrez le client.** Renseignez son nom, ses scopes (`read:basic`,
   `read:user`, `write:data`, `admin`), ses URIs de redirection et, si utile,
   contacts, site et logo. Les scopes OneRoster ne s'attribuent pas ici par
   l'enregistrement dynamique ; ils relèvent d'un provisionnement
   administrateur.
3. **Copiez le `client_id` et le `client_secret`** affichés. Le secret
   n'apparaît **qu'une seule fois** : conservez-le dans un gestionnaire de
   secrets.
4. **Côté service**, configurez le client avec ces identifiants et l'URL du
   serveur ; un client conforme découvre seul les points d'accès via
   `/.well-known/`.
5. **Pour couper un accès**, revenez sur l'écran et **désactivez** ou
   **supprimez** le client.

#### Voir aussi

- [MCP — connecter un agent IA externe](#page-integrations.mcp)
- [API Omniscol](#page-integrations.api-tokens)
- [OneRoster](#page-integrations.oneroster)
- [OIDC / SSO](#page-integrations.oauth2)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.api-customization"></a>

### 9.7  Personnalisation d'API : surcharges de points d'accès et hooks

*Source: `help/fr/integrations/api-customization.md` · id: integrations.api-customization · Audience: admin · Plan: premium · Updated: 2026-06-27*

> **Premium**

> _Premium_

La **Personnalisation d'API** est un écran technique destiné au **service
informatique**. Il permet d'adapter le comportement de l'API d'Omniscol pour
votre compte selon **trois leviers** :

- une **configuration générale** (en-têtes HTTP communs) ;
- la **surcharge d'un point d'accès** — rediriger l'application web vers une
  autre URL, ou désactiver un point d'accès ;
- les **hooks** — des appels sortants (webhooks) qu'Omniscol émet vers votre
  système quand une opération a lieu.

#### Où le trouver

Module **Administration**, écran **Import/Export**, section
**Personnalisation d'API**, bouton **API**.

L'écran est **réservé aux comptes Premium** et protégé par une
**authentification renforcée** : Omniscol redemande le mot de passe de
l'administrateur avant d'ouvrir la fenêtre. Comme toute action sur cet écran
touche au contrat technique de votre intégration, sa mise en place se fait en
lien avec Omniscol.

#### Configuration générale

Vous y définissez des **en-têtes HTTP** (format `clé1:valeur1;clé2:valeur2`)
appliqués à **tous les hooks**. C'est l'endroit naturel pour porter un **jeton
d'authentification** vers votre propre serveur (par exemple un
`Authorization: Bearer …` que votre serveur attend). Pour une **surcharge**,
l'authentification se porte au contraire dans les en-têtes propres au point
d'accès (voir ci-dessous).

#### Surcharge d'un point d'accès

Une **surcharge** redéfinit un point d'accès de l'API d'Omniscol pour que
l'**application web** appelle **une autre URL** à sa place. Trois usages, du
plus puissant au plus simple.

##### Servir une donnée en direct depuis votre système d'information

C'est l'usage le plus puissant. Vous redirigez un point d'accès **en lecture**
vers une **URL externe** — typiquement un **ETL** qui interface le **système
d'information interne** de votre établissement. L'application web va alors
chercher la donnée **en direct** dans ce système, au lieu de la copie locale
détenue par Omniscol.

Concrètement : quand l'URL de redirection est une **adresse externe absolue**,
l'application web l'appelle directement, sans repasser par les serveurs
d'Omniscol, et **consomme la réponse telle quelle** — exactement comme si elle
venait d'Omniscol. La seule contrainte est que votre système réponde au
**format attendu par Omniscol** pour ce point d'accès (même structure JSON) :
il n'y a aucun transcodage intermédiaire. Pour ce point d'accès, la copie
locale d'Omniscol n'est plus interrogée ; la donnée affichée est celle,
vivante, de votre système.

Exemple : le **catalogue des matières** de l'établissement servi à la volée
depuis votre système d'information, de sorte que toute mise à jour côté école
soit visible immédiatement dans Omniscol, sans réimport.

L'authentification vers votre système se porte ici dans les **en-têtes propres
au point d'accès** (par exemple un `Authorization: Bearer …`), saisis sur la
ligne de la surcharge. La **méthode** HTTP peut elle aussi être imposée par
point d'accès.

Rebrancher un point d'accès de l'application elle-même sur une source externe
vivante est une possibilité aussi puissante qu'exigeante : à manier avec votre
service informatique, et en lien avec Omniscol.

##### Intercaler votre propre serveur ou un proxy

Vous pouvez aussi faire passer les appels par **votre propre serveur** ou un
**proxy** — par exemple pour autoriser le partage de ressources entre origines
(CORS), ou pour intercaler une logique maison entre l'application web et
Omniscol.

##### Désactiver un point d'accès

Vous **désactivez** un point d'accès en ne lui donnant **aucune URL de
redirection** (méthode `null`).

Mesurez l'effet sur l'interface. Omniscol est une **application web monopage**
(SPA) dont les éléments d'interface sont pilotés par les **points d'accès
disponibles** : boutons, onglets et menus ne s'affichent que si le point
d'accès dont ils dépendent existe. Désactiver un point d'accès **fait donc
disparaître dynamiquement**, au prochain affichage, les éléments d'interface
qui en dépendent — et si vous désactivez tous les points d'accès d'un module,
c'est le **module entier** qui disparaît de la navigation. Ces éléments sont
retirés, pas seulement masqués, et le tout se fait **sans aucune intervention
sur le code** : il suffit de modifier la configuration et de recharger
l'application.

Le tableau liste, par point d'accès : sa **clé** (le code interne de
l'opération), son **URL d'origine**, la **méthode** HTTP, la **nouvelle URL**
de redirection et des **en-têtes** spécifiques. Un champ de recherche permet
de retrouver le point d'accès à surcharger.

#### Hooks (appels sortants)

Un **hook** demande à Omniscol d'**envoyer une requête HTTP à votre URL**
**après** qu'une opération a réussi. C'est le mécanisme pour **tenir un système
externe au courant en temps réel** — un panneau d'affichage, un espace
numérique de travail, un système de ressources humaines, une synchronisation
maison…

Un hook se branche de deux façons :

- sur un **point d'accès précis** (la clé de l'opération) ;
- sur un **événement groupé**, qui couvre d'un coup une famille d'opérations.
  Trois événements groupés existent :

  - **modification d'emploi du temps** — un changement qui touche
    l'**emploi du temps en vigueur**, effets de bord compris :
    enregistrement d'un emploi du temps, création, déplacement ou
    suppression de séances, activation d'un emploi du temps, absences
    d'enseignant ou de classe dès qu'une date est touchée, et retraits
    structurels (une salle, une matière…) sur un emploi du temps
    **publié (actif)** — retirer une matière supprime les séances qui
    l'utilisaient, un changement en soi. Les éditions confinées à un
    brouillon inactif ne le déclenchent pas ;
  - **modification d'un professeur** (ajout, mise à jour ou suppression) ;
  - **modification d'une matière** (matières personnalisées).

Pour chaque hook, vous renseignez l'**URL de rappel**, la **méthode** HTTP, la
case **« avec données »** (faut-il joindre le corps de la requête d'origine ?)
et des **en-têtes** propres.

##### Ce que votre serveur reçoit

L'appel est envoyé en `application/json` et porte, en plus de vos en-têtes :

- le **corps de la requête d'origine** si l'option « avec données » est
  activée ;
- un bloc de **métadonnées** Omniscol : l'URL appelée, le code du point
  d'accès, la méthode, les paramètres, le jeton d'authentification de
  l'utilisateur, l'identifiant de l'établissement et la configuration du
  hook lui-même ;
- des en-têtes de traçabilité : `X-OS-original-query`, `X-OS-original-endpoint`,
  `X-OS-auth` et `X-School`.

Pour l'événement **modification d'emploi du temps**, lorsque l'option « avec
données » est active, l'appel inclut en plus un **différentiel des séances**
(séances ajoutées, modifiées, supprimées) — pratique pour ne propager que ce
qui a changé.

##### Comportement

Les hooks partent **en arrière-plan**, **après** que l'opération de
l'utilisateur a abouti : ils ne ralentissent pas l'interface et **ne la
bloquent pas** en cas d'échec de votre serveur. Un appel sortant qui n'aboutit
pas est **journalisé**, sans interrompre le travail dans Omniscol. Chaque appel
a un délai d'expiration court (quelques secondes) : votre serveur doit
**accuser réception vite** et traiter le reste de son côté.

#### Bon à savoir

- L'API d'Omniscol expose un **sous-ensemble** d'opérations ; une surcharge ou
  un hook ne s'applique qu'aux points d'accès réellement exposés. Voir
  [API Omniscol](#page-integrations.api-tokens) pour la liste et l'authentification.
- Pour une **intégration avec un progiciel** (ERP, SIRH, espace numérique de
  travail), la synchronisation dédiée est souvent plus adaptée — voir
  [Synchronisation avec des systèmes externes](#page-integrations.extsync). En interne, le même système de hook est utilisé.
- Pour qu'un **agent IA** consulte vos données sans développement, voir
  [MCP — connecter un agent IA externe](#page-integrations.mcp).

#### Voir aussi

- [API Omniscol](#page-integrations.api-tokens)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)

<a id="page-integrations.data-model-full"></a>

### 9.8  Modèle de données complet : entités JSON, relations et ontologie

*Source: `help/fr/integrations/data-model-full.md` · id: integrations.data-model-full · Audience: admin · Status: stable · Updated: 2026-06-18*

Cette page décrit le **modèle de données complet** d'un compte Omniscol :
les entités, leurs champs principaux et leurs relations. Elle prolonge
la page conceptuelle [Organisation des données](#page-core-concepts.data-model),
qui explique le *pourquoi* (référentiel école ↔ EDT, copies locales) ;
ici, l'objectif est le *quoi* — une cartographie structurelle exploitable,
notamment pour **mettre en relation le modèle avec un référentiel externe**
(progiciel de gestion, annuaire, système d'information).

> **Page technique.** Cette référence s'adresse à l'intégration et à
> l'appariement avec un système externe. Elle n'est **pas nécessaire à
> l'usage courant** d'Omniscol : pour comprendre l'organisation des données
> côté métier, voir [Organisation des données](#page-core-concepts.data-model).

Toutes les données d’un établissement sont organisées sous forme d’arbre.
Les entités décrites ci-dessous (utilisateurs, années scolaires, emplois du temps, absences, événements, etc.) correspondent aux différentes branches de cette structure.
La référence normative est le **schéma JSON** du compte. Il se consulte sous
deux formes :

- la **source brute** (le schéma JSON tel quel), servie par le compte à
  l'adresse `https://api.omniscol.com/api/guest/school_schema.json` ;
- la **visionneuse arborescente** lisible sur
  [omniscol.com/fr/datamodel](https://www.omniscol.com/fr/datamodel) (et la
  référence d'API correspondante sur
  [omniscol.com/fr/developers](https://www.omniscol.com/fr/developers)).

Ce schéma décrit exactement le stockage physique en base, sous forme de
document JSON. Cette page en donne une lecture organisée et stable dans le
temps.

#### Le document école : la racine

Le document racine regroupe le référentiel durable de l'établissement et
toutes ses planifications. Ses sous-arbres de premier niveau :

| Clé racine | Entité | Rôle |
| --- | --- | --- |
| `config` | `SchoolConfig` | Paramètres du compte (pays, options, fuseau, synchronisation externe) |
| `subjects_custom` | dictionnaire de `SubjectFull` | Matières personnalisées de l'école |
| `families_custom` | dictionnaire de `Family` | Familles de matières personnalisées |
| `users` | dictionnaire de `User` | Annuaire des utilisateurs (tous rôles) |
| `school_years` | tableau de `SchoolYear` | Années scolaires et vacances |
| `timetables` | dictionnaire de `Timetable` | Emplois du temps (EDT) |
| `absences` | regroupement d'`Absence*` | Absences (professeurs, classes, encadrants, élèves) |
| `staffing` | `Staffing` | Module de membres du personnel et de surveillance |
| `panels` | dictionnaire de `Panel` | Panneaux d'affichage |
| `events` | dictionnaire d'`Event` | Évènements de type agenda |
| `api`, `snapshots`, `jobs`, `translations`, `logo` | divers | Réglages techniques et historiques |

Les sous-arbres exprimés comme « dictionnaire » sont des objets JSON dont
**les clés sont des identifiants stables** (le pivot de toute mise en
relation externe — voir la section finale).

```mermaid
erDiagram
    SCHOOL ||--|| CONFIG : "config"
    SCHOOL ||--o{ SUBJECT : "subjects_custom"
    SCHOOL ||--o{ FAMILY : "families_custom"
    SCHOOL ||--o{ USER : "users"
    SCHOOL ||--o{ SCHOOL_YEAR : "school_years"
    SCHOOL ||--o{ TIMETABLE : "timetables"
    SCHOOL ||--o| STAFFING : "staffing"
    SCHOOL ||--o{ ABSENCE : "absences"
    SCHOOL ||--o{ PANEL : "panels"
    SCHOOL ||--o{ EVENT : "events"

    SCHOOL {
        string _id "domaine de l'établissement"
        string name "nom du compte"
        string country "pays du compte"
        string current_school_year "année scolaire courante"
    }
```

#### Champs transversaux : `_extids` et `wishes`

Deux champs reviennent sur de nombreuses entités. Pour ne pas les répéter
dans chaque schéma, ils sont décrits une seule fois ici.

- **`_extids`** (`ExternalIds`) — table des identifiants de l'entité dans
  les systèmes externes, par exemple `{ "auriga": "12345" }`. Présent sur
  les entités synchronisables (matières, familles, utilisateurs, sites,
  salles, ressources, professeurs, classes, groupes…). C'est le **point
  d'ancrage d'un appariement avec un référentiel externe** (voir la
  section finale).
- **`wishes`** — **contraintes horaires** : disponibilités, créneaux
  souhaités ou à éviter, volume horaire maximal, salle préférée… Présent
  sur la plupart des entités planifiables : utilisateurs, professeurs et
  matières d'un EDT, groupes, classes, salles, plages horaires de site,
  grilles d'encadrement. Selon le périmètre, ces contraintes sont globales
  (niveau école) ou propres à un EDT.

#### Niveau 1 — Le référentiel école

Le référentiel école contient ce qui est vrai pour l'établissement,
indépendamment d'un EDT : le catalogue des matières, l'annuaire des
utilisateurs, le calendrier des années scolaires.

```mermaid
erDiagram
    FAMILY ||--o{ SUBJECT : "family"
    SUBJECT ||--o{ SUBJECT : "parent"
    USER ||--o{ PLACEMENT : "placements par année"
    PLACEMENT ||--o{ PLACEMENT_GROUP : "groups"
    SCHOOL_YEAR ||--o{ HOLIDAY : "holidays"

    SUBJECT {
        string name
        string short "libellé court (affichage)"
        string code
        string parent "matière parente"
        string family "famille"
        string color
        object _extids "identifiants externes"
    }
    FAMILY {
        string name
        string code
    }
    USER {
        string login
        string first_name
        string middle_name "(si pertinent pour le pays)"
        string last_name
        string idnumber "identifiant officiel"
        array roles "admin teacher staff student"
        string customrole "Rôle personnalisé"
        int servicehours "service horaire de référence"
        bool external "intervenant extérieur"
        object subjects "matières enseignées"
        object wishes "disponibilités globales"
        object _extids
    }
    PLACEMENT {
        string class "classe affectée"
        string date_start
        string date_end
        array groups "groupes affectés"
    }
    PLACEMENT_GROUP {
        string group "groupe groupset ou virtuel"
        array weeks "plages de semaines"
    }
    SCHOOL_YEAR {
        string name
        string date_start
        string date_end
        array altweeks "semaines alternées"
    }
    HOLIDAY {
        string name
        string begin
        string end
    }
```

##### Matières — `SubjectFull` / `Subject` / `Family`

Une matière personnalisée (`SubjectFull`) étend la matière de base
(`Subject` : `name`, `short`, `code`, `type`, `_extids`) avec `parent`,
`family` et `color`. Deux origines coexistent au niveau école : les
**matières communes** au pays (lecture seule) et les **matières
personnalisées** de l'établissement. Détails fonctionnels :
[Gérer les matières](#page-admin.subjects).

##### Utilisateurs — `User` (dont les professeurs)

Un `User` est l'**entité unique** de l'annuaire : identité (nom, prénom,
`idnumber`, contact), authentification (`login`), `roles`, service horaire
de référence (`servicehours`), disponibilités globales (champ `wishes`) et `placements`.
Un **professeur** n'est pas une entité distincte : c'est un `User` ayant
`teacher` parmi ses `roles` (un même utilisateur peut cumuler plusieurs
rôles). Le champ `placements` (indexé par année scolaire) rattache un
**élève** à une `class` et à des `groups` sur une période.
Détails : [Gérer les professeurs](#page-admin.teachers).

##### Années scolaires — `SchoolYear` / `Holiday`

Une `SchoolYear` définit `date_start → date_end`, la liste de `holidays`
et les `altweeks` (semaines alternées). C'est un **cadre temporel**, pas
un conteneur : les EDT s'y déploient sans y être imbriqués. Voir
[Année scolaire](#page-core-concepts.school-year).

#### Niveau 2 — L'emploi du temps (EDT)

Un `Timetable` est une unité de planification cohérente. Il porte sa
propre copie locale des professeurs, classes, groupes et matières — voir
le principe de copie locale dans [Organisation des données](#page-core-concepts.data-model).

```mermaid
erDiagram
    TIMETABLE ||--|| TIMETABLE_CONFIG : "config"
    TIMETABLE ||--o{ TIMETABLE_SITE : "sites"
    TIMETABLE ||--o{ TIMETABLE_TEACHER : "teachers"
    TIMETABLE ||--o{ TIMETABLE_CLASS : "classes"
    TIMETABLE ||--o{ LESSON : "lessons (groupes de groupes, multi-groupes)"
    TIMETABLE_SITE ||--o{ TIMETABLE_CLASSROOM : "classrooms"
    TIMETABLE_SITE ||--o{ TIMETABLE_RESOURCE : "resources"
    TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_SUBJECT : "subjects"
    TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_GROUP : "groups"
    TIMETABLE_CLASS ||--o{ LESSON : "lessons"
    TIMETABLE_CLASS_GROUP ||--o{ TIMETABLE_CLASS_GROUP : "parent (hiérarchie)"
    TIMETABLE_CLASS_SUBJECT }o--|| SUBJECT : "origine (copie locale partielle)"
    TIMETABLE_CLASS_SUBJECT }o--o{ TIMETABLE_TEACHER : "teachers par défaut"
    TIMETABLE_TEACHER }o--o| USER : "copie locale partielle et lien implicite par identifiant"
    GROUPSET_ITEM }o--o{ TIMETABLE_CLASS_GROUP : "groupes constitutifs"

    TIMETABLE {
        bool active "publié ?"
        array lessons "séances transversales"
    }
    TIMETABLE_CONFIG {
        string type "week cycle calendar"
        int time_period "durée du créneau"
        int time_unit "subdivision du créneau"
        array weekdays "jours ouvrés"
        string displaymode "hours periods agenda"
        int cycle "longueur du cycle"
        array dates "bornes si calendar"
        object date_windows "fenêtres de génération"
    }
    TIMETABLE_SITE {
        string name
        object distances "distances inter-sites"
        object hours "grilles horaires"
    }
    TIMETABLE_CLASSROOM {
        string name
        int capacity
        string specialisation "spécialisation libre"
        int maxclasses "classes simultanées"
        string building
        string description "description libre"
        array tags "étiquettes de caractéristiques ou matériels"
    }
    TIMETABLE_RESOURCE {
        string name
        int number "quantité disponible"
    }
    TIMETABLE_TEACHER {
        string first_name
        string last_name
        string virtual_name "poste à pourvoir"
        array subjects "matières du poste virtuel"
        string idnumber
        int servicehours "surchargeable par EDT"
        string classroom "salle préférée"
    }
    TIMETABLE_CLASS {
        string name
        string level
        string campus
        array sites "un seul site pris en compte"
        int studentsnb "nombre d'élèves théoriques (pour calcul de salle adéquate)"
        string classroom "salle par défaut"
        bool offgrid "hors grille (calendar)"
        string videolink "lien de visioconférence par défaut sur toutes les séances"
        string resourcelink "lien de ressource (LMS) par défaut sur toutes les séances"
    }
    TIMETABLE_CLASS_SUBJECT {
        string code "hérité de Subject"
        array incompatibilities "incompatibilités"
        number pweight "poids pédagogique"
        array teachers "professeurs par défaut"
        number minutes "volume horaire visé"
        string specialisation "salle requise"
    }
    TIMETABLE_CLASS_GROUP {
        string name
        string code
        bool free "groupe libre"
        string parent "groupe parent"
        int studentsnb "nombre d'élèves théoriques (pour calcul de salle adéquate)"
    }
    GROUPSET_ITEM {
        string name
        string code
        array groups "identifiants de groupes"
    }
```

##### Configuration — `TimetableConfig`

Le champ déterminant est `type` : `week` (hebdomadaire répété), `cycle`
(cycle multi-jours, voir `cycle`) ou `calendar` (dates réelles, voir
`dates`). `time_period` et `time_unit` définissent la trame de la grille ;
`weekdays` les jours ouvrés ; `date_windows` les fenêtres de contrainte
pour la génération automatique.

##### Sites, salles, ressources

Un `TimetableSite` (site) contient ses `classrooms`
(`TimetableClassroom` : `capacity`, `specialisation`, `maxclasses`,
`building`) et ses `resources` (`TimetableResource` : `number` =
quantité disponible, dont le système assure la non-surréservation).
`distances` modélise les temps de trajet inter-sites. Voir
[Sites, salles et ressources](#page-core-concepts.sites-rooms-resources) et
[Spécialisations de salles](#page-core-concepts.classroom-specializations).

##### Professeurs de l'EDT — `TimetableTeacher`

Copie partielle enrichie d'un `User` : seuls quelques champs identifiants
sont recopiés (`first_name`, `last_name`, `idnumber`), auxquels s'ajoutent
des champs propres à la planification (`servicehours` surchargeable,
`classroom` préférée, `wishes` par EDT). Un `virtual_name` non vide
désigne un **professeur virtuel** (poste à pourvoir, sans `User` réel
derrière).

##### Classes, matières de classe, groupes

- **`TimetableClass`** : `name`, `level`, `campus`/`sites`, `studentsnb`,
  et trois sous-arbres clés — `subjects`, `groups`, `lessons`.
- **`TimetableClassSubject`** : copie locale d'une matière (étend
  `Subject`) enrichie pour la planification — `minutes` (volume visé),
  `pweight` (poids pédagogique), `incompatibilities`, `teachers` par
  défaut, `specialisation` de salle. Affecter une matière **avec un type
  de cours** crée une entrée distincte par type. Voir
  [Cours, séances, types de cours](#page-core-concepts.lessons-and-types).
- **`TimetableClassGroup`** : un sous-ensemble d'une classe. `free=true`
  désactive les conflits avec le reste de la classe ([groupe libre](#page-core-concepts.free-groups)) ;
  `parent` établit la [hiérarchie de groupes](#page-core-concepts.group-hierarchy).

##### Règles entre groupes — partitions, alignements, groupes de groupes

Les relations entre groupes sont portées par le sous-arbre `groups` de
l'EDT, sous trois formes :

| Schéma | Entité | Sens | Page |
| --- | --- | --- | --- |
| `TimetableGroupTimeset` | partition | Groupes d'une **même classe** mutuellement exclusifs, placés en parallèle (demi-classes, options) | [Divisions de classe](#page-core-concepts.class-divisions) |
| `TimetableGroupSpaceset` | alignement | Groupes de **classes différentes** travaillant ensemble sur des créneaux miroir | [Alignements](#page-core-concepts.alignments) |
| `TimetableGroupGroupset` | groupe de groupes | Méta-groupe (`GroupsetItem` : `name`, `code`, `groups[]`) réunissant plusieurs groupes | [Groupes de groupes](#page-core-concepts.groups-of-groups) |

Voir aussi la vue d'ensemble [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups).

#### Niveau 3 — Les séances de cours

Une **séance de cours** (`Lesson`) est l'unité d'enseignement réellement placée dans
l'emploi du temps : durée, matière, groupe, professeur(s), salle,
ressources, position et statut. Elle est générée à partir d'une matière de
classe (voir niveau 2) et rattachée **soit à une classe** (`class.lessons`),
**soit directement à l'emploi du temps** (`timetable.lessons`) — ce dernier
cas pour les groupes de groupes et les séances multi-groupes, transversales
à plusieurs classes.

```mermaid
erDiagram
    TIMETABLE_CLASS ||--o{ LESSON : "lessons (séances d'une classe)"
    TIMETABLE ||--o{ LESSON : "lessons (groupes de groupes, multi-groupes)"
    LESSON ||--o{ LESSON : "assoc · concat · weekalt (cours complexes)"
    LESSON }o--o| TIMETABLE_CLASS_GROUP : "group"
    LESSON }o--o{ TIMETABLE_TEACHER : "teachers"
    LESSON }o--o| TIMETABLE_CLASSROOM : "classroom"
    LESSON }o--o{ TIMETABLE_RESOURCE : "resources"
    LESSON ||--o{ MEMO : "memos"
    LESSON ||--|| POSITION : "position"

    LESSON {
        int duration "en nombre de périodes"
        int duration_actual "minutes réelles"
        int duration_accounted "minutes facturées"
        string modality "in_person remote hybrid self_study"
        string subject "identifiant de matière"
        string group "identifiant de groupe"
        array teachers "null force aucun professeur"
        string classroom "null force aucune salle"
        string status "planned draft canceled done"
        string _id "identité stable de la séance"
        string _osrev "révision (verrouillage optimiste)"
    }
    MEMO {
        string comment
        string pub "visibilité du commentaire"
        string owner
        int tstp "horodatage"
    }
    POSITION {
        string day "date, jour de semaine ou n° de jour de cycle"
        int period "index du créneau dans la grille"
        string start "heure de début exacte HH:MM (uniquement pour hors grille)"
        string end "heure de fin exacte HH:MM (uniquement pour hors grille)"
        bool fixed "séance punaisée (figée à la génération)"
    }
```

##### Cœur d'une séance de cours

Une séance de cours porte les champs de planification — `duration` (en périodes),
`duration_actual` / `duration_accounted` (minutes réelles / facturées),
`modality`, `subject`, `group`, `teachers`, `classroom`, `resources` —
auxquels s'ajoutent sa `position`, son `status`, ses `memos` et une
identité (`_id`, `_osrev`). Mettre `teachers` ou `classroom` à `null`
**force explicitement** l'absence de professeur ou de salle.

##### Cours complexes

Une séance peut en **regrouper d'autres** :

- `assoc` — séances **associées** : les groupes permutent ensemble.
- `concat` — séances **concaténées** : strictement consécutives.
- `weekalt` — **semaines alternées** : une variante de séance par semaine.

Ces mécanismes couvrent les **cours complexes** — voir
[Cours complexes : alternées, associées, concaténées](#page-core-concepts.complex-lessons).

##### Position d'une séance

La `position` est un **objet** qui place la séance dans le temps. Elle
regroupe les champs suivants :

- **`position.day`** — le jour de la séance, **polymorphe selon le mode de
  l'EDT** : un nom de jour (`monday`…`sunday`) en mode hebdomadaire, un
  **numéro de jour de cycle** (`"1"`, `"2"`…) en mode cyclique, ou une
  **date** `YYYY-MM-DD` en mode calendrier. C'est un seul et même champ qui
  change de forme selon le mode ; il est toujours présent.
- **`position.period`** — l'**index du créneau** dans la grille horaire. Une
  séance sans `period` ni `start`/`end` correspond à un jour férié.
- **`position.start`** / **`position.end`** — heures exactes de début et de
  fin (`HH:MM`), pour les séances **hors grille** ou en mode calendrier qui
  ne s'alignent pas sur un créneau standard.
- **`position.fixed`** — booléen (faux par défaut) : une séance **punaisée**,
  que la **génération automatique ne déplacera pas**.

Les séances d'une classe vivent dans `class.lessons` ; le tableau
`timetable.lessons` porte les séances **transversales** liées aux groupes
de groupes.

##### Identité d'une séance

Chaque séance porte deux champs techniques d'identité, **présents sur les
comptes Premium** :

- **`_id`** — identifiant **stable**, attribué à la création de la séance et
  immuable ensuite (il combine un horodatage et une empreinte du contenu).
  C'est la **clé d'une séance** pour l'édition collaborative et pour un outil
  externe qui suit les séance dans le temps. Pour les **occurrences
  récurrentes** d'un EDT calendrier (semaines alternées, concaténations,
  associations), l'`_id` de chaque occurrence est **dérivé** de celui de la
  séance de base, qui reste reconnaissable.
- **`_osrev`** — jeton de **révision** (verrouillage optimiste), incrémenté
  à chaque modification (horodatage + indice de modification), de manière
  strictement ordonnée alphabétiquement (ce qui permet aisément de savoir
  si une révision est plus récente qu'une autre). Il permet à l'édition
  collaborative de **détecter et fusionner les modifications concurrentes** :
  une révision client périmée signale un conflit, que le serveur tranche ou
  fusionne au lieu d'écraser silencieusement.

#### Absences

Les absences partagent une base commune (`Absence` : `date_start`,
`date_end`, `reason`, `hours`, `comment`, statut) déclinée par sujet.

```mermaid
erDiagram
    ABSENCE ||--o{ ABSENCE_TEACHER : "teachers"
    ABSENCE ||--o{ ABSENCE_CLASS : "classes"
    ABSENCE ||--o{ ABSENCE_STAFF : "staff"
    ABSENCE ||--o{ ABSENCE_STUDENT : "students"
    ABSENCE_TEACHER ||--o{ SUBSTITUTE : "substitutes"

    ABSENCE_TEACHER {
        string date_start
        string date_end
        string reason "clé de traduction ou libellé"
        array subjects "matières concernées"
        array classes "classes concernées"
        string status
    }
    SUBSTITUTE {
        string substitute "nom du remplaçant"
        string date_start "début de la règle (date)"
        string date_end "fin de la règle (date)"
        array hours "créneaux concernés (begin/end en minutes, day)"
        array classes "classes concernées"
        array subjects "matières concernées"
        string comment "commentaire"
    }
    ABSENCE_STUDENT {
        string date_start
        string reason
        array subjects "matières exclues"
        string status
    }
```

Une `AbsenceTeacher` peut être restreinte à certaines `subjects`/`classes`
et porte un **tableau de règles de remplacement** (`substitutes`, chacune un
`AbsenceTeacherSubstitute` : remplaçant, période, créneaux horaires, classes
et matières couvertes). Les statuts diffèrent par sujet (par exemple
`ok`/`aborted` pour une classe). Voir le glossaire
[Remplacement / Suppléance](#page-glossary.substitution) et le module **Gestion des absences**.

#### Membres du personnel

Module distinct (vendu aussi en autonome) pour la surveillance et les
services d'encadrement.

```mermaid
erDiagram
    STAFFING ||--o{ STAFFING_GRID : "grids"
    STAFFING ||--o{ STAFFING_ASSIGNMENT : "assignments"
    STAFFING ||--o{ STAFFING_STAFF_MEMBER : "staff"
    STAFFING ||--|| STAFFING_SCHEDULE : "schedule"
    STAFFING_ASSIGNMENT ||--o{ STAFFING_NEED_SPAN : "needs"

    STAFFING_GRID {
        array dates "plages d'activité"
        array days
        array periods "créneaux"
    }
    STAFFING_ASSIGNMENT {
        string name
        int req "minimum d'encadrants"
        int ideal "effectif souhaité"
        string site
        string priority "high normal low"
        array allowed_staff
    }
    STAFFING_NEED_SPAN {
        string day "jour ou date"
        string begin "HH:MM"
        string end "HH:MM"
        int headcount "effectif requis"
    }
    STAFFING_STAFF_MEMBER {
        string first_name
        string last_name
        string virtual_name "poste à pourvoir"
        string color
    }
    STAFFING_SCHEDULE {
        object dates "vacations par date"
    }
```

Une `StaffingGrid` est le gabarit (jours, périodes) ; les `assignments`
décrivent les postes (`req`/`ideal`, `priority`, `needs` détaillés par
créneau via `StaffingNeedSpan`) ; le `schedule` matérialise les vacations
effectives par date. Voir le module Service du personnel.

#### Évènements

Un **`Event`** est une entrée d'**agenda posée par-dessus la grille** :
quelque chose qui se passe dans l'établissement **sans être un cours
régulier** — un conseil de classe, une réunion parents-professeurs, un
examen sur une journée, une sortie, une journée portes ouvertes. Les
évènements sont rangés dans le dictionnaire `events` (clés `event-<n>`) et
font partie des fonctionnalités Premium.

Champs d'un `Event` (obligatoires : `title`, `start`, `end`) :

- **`title`** — intitulé affiché.
- **`start`** / **`end`** — début et fin, au format `YYYYMMDDTHHmmSS`.
- **`rrule`** — règle de **récurrence** éventuelle.
- **`attendees`** — participants : un utilisateur, une classe, un groupe, un
  libellé libre (`custom`), ou bien tout l'établissement (`everybody`) /
  toute personne volontaire (`anyone`).
- **`location`** — lieu(x) : une salle de l'EDT ou un libellé libre.
- **`resources`** — ressources réservées pour l'évènement.
- **`videolink`** — lien de visioconférence pour y assister à distance.
- **`memos`** — commentaires ; **`color`** — couleur (hexadécimal).

Le fonctionnement côté usage (création, pose sur la grille, champs de
l'interface) est décrit dans [Évènements ponctuels](#page-schedules.events).

#### Panneaux d'affichage

Un **`Panel`** est un **panneau d'affichage** des séances du jour (hall,
salle, écran d'accueil…). Il définit la sélection des `columns`, la
`topline`, les `filters`/`exclusions` et des réglages d'apparence. Voir le
glossaire [Panneau d'affichage](#page-glossary.panel).

#### Identifiants, copies locales et mise en relation avec un ERP

Pour relier le modèle Omniscol à un référentiel externe, trois principes
priment :

1. **Les clés de dictionnaire sont les identifiants stables.** Les
   matières, utilisateurs, professeurs, classes, groupes, salles,
   ressources sont indexés par un identifiant immuable (la clé JSON), et
   non par leur libellé. C'est ce pivot — jamais le `name` — qu'il faut
   utiliser pour toute correspondance.
2. **Le champ `_extids` (`ExternalIds`) porte les identifiants
   externes.** Présent sur les entités synchronisables (`Subject`,
   `Family`, `TimetableSite`, `TimetableClassroom`, `TimetableResource`,
   `TimetableTeacher`, `TimetableClass`, `TimetableClassGroup`, `User`…),
   il associe à chaque entité ses identifiants dans les systèmes tiers,
   par exemple `{ "auriga": "12345", "aimaira": "67890" }`. C'est le point
   d'ancrage canonique d'un appariement bidirectionnel.
3. **La copie locale école ↔ EDT est volontaire.** Une matière de classe
   ou un professeur d'EDT est une copie enrichie, pas une référence vive.
   Un référentiel externe doit donc décider à quel niveau il s'apparie :
   le **référentiel école** (catalogue durable) ou un **EDT** précis
   (planification datée). Le détail des règles de propagation figure dans
   [Organisation des données](#page-core-concepts.data-model).

La configuration de synchronisation vit dans `config.extsync`
(`SchoolConfigExtsync`) : `systems` (connecteurs configurés), `sync`
(sens et entités), `export` et `schedules`, ainsi que des tables de
correspondance (`mappings`) par clé et identifiant Omniscol. Côté accès
programmatique, l'API REST et les jetons sont décrits dans
[Jetons d'API](#page-integrations.api-tokens) ; les connecteurs de
synchronisation dans [Synchronisation externe](#page-integrations.extsync).

> La forme exacte et exhaustive de chaque champ reste définie par le schéma
> JSON de référence du compte
> (`https://api.omniscol.com/api/guest/school_schema.json`,
> visionneuse lisible sur
> [omniscol.com/fr/datamodel](https://www.omniscol.com/fr/datamodel)). En cas
> de divergence entre cette page et le schéma, **le schéma fait foi**.

#### Voir aussi

- [Organisation des données](#page-core-concepts.data-model)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Divisions de classe](#page-core-concepts.class-divisions) · [Alignements](#page-core-concepts.alignments) · [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Cours, séances, types de cours](#page-core-concepts.lessons-and-types) · [Cours complexes](#page-core-concepts.complex-lessons)
- [Sites, salles et ressources](#page-core-concepts.sites-rooms-resources)
- [Année scolaire](#page-core-concepts.school-year)
- [Jetons d'API](#page-integrations.api-tokens) · [Synchronisation externe](#page-integrations.extsync)

<a id="page-integrations.advanced-queries"></a>

### 9.9  Requêtage avancé — filtrer, projeter et paginer l'API

*Source: `help/fr/integrations/advanced-queries.md` · id: integrations.advanced-queries · Audience: admin · Plan: premium · Updated: 2026-07-11*

> **Premium**

> _Premium_

Au-delà de l'appel d'un point d'accès à la fois, l'API Omniscol
propose **trois surfaces de recherche**. Ensemble, elles couvrent la
recherche plein texte, la résolution d'un nom humain vers un
identifiant technique, et l'exécution d'une requête **filtrée,
projetée et paginée** par-dessus n'importe quel point d'accès en
lecture — sans avoir à enchaîner plusieurs appels vous-même.

Ces mêmes briques répondent aux questions qu'un **intranet**, un outil
de réservation ou un **ETL** posent le plus souvent — à commencer par
*« quelle salle ou quel enseignant est libre sur ce créneau ? »* (voir
[Trouver une salle ou un enseignant disponible](#trouver-une-salle-ou-un-enseignant-disponible)).

#### Les trois surfaces en un coup d'œil

| Point d'accès | Ce qu'il fait | Idéal pour |
| --- | --- | --- |
| `POST /api/search` | Recherche plein texte globale sur tout le compte. Découpe votre texte en mots (insensible à la casse et aux accents) et renvoie les **chemins** JSON où chaque mot a été trouvé. | Un repérage rapide « où ce terme apparaît-il ? ». |
| `POST /api/search/entity` | Résout un nom vers une entité. Gère les accents, les jokers et la correspondance approximative (similarité de Dice), et renvoie le type, l'identifiant et le contexte de l'entité. | Transformer `« 6A »` en la classe, ou `« Martine Dupont »` en l'enseignant. |
| `POST /api/search/query` | **Orchestrateur de requêtes** : appelle un point d'accès en lecture, puis applique un filtre `where`, une projection de champs, un tri et une pagination sur le résultat. | Les questions complexes et filtrées qui demanderaient sinon plusieurs appels. |

Les trois figurent dans la référence d'API interactive (la page
**/developers**), sous la section **Search**, et exigent une
authentification — voir [API Omniscol](#page-integrations.api-tokens).

#### Le filtre `where` (façon Mango / MongoDB)

`/api/search/entity` et `/api/search/query` acceptent tous deux une
clause `where` : un filtre structuré à **opérateurs façon MongoDB**. Un
champ correspond soit à une valeur directe (égalité implicite), soit à
un objet d'opérateurs ; plusieurs opérateurs sur le même champ se
combinent par un **ET** implicite. Les noms de champs acceptent la
**notation pointée** pour atteindre un contexte parent (par exemple
`sites.name`).

| Opérateur | Signification |
| --- | --- |
| `$eq` / `$ne` | Égal / différent |
| `$gt` `$gte` `$lt` `$lte` | Comparaisons |
| `$in` / `$nin` | Valeur dans / hors d'une liste |
| `$exists` | Le champ est présent |
| `$regex` | Expression régulière (insensible à la casse) |
| `$contains` | Une chaîne ou un tableau contient une valeur (insensible à la casse) |
| `$like` | Correspondance approximative, en ignorant accents et ponctuation (Dice) |
| `$and` `$or` `$not` | Composition logique |

Quelques exemples :

```json
{ "capacity": { "$gte": 20, "$lte": 50 } }
{ "level": { "$in": ["L1", "L2", "L3"] } }
{ "name": { "$regex": "^lab" } }
{ "city": { "$like": "ivry sur seine" } }
{ "$or": [ { "capacity": { "$gte": 50 } }, { "specialisation": "chemistry" } ] }
```

#### Projection, tri et pagination

Sur `/api/search/query`, quatre leviers de plus gardent la réponse
compacte et ordonnée — ce qui compte pour un tableau de bord, et plus
encore pour un agent IA facturé au jeton :

- **`project`** — la liste des champs à conserver (notation pointée
  autorisée). Tout le reste est écarté.
- **`sort`** — un champ, `asc` ou `desc`. Le pseudo-champ
  `_count.<champ>` trie selon la longueur d'un champ tableau.
- **`limit`** et **`offset`** — paginent les résultats.

La réponse renvoie aussi un bloc `meta` : combien d'éléments existaient
avant filtrage, combien ont passé le filtre, et combien ont été
renvoyés.

#### Un exemple complet

Trouver les salles d'au moins 30 places, ne garder que leur nom et leur
capacité, de la plus grande à la plus petite, et prendre les 20
premières :

```bash
curl -X POST "https://votre-etablissement.omniscol.com/api/search/query" \
  -H "Authorization: Bearer $OMNISCOL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "call": "os_dashboard_classrooms_get",
        "where": { "capacity": { "$gte": 30 } },
        "project": ["name", "capacity"],
        "sort": { "capacity": "desc" },
        "limit": 20
      }'
```

`call` est le nom interne du point d'accès en lecture à exécuter (tel
qu'affiché sur la page **/developers**), `params` porte les paramètres
propres à ce point d'accès, et `extract_path` désigne au besoin le
tableau à filtrer à l'intérieur du résultat — omis ici, il est détecté
automatiquement.

#### Trouver une salle ou un enseignant disponible

L'intégration la plus courante — alimenter un intranet, un outil de
réservation ou un **ETL** — c'est *« qui ou quoi est libre à tel
moment ? »*. Les points d'accès **availability** y répondent
directement : ils renvoient, par entité, uniquement les créneaux
**libres** sur les dates demandées, en tenant déjà compte des cours,
des absences et des vœux obligatoires.

La disponibilité se demande de deux façons :

- **Scopée** — `GET /api/schedules/availability/{datesrange}/{entity}`
  (au besoin `/{entityId}`) pour un type d'entité — `teachers`,
  `classrooms`, `groups`, `resources`…
- **Filtre explicite** — `GET /api/schedules/availability/{datesrange}`
  avec un `filter`, où l'on restreint l'ensemble avec le même `$where`
  vu plus haut.

`{datesrange}` s'écrit en `YYYYMMDD`, et **des segments séparés par des
virgules demandent des dates éparses** — parfait pour « deux lundis
donnés » : `20261005,20261012`. Chaque créneau renvoyé porte `day`,
`start`, `end` et `time` (en minutes) : « au moins 3 heures » devient
donc un test `time >= 180` de votre côté.

##### Un enseignant libre sur un créneau précis

*« Quels enseignants sont libres le lundi 5 octobre ? »* — un seul appel
scopé :

```bash
curl -G "https://votre-etablissement.omniscol.com/api/schedules/availability/20261005/teachers" \
  -H "Authorization: Bearer $OMNISCOL_TOKEN" \
  --data-urlencode "with_entities=true"
```

Les créneaux libres reviennent groupés par nature, puis par enseignant —
par exemple
`{ "availability": { "teachers": { "t.dupont": [ { "day": "2026-10-05", "start": "14:00", "end": "17:00", "time": 180 } ] } } }` —
et votre outil retient celui qui couvre le créneau voulu.

##### Des salles d'une certaine taille, libres sur deux lundis

Combinez un filtre d'entité et la disponibilité en un seul appel, avec
un **sous-ensemble utile** de la syntaxe — juste `$where` sur la
capacité :

```bash
curl -G "https://votre-etablissement.omniscol.com/api/schedules/availability/20261005,20261012" \
  -H "Authorization: Bearer $OMNISCOL_TOKEN" \
  --data-urlencode 'filter={"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}' \
  --data-urlencode "with_entities=true"
```

Omniscol renvoie les créneaux libres, sur les deux lundis, de chaque
salle d'au moins 30 places. Votre ETL retient ensuite les salles ayant
une fenêtre de **3 heures** (`time >= 180`) sur **chacune** des dates —
la composition sur plusieurs jours reste de votre côté, ce qui garde la
règle explicite et vérifiable.

Le `filter` accepte, par type d'entité, une simple liste d'identifiants
(`{"classrooms":["A101","B204"]}`), un joker (`{"teachers":"*"}`), une
correspondance de champ simple (`{"teachers":[{"email":"…"}]}`) ou le
`$where` structuré montré ici.

#### Choisir la bonne surface

- **« Où ce mot apparaît-il ? »** → `POST /api/search`.
- **« À quelle entité correspond ce nom ? »** → `POST /api/search/entity`.
- **« Donne-moi les salles de plus de 30 places, triées, première page »** → `POST /api/search/query`.
- **« Qui ou quoi est libre sur ce créneau ? »** → `GET /api/schedules/availability/…`.

#### Pour un agent IA

Ces surfaces existent en grande partie **pour les agents IA**. La
recherche plein texte et la résolution d'entité transforment la
formulation d'un utilisateur (`« enseignant Jean Dupont »`, `« classe
6A »`) en identifiants précis ; l'orchestrateur de requêtes répond
ensuite à une question filtrée en un seul appel et ne renvoie que les
champs demandés — au lieu de plusieurs appels et d'une réponse
surdimensionnée. Lorsque vous connectez un agent via
[MCP — connecter un agent IA externe](#page-integrations.mcp), ces outils font partie de ce qu'il peut
utiliser.

#### Le brancher sur un intranet, un ETL ou un outil partenaire

Ces mêmes surfaces en lecture sont ce qu'un outil tiers consomme au
quotidien. Formes courantes :

- **Un tirage vers un intranet ou un tableau de bord** — votre page
  appelle les points d'accès en lecture (disponibilité, le
  [point d'accès des séances](#page-integrations.lessons-api), les
  tableaux de bord) avec un **jeton d'API** restreint, et affiche le
  résultat. Rien à installer côté Omniscol.
- **Un ETL nocturne** — une tâche planifiée récupère ce dont elle a
  besoin (les séances sur une fenêtre de dates, les heures d'un
  enseignant, l'occupation des salles) et le charge dans votre système
  d'information. `search/query` garde chaque tirage filtré, projeté et
  paginé, pour une réponse compacte.
- **Une poussée depuis votre système** — le sens inverse, pour garder
  Omniscol aligné sur votre source de vérité : une tâche nocturne peut
  mettre à jour classes et enseignants (`POST /api/external/classes`,
  `POST /api/external/teachers`) ou charger un catalogue de matières
  personnalisées (`POST /api/admin/subjects/custom`) depuis votre base.
- **Un progiciel SIS / ERP** — pour Aurion, Auriga et consorts, le
  connecteur dédié est l'outil adapté — voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).
- **Piloté par événements** — pour être notifié d'un changement plutôt
  que d'interroger en boucle, enregistrez un **hook** — voir
  [Personnalisation d'API](#page-integrations.api-customization).

Gardez chaque intégration **restreinte** : un jeton limité aux points
d'accès réellement utiles, renouvelé régulièrement, et en lecture seule
partout où elle ne fait que lire. Voir [API Omniscol](#page-integrations.api-tokens).

#### Voir aussi

- [API des séances](#page-integrations.lessons-api)
- [API Omniscol](#page-integrations.api-tokens)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)
- [Modèle de données complet](#page-integrations.data-model-full)
- [Assistant IA intégré](#page-integrations.ai-assistant)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.lessons-api"></a>

### 9.10  L'API des séances — récupérer les séances pour n'importe quelle date

*Source: `help/fr/integrations/lessons-api.md` · id: integrations.lessons-api · Audience: admin · Plan: premium · Updated: 2026-07-11*

> **Premium**

> _Premium_

Quand quelque chose hors d'Omniscol a besoin de savoir *ce qui se passe,
et quand*, c'est ce point d'accès qu'on appelle :

```
GET /api/schedules/lessons/{datesrange}
```

Il renvoie les **séances datées** de vos emplois du temps — chaque
séance posée sur sa date réelle — pour les dates et les entités
demandées. Presque toute intégration (un intranet, un ETL, un outil
partenaire) part de là. Cette page parcourt les leviers qui en font un
seul point d'accès pour de nombreux usages.

#### Séances vs structures

Deux points d'accès, deux rôles :

- **`GET /api/schedules/lessons/{datesrange}`** — les **séances** :
  chaque séance posée sur une date réelle, avec sa matière, ses
  enseignants, sa salle, son groupe et sa durée. C'est ce qu'on lit pour
  savoir qui est où et quand.
- **`GET /api/schedules/`** — les **structures** : les emplois du temps
  publiés eux-mêmes (classes, matières, sites, la grille). À lire quand
  on a besoin du modèle sous-jacent plutôt que des séances datées.

On peut aussi replier les structures dans l'appel des séances avec
`with_timetables=true` (voir plus bas) : une seule requête renvoie alors
les deux.

#### Choisir les dates

`{datesrange}` s'écrit en `YYYYMMDD` et se veut volontairement souple :

| Forme | Signification |
| --- | --- |
| `20261005` | Un jour précis |
| `20261005-20261011` | Un intervalle fermé (une semaine) |
| `20260901-` / `-20260630` | Ouvert d'un côté |
| `20261005,20261012,20261019` | Dates **éparses** — trois lundis précis |
| `20261005-20261011,20261102-20261108` | Plusieurs intervalles à la fois |
| `` ou `-` | Toutes les dates |

La forme éparse (séparée par des virgules) est ce qui fait d'une question
comme « ces trois lundis » un seul appel.

#### Cibler ce dont vous avez besoin

Un `filter` restreint la requête aux entités qui comptent — la même
grammaire de filtre que les points d'accès de disponibilité
([Requêtage avancé](#page-integrations.advanced-queries)) :

- une simple liste d'identifiants — `{"classes":["3a","3b"]}`,
- un joker — `{"teachers":"*"}`,
- une correspondance de champ simple — `{"classrooms":[{"site":"nord"}]}`,
- ou un `$where` structuré — `{"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}`.

Le résultat est groupé **par type de filtre, puis par identifiant
d'entité** — par exemple `schedules.classes.3a.lessons[]`,
`schedules.teachers.j-doe.lessons[]`.

Le même tableau est encore servi sous son ancien nom `courses[]` pendant une
période de transition : écrivez votre intégration contre `lessons[]`.

Deux autres réglages cadrent l'extraction, et un dernier la plafonne :

- **`timetables_restrict`** / **`timetables_exclude`** — limiter ou
  exclure des identifiants d'emploi du temps (chaîne, CSV ou tableau).
- **`limit`** — plafonner le nombre de séances renvoyées par filtre.

#### À quoi ressemble une séance

Chaque entrée de `lessons[]` est une séance posée :

```json
{
  "position": { "day": "2026-10-05", "period": 0, "start": "8:15", "end": "9:10" },
  "duration": 2,
  "subject": "maths",
  "teachers": ["j-doe"],
  "classroom": "nord:B12",
  "class": "3a",
  "schedid": "3"
}
```

- **`position.day`** est la date de la séance.
- **`position.period`** est l'indice de la séance sur la grille de
  l'emploi du temps — présent pour les séances posées sur la grille. Une
  séance hors-grille (avec ses propres `start`/`end` explicites, hors des
  créneaux réguliers) porte `start`/`end` à la place, sans `period`.
- **`position.start`** / **`position.end`** (horaires) accompagnent
  toujours une séance hors-grille, et s'ajoutent aux séances de grille
  quand vous passez **`with_hours=true`** (horaires pré-calculés). À
  activer quand votre système cible a besoin des heures d'horloge plutôt
  que de l'indice de grille.

#### Absences, annulations et remplacements

Par défaut, le point d'accès **consolide les absences** : un enseignant
absent est retiré de la séance, et une séance sans enseignant restant est
considérée comme annulée et écartée. Plusieurs indicateurs changent cela :

- **`without_absences`** — ignorer complètement les absences ; renvoyer
  la grille planifiée brute.
- **`with_absences`** — ajouter les absences brutes de la période à côté
  des séances.
- **`with_cancelcourses`** — conserver les séances annulées (tous les
  enseignants absents) au lieu de les écarter.
- **`with_studentcancelcourses`** — ne garder que les séances annulées
  par l'absence d'un élève.
- **`with_removedcourses`** — renvoyer les séances retirées (exclusif
  avec `with_cancelcourses`).
- **`without_teacher_consolidation`** — garder les enseignants absents
  dans la liste `teachers` de chaque séance au lieu de les retirer.
- **`without_holidays`** — ne pas injecter les vacances dans la plage.

Par défaut, lorsqu'un remplaçant a été désigné pour une absence, il
**remplace simplement l'enseignant absent dans la liste `teachers`** de
la séance — la substitution est transparente, sans champ
supplémentaire. Passez **`with_cancelcourses`** ou
**`without_teacher_consolidation`** et la séance porte en plus un bloc
**`substitutes`** (l'identifiant du remplaçant, le motif d'absence et
l'absence qui l'a imposé), pour voir qui a été remplacé et pourquoi dans
la même charge utile.

#### Structures et annuaires

Attachez les données de référence utiles, dans le même appel :

- **`with_timetables=true`** — les structures brutes des emplois du temps
  ayant servi à calculer les séances (classes, matières, grille, par
  identifiant). À activer pour résoudre les identifiants ; à laisser
  désactivé pour une réponse compacte.
- **`with_entities=true`** — nom/code légers (et champs de nom de
  personne) des entités du résultat.
- **`with_teachers`** / **`with_all_teachers`** — les enseignants utilisés
  sur les séances, ou tous les enseignants de l'emploi du temps et de
  l'annuaire.
- **`with_students`** — les élèves, avec leurs placements par date.
- **`with_events=true`** — les événements hors grille (conseils,
  rencontres parents-professeurs…) sur la même plage.

#### Un tirage ETL nocturne

Récupérer une semaine de séances pour toutes les classes, avec les
horaires, et la charger dans votre système d'information :

```bash
curl -G "https://votre-etablissement.omniscol.com/api/schedules/lessons/20261005-20261011" \
  -H "Authorization: Bearer $OMNISCOL_TOKEN" \
  --data-urlencode 'filter={"classes":"*"}' \
  --data-urlencode "with_hours=true"
```

La réponse groupe les séances sous `schedules.classes.<id>.lessons[]`.
Les absences sont déjà consolidées : ce que vous chargez reflète l'emploi
du temps réel et à jour — ajoutez `with_absences=true` si vous voulez
aussi enregistrer la raison d'un changement.

#### Pousser vers Omniscol

L'intégration fonctionne aussi dans l'autre sens — pour garder Omniscol
aligné sur une source de vérité externe. Ces points d'accès existent
**uniquement** pour cette synchronisation externe ; l'interface Omniscol
ne les appelle jamais elle-même :

- **`POST /api/external/classes`** (`os_external_classes_post`) —
  mettre à jour des classes existantes
  (nom, site, niveau, salle, effectif) depuis une charge utile indexée
  par identifiant de classe. Il met à jour les classes connues ; il n'en
  crée pas de nouvelles. Mettez un champ à `null` pour l'effacer (le nom
  de la classe excepté — une classe garde son nom).
- **`POST /api/external/teachers`** (`os_external_teachers_post`) —
  insérer ou mettre à jour des
  enseignants par identifiant, à la fois dans les emplois du temps et
  dans l'annuaire (en créant l'utilisateur avec le rôle enseignant et un
  login auto-généré au besoin). Les variantes `DELETE` retirent une
  classe ou un enseignant.
- **`POST /api/admin/subjects/custom`** (`os_admin_subjects-custom_post`) —
  charger un **catalogue de
  matières personnalisées**. Le corps est `{ "subjects": [ … ],
  "replace": false, "nodoubles": true }` : incrémental par défaut,
  `replace: true` pour un rafraîchissement complet, `nodoubles: true`
  pour rapprocher les matières existantes par identifiant externe, code
  ou nom. C'est le point d'accès d'un push nocturne de matières.

Il existe aussi un point d'accès spécial, **uniquement surchargeable**,
`os_external_classes_get` : Omniscol n'en livre aucune implémentation par
défaut, mais lorsqu'un partenaire ou un fournisseur le pointe vers son
propre service (via [Personnalisation d'API](#page-integrations.api-customization)), l'écran de
création de classe se pré-remplit depuis cette **liste fermée de
classes** au lieu du formulaire manuel. Sans surcharge, il ne fait
simplement rien.

Pour un progiciel SIS / ERP (Aurion, Auriga…), préférez le connecteur
dédié à ces points d'accès bruts — voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Voir aussi

- [Requêtage avancé](#page-integrations.advanced-queries)
- [API Omniscol](#page-integrations.api-tokens)
- [Modèle de données complet](#page-integrations.data-model-full)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Personnalisation d'API](#page-integrations.api-customization)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.mcp"></a>

### 9.11  MCP — connecter un agent IA externe à Omniscol

*Source: `help/fr/integrations/mcp.md` · id: integrations.mcp · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Le **Model Context Protocol (MCP)** est un standard ouvert qui permet
à un assistant IA compatible MCP de consommer des outils métier
exposés par un service externe. Omniscol expose une grande partie de son API
sous forme de **serveur MCP** : un agent IA peut interroger votre compte
avec les points d'accès API ou permissions autorisés, une fois
authentifié — par OAuth2, le mode standard de MCP, ou par un jeton.

#### Ce que l'agent peut faire

L'agent MCP fonctionne très bien sur les **questions de
consultation** où la donnée est dans Omniscol :

- *« Donne-moi le taux d'occupation des salles par rapport aux
  horaires d'ouverture cette semaine. »*
- *« Trouve-moi une salle disponible trois lundis d'octobre sur le
  même créneau de 2 heures. »*
- *« Combien d'heures de cours Jean Dupont a-t-il données sur
  l'année scolaire courante ? »*
- *« Quels sont tous les cours de maths d'aujourd'hui ? »*
- *« Liste les professeurs qui ont fait moins de 70 % de leurs heures de
  service ce trimestre. »*

Ces requêtes croisent typiquement plusieurs outils : EDT, tableaux de bord
statistiques, disponibilités calculées, fiches professeurs. L'agent
orchestre les appels et formule la réponse en langage naturel.

#### Les outils exposés

Le serveur MCP construit ses outils à partir des routes API Omniscol
autorisées pour MCP. Les routes ignorées explicitement, et certains modules
techniques (par exemple, relatifs à l'authentification des utilisateurs)
ne deviennent pas des outils. La liste reflète donc l'API exposée au MCP,
pas l'intégralité interne de l'application. C'est cependant une très grande
partie. Qui plus est, il existe un certain nombre de routes dédiées au MCP et
non utilisées par Omniscol. C'est le cas d'outils de recherche avancée pour
que le texte libre désignant une entité ("professeur Jean Dupont", "classe 6A")
soit retrouvée par Omniscol avec son identifiant technique servant ensuite à
requéter précisément les données. C'est aussi le cas d'outils complexes où
Omniscol ne possède pas d'interface graphique, parce que cela se prête mieux
à du prompt : la recherche d'occupation et de disponibilité d'entité, par
exemple ("trouve-moi une salle disponible pour 2 heures l'après-midi 3 lundi
d'affilée", "est-ce qu'un professeur de maths est disponible la semaine du
14 octobre pour 3 heures ?").

Les outils couvrent notamment :

- module **Administration** (utilisateurs, matières, années scolaires, paramètres),
- module **Gestion des EDT** (configuration, sites, salles, classes, cours),
- module **EDT** (planning, tableaux de bord, recherches),
- module **Gestion des absences** (déclaration, statistiques),
- recherche globale.

Les routes de lecture sont les plus adaptées à un usage agentique.
Certaines opérations d'écriture peuvent exister dans le catalogue, selon
les droits du jeton et l'API disponible, mais elles doivent rester
encadrées : une requête qui modifie plusieurs objets métier doit être
vérifiée par un utilisateur avant d'être considérée comme fiable.

#### Activer le serveur MCP

Le serveur MCP est disponible sur les comptes **Premium**. Tout part de
l'**écran MCP**, ouvert depuis le module **Administration** avec
**Configurer** : il affiche l'**URL du
serveur** selon le périmètre choisi (global ou restreint à un module) et
fournit, prêts à copier, les éléments de configuration de votre client.

**L'authentification standard de MCP est OAuth2.** Un client compatible
(comme Claude) se connecte simplement à l'URL du serveur, y découvre la
configuration OAuth2 du compte, et l'utilisateur approuve l'accès via un
écran de consentement : il n'y a **rien d'autre à fournir que l'URL**. Le
périmètre accordé suit les droits du compte et ses restrictions de
visibilité. Le serveur OAuth2 d'Omniscol, son écran de gestion des clients
et le détail du consentement sont décrits sur [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server).

Pour un client qui ne gère pas OAuth2, le même écran génère un **jeton**
(clé API, expiration, utilisateur associé optionnel, droits d'écriture à
cocher) puis propose, prêts à coller, les formats utiles selon le cas :
en-tête `Authorization: Bearer`, URL avec jeton, bloc de configuration
**Claude Desktop** (mode gratuit) et commande de proxy local. Le jeton
s'appuie sur le système de clés décrit dans [API Omniscol](#page-integrations.api-tokens).

#### Bonnes pratiques de sécurité

- **Authentification OAuth2** — plus pratique et à préférer quand
  votre agent le supporte (Claude version payante).
- **Jeton dédié à l'IA** — créez un jeton avec un libellé
  parlant (`Agent IA — Claude desktop`) que vous pouvez révoquer si
  nécessaire.
- **Périmètre minimal** — avec un jeton API, ne sélectionnez que les
  points d'accès API nécessaires. Avec un jeton OAuth, limitez les scopes au
  besoin réel.
- **Journaux d'activité (logs)** — un appel apparaît dans les journaux
  associés au jeton lorsque la route concernée est journalisée. Ces
  journaux tracent l'appel ; ils ne conservent ni le détail des données
  renvoyées ni le contenu rejouable de la requête.
- **Restrictions de visibilité** — l'agent voit ce qu'Omniscol lui
  renvoie. Si vous avez configuré des restrictions de visibilité
  strictes pour le rôle du jeton, elles s'appliquent.

#### Procédure — Connecter Claude à Omniscol

La voie recommandée est l'**authentification OAuth2** : vous branchez
Claude sur le serveur MCP par son URL, sans manipuler de jeton.

1. **Activez le serveur MCP** sur votre compte Premium et récupérez son
   URL (typiquement `https://votre-ecole.omniscol.com/mcp`). L'écran MCP
   (module **Administration**, bouton
   **Configurer**) l'affiche selon le
   périmètre choisi, avec un bouton de copie.
2. **Ajoutez Omniscol comme connecteur dans Claude.** Dans les réglages
   de connecteurs de Claude, ajoutez un connecteur personnalisé et
   collez l'URL du serveur MCP Omniscol.
3. **Approuvez l'accès.** Claude vous redirige vers l'écran de
   consentement Omniscol : connectez-vous et autorisez l'accès. Le
   périmètre accordé suit les droits de votre compte et les
   restrictions de visibilité éventuelles.
4. **Les outils apparaissent dans Claude**, qui les appelle quand votre
   requête s'y prête.
5. **Premier test** : *« Combien d'heures de cours Jean Dupont a-t-il
   données cette année ? »* — Claude croise les données accessibles et
   répond en langage naturel.

**Méthode alternative par jeton.** Pour un client MCP qui ne gère pas
OAuth2, générez un jeton dédié depuis l'écran MCP (libellé parlant,
points d'accès limités au besoin réel, droits d'écriture cochés
explicitement) et transmettez-le en en-tête `Authorization: Bearer`.
L'écran MCP fournit le bloc de configuration correspondant. Préférez
OAuth2 dès que votre client le prend en charge.

#### Voir aussi

- [Assistant IA intégré](#page-integrations.ai-assistant)
- [API Omniscol](#page-integrations.api-tokens)
- [Requêtage avancé](#page-integrations.advanced-queries)
- [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.ai-assistant"></a>

### 9.12  Assistant IA intégré

*Source: `help/fr/integrations/ai-assistant.md` · id: integrations.ai-assistant · Audience: admin · Status: stable · Updated: 2026-06-28*

L'**assistant IA intégré** est la surface de conversation d'Omniscol
pour poser une question en langage naturel depuis l'interface. Il
s'ouvre dans l'onglet **Agent IA**
du panneau d'aide, réservé aux administrateurs.

L'assistant s'appuie sur le corpus d'aide et, selon le contrat du
compte, sur les outils Omniscol exposés à l'agent. Le périmètre dépend
du compte : un assistant documentaire répond à partir de l'aide en
ligne, et les comptes dont le contrat le prévoit ajoutent l'accès à des
outils métier qui interrogent les données du compte.

Pour connecter un agent IA externe à votre compte, utilisez
[MCP — connecter un agent IA externe](#page-integrations.mcp).

#### Ce que l'assistant couvre

L'assistant est conçu pour deux familles de demandes :

- **questions documentaires** — retrouver une procédure, expliquer un
  concept, pointer vers la bonne page d'aide ;
- **questions opérationnelles** — interroger les données du compte via
  les outils autorisés, par exemple sur les cours, salles, professeurs,
  absences ou statistiques.

Exemples :

- *« Comment publier un emploi du temps ? »*
- *« Où configurer les liens iCal ? »*
- *« Quels cours de maths sont prévus aujourd'hui ? »*
- *« Pourquoi cette génération d'EDT laisse-t-elle des séances non
  positionnées ? »*

#### Droits et périmètre

L'assistant n'a pas un accès illimité au compte.
Ses réponses et ses actions dépendent :

- du contrat du compte, qui détermine si les outils métier sont activés ;
- des droits de l'administrateur connecté ;
- des outils effectivement exposés à l'agent ;
- des données disponibles dans Omniscol.

Une action qui modifie des données métier passe par une confirmation
explicite avant d'être appliquée. Pour les intégrations agentiques
externes, utilisez [MCP — connecter un agent IA externe](#page-integrations.mcp) et des jetons dédiés.

#### Bonnes pratiques

- Vérifiez les actions proposées avant de les appliquer.
- Ne copiez pas de données sensibles dans une conversation si elles ne
  sont pas nécessaires à la demande.
- Pour un agent externe, créez un jeton dédié avec un périmètre minimal
  et une expiration adaptée.

#### Voir aussi

- [MCP — connecter un agent IA externe](#page-integrations.mcp)
- [API Omniscol](#page-integrations.api-tokens)
- [Plans et options Omniscol](#page-overview.plans-and-options)

<a id="page-integrations.oauth2"></a>

### 9.13  OIDC / SSO — connexion via fournisseur d'identité

*Source: `help/fr/integrations/oauth2.md` · id: integrations.oauth2 · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

OpenID Connect (OIDC), construit sur OAuth2, permet à vos utilisateurs de se
connecter à Omniscol **avec leur compte d'entreprise** plutôt qu'avec
un mot de passe Omniscol dédié. Trois bénéfices : un seul mot de passe
à retenir, désactivation centralisée à l'arrivée / au départ d'un
collaborateur, application automatique de la politique de sécurité
(MFA, longueur de mot de passe, expiration…) gérée côté SI.

Cette page décrit le **SSO utilisateur** : la connexion des personnes à
Omniscol via votre fournisseur d'identité. Le cas inverse — Omniscol
**serveur** OAuth2 / OIDC auquel des services tiers se connectent, avec
son écran de gestion des clients — est traité sur
[OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server).

#### Fournisseurs supportés

Omniscol prend en charge :

- **Google Workspace**,
- **Microsoft Entra ID** (anciennement Azure AD),
- **Keycloak**,
- un fournisseur **OIDC générique** via son issuer / discovery URL
  (tout fournisseur conforme OIDC).

#### Configurer côté Omniscol

Dans **Administration** → **Paramètres**, section
**Sécurité**, le bouton **Configurer**
ouvre l'écran de configuration OIDC, qui permet de déclarer le
fournisseur :

- **Nom affiché** — le libellé qui apparaîtra sur le bouton de
  connexion (par exemple `Continuer avec Google`).
- **Type de fournisseur** — Google, Microsoft Entra ID (Azure AD),
  Keycloak ou OIDC générique.
- **Tenant / issuer** — tenant Microsoft pour Entra ID, ou URL issuer
  pour Keycloak et les fournisseurs OIDC génériques. Les métadonnées
  OIDC sont ensuite découvertes par l'application.
- **Client ID** et **Client secret** — obtenus en créant une
  application côté fournisseur (cf. documentation du fournisseur).
- **Scopes** — par défaut `openid profile email`. Ajouter les scopes
  spécifiques au fournisseur si besoin.
- **Domaines autorisés** — liste optionnelle de domaines de
  messagerie acceptés à la connexion SSO ; laissée vide, aucun
  filtrage par domaine n'est appliqué.
- **URL de redirection** — Omniscol vous donne la valeur exacte à
  copier dans la configuration côté fournisseur (ainsi que l'URL de
  redirection post-déconnexion si le fournisseur la demande).
- Connexion uniquement par SSO — une fois le SSO validé, cette option refuse
  la connexion par mot de passe Omniscol, sauf pour les **comptes de
  secours** décrits ci-dessous.

La configuration SSO courante est définie au niveau du compte école.

#### Accès de secours (break-glass)

En mode **Connexion uniquement par SSO**, la connexion par mot de passe
Omniscol est refusée : tout le monde passe par le fournisseur d'identité.
Si ce fournisseur devient indisponible — panne, secret expiré, erreur de
configuration — l'accès à Omniscol serait bloqué pour tous.

Le **compte de secours (« break-glass »)** est le garde-fou contre ce
blocage : un compte **administrateur** autorisé à se connecter par mot de
passe Omniscol même lorsque le mode SSO exclusif est actif.

- Dans la fiche d'un compte **administrateur**, lorsque l'option
  **Connexion uniquement par SSO** est active, une case
  **Break-glass (SSO only)** apparaît. La cocher autorise ce compte à se
  connecter par mot de passe si le fournisseur d'identité est
  indisponible. Seuls les comptes administrateurs peuvent l'être.
- Le support Omniscol conserve par ailleurs un accès de secours
  indépendant.

Désignez au moins un compte de secours **avant** d'activer le mode SSO
exclusif, et conservez son mot de passe en lieu sûr : c'est votre filet
de sécurité si le fournisseur d'identité tombe.

#### Configurer côté fournisseur (exemples)

##### Google Workspace

1. Console Google Cloud > **APIs & Services > Credentials**.
2. **Créer un identifiant OAuth 2.0**, type **Application Web**.
3. Coller l'URL de redirection fournie par Omniscol dans **Authorized
   redirect URIs**.
4. Récupérer le **Client ID** et le **Client secret** pour les coller
   dans Omniscol.

##### Microsoft Entra ID

1. Portail Azure > **Entra ID > App registrations**.
2. **New registration**, type **Web**, URL de redirection Omniscol.
3. **Certificates & secrets** > créer un client secret.
4. **API permissions** > ajouter `openid`, `profile`, `email`.
5. Récupérer **Application (client) ID** et le secret.

##### Keycloak

1. Realm > **Clients > Create client**, type **OpenID Connect**.
2. **Valid redirect URIs** : URL fournie par Omniscol.
3. **Credentials** > récupérer le client secret.

#### Faire le lien avec les comptes Omniscol

Quand un utilisateur clique sur le bouton SSO, Omniscol :

1. Le redirige vers le fournisseur,
2. Récupère son adresse e-mail après authentification,
3. Cherche un compte Omniscol avec **la même adresse e-mail**.

Si le compte existe et qu'il est actif, l'utilisateur est connecté.
Sinon, l'accès est refusé. Conséquence : pour que SSO fonctionne, les
utilisateurs doivent exister dans Omniscol avec la bonne adresse
e-mail — la création n'est pas automatique côté Omniscol par défaut.

#### Provisioning automatique des comptes

La création automatique de comptes à la première connexion SSO
(`just-in-time provisioning`) n'est pas le comportement par défaut de
l'écran de configuration. Si ce mode est nécessaire, il doit être cadré
avec Omniscol.

#### Procédure — Configurer un fournisseur OIDC / SSO

1. **OIDC / SSO** permet à vos utilisateurs de se connecter avec
   leur compte d'entreprise (Google Workspace, Microsoft Entra ID,
   Keycloak, Okta…). La partie côté fournisseur dépend du fournisseur.
2. **Côté fournisseur**, créez d'abord une application OIDC
   **Application Web** : récupérez le **Client ID** et le **Client
   secret**, copiez l'**URL de redirection** fournie par Omniscol
   dans les *Authorized redirect URIs* du fournisseur.
3. **Côté Omniscol**, ouvrez les paramètres puis la configuration OIDC.
   Renseignez le **nom affiché** (libellé du bouton de connexion), le type
   de fournisseur, l'issuer ou le tenant selon le cas, le Client ID, le
   Client secret et les **scopes** (défaut : `openid profile email`).
4. **Cliquez sur Tester.** Vérifiez que la
   configuration fonctionne. Omniscol fait un aller-retour OIDC ; en
   cas d'erreur de discovery, de secret ou de redirection, le message
   d'erreur est explicite.
5. **Sauvegardez.** Le bouton de connexion SSO apparaît sur la page de
   connexion lorsque la configuration est active.
6. **Important : les comptes doivent exister** dans Omniscol avec la
   bonne adresse e-mail. La connexion SSO matche par e-mail ; pas de
   provisioning automatique par défaut.

#### Voir aussi

- [Première connexion](#page-getting-started.first-login)
- [Utilisateurs et rôles](#page-admin.users-and-roles)
- [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.extsync"></a>

### 9.14  Synchronisation avec des systèmes externes (ERP)

*Source: `help/fr/integrations/extsync.md` · id: integrations.extsync · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

Omniscol s'interface avec les ERP et SI externes des établissements
via un framework unifié de **synchronisation**. Omniscol y joue
le rôle de **point central** : c'est lui qui pilote les imports et
les exports, tandis que le système externe reste la source de vérité
administrative.

La synchronisation avec des systèmes externes est disponible sur les
comptes **Premium**, lorsqu'un connecteur est configuré pour le
compte. Ce qui se traite **sur projet**, c'est l'ajout d'un nouvel
ERP ou d'un nouveau SI non déjà supporté, avec cadrage du mapping et des
flux.

#### Modèle de flux

Le framework couvre deux sens de circulation :

- **Entités (entrant)** — Omniscol peut récupérer depuis l'ERP les
  professeurs, matières, salles, classes, étudiants et leurs identifiants
  externes, selon le connecteur et la configuration. Les références
  ext-id sont conservées dans Omniscol pour les rapprochements.
- **Séances de cours (sortant)** — Omniscol pousse les séances
  produites par sa planification vers l'ERP, avec les références
  ext-id correctes. Selon le connecteur, l'export peut être déclenché
  à la demande, planifié, ou rejoué en batch complet pour rattraper
  des divergences.

Omniscol orchestre les imports et exports configurés, conserve les
identifiants externes, gère les passes de synchronisation et expose
des écrans de vérification pour rapprocher les données entre
Omniscol et le système externe.

#### Source et droits de création locale

Pour chaque type d'entité (professeurs, matières, salles, etc.), vous
sélectionnez le système source et indiquez si la création locale et la
mise à jour locale restent autorisées. L'écran expose aussi un bouton
d'**Association** pour
rapprocher une entité Omniscol locale avec une entité ERP lorsque
les deux existent déjà.

#### Pontage des ontologies

Chaque ERP a son propre vocabulaire (par exemple « matière » en
Omniscol = **Unité Pédagogique** dans Auriga = **Cours** dans
Aurion). Le framework gère le **mapping** : c'est Omniscol qui
relie les concepts d'un côté à ceux de l'autre, vous n'avez pas à
réécrire votre nomenclature.

#### Connecteurs disponibles

##### Disponibles

- **Aurion** — connecteur disponible en production. ERP **édité par la société
  Auriga**, particulièrement utilisé en enseignement supérieur
  français (écoles d'ingénieurs, de commerce). Voir
  [Connecteur Aurion](#page-integrations.aurion).
- **Auriga** — connecteur disponible en production. **Auriga le logiciel** est
  l'évolution full-web d'Aurion, par la même société. Voir
  [Connecteur Auriga](#page-integrations.auriga).

##### Standard d'annuaire

- **OneRoster** — au lieu d'un connecteur propre à un éditeur, Omniscol
  prend en charge le standard international **OneRoster** (1.2 et groupes
  avancés) pour échanger un annuaire scolaire avec un SIS, un ENT ou un
  LMS conforme. L'import d'un annuaire OneRoster relève de cette
  synchronisation Premium ; l'export, lui, est servi en lecture seule et
  contrôlé par scopes OAuth2. Voir [OneRoster](#page-integrations.oneroster).

##### Sur demande

Tout ERP / SI exposant une **API documentée** pour les actions
d'import / export et une **sandbox** de travail peut être intégré
sur projet. Contactez le support Omniscol pour cadrer l'ajout d'un
nouveau connecteur.

#### Différence avec les systèmes qui interrogent Omniscol

Certains systèmes peuvent aussi consommer Omniscol via les points d'accès API
**GET** de l'API publique : dans ce cas, Omniscol n'orchestre pas une
synchro ERP, le système tiers interroge seulement les données auxquelles
son jeton donne accès. Ce modèle est différent de la synchronisation
orchestrée par Omniscol :

| Modèle | Qui orchestre ? | Sens | Exemple |
| --- | --- | --- | --- |
| **Synchronisation avec des systèmes externes** | Omniscol | Bidirectionnel (entités in, séances out) | Auriga, Aurion |
| **Partner pull** | Le partenaire | Le partenaire fait du GET | Connecteur tiers via API |

Le modèle partner-pull n'a pas besoin de configuration de
synchronisation avec des systèmes externes :
l'API publique et les jetons d'authentification suffisent. Voir
[API Omniscol](#page-integrations.api-tokens).

#### Configuration

Une configuration de synchronisation avec des systèmes externes demande
typiquement une session avec le
support Omniscol pour :

1. **Lister les objets à synchroniser** — utilisateurs, classes,
   intervenants, matières, salles, etc.
2. **Calibrer le mapping ontologique** — quel concept ERP
   correspond à quel concept Omniscol.
3. **Définir l'exclusivité** par type d'entité.
4. **Programmer la fréquence** des passes (à la demande, horaire,
   quotidienne, plus pour le rattrapage des divergences).
5. **Tester sur une sandbox** ERP avant la mise en service.

#### Vérifications et opérations courantes

- **Vérification** des favoris ou datasets configurés, selon le
  connecteur.
- **Déclenchement manuel** d'un export de séances depuis l'écran
  d'administration.
- **Export complet planifié** lorsque l'option est configurée dans le
  bloc d'export.
- **XML Pivot Aurion** lorsque le connecteur Aurion est utilisé.
- **Vérification des rapprochements** : les écrans d'association
  signalent les entités à appairer ou à corriger.

#### Procédure — Vérifier et déclencher une synchro

1. **Une fois la synchronisation configurée** par le support Omniscol,
   les opérations courantes se font depuis l'écran d'administration :
   vérifier les favoris/datasets, appairer les entités, déclencher un
   export ponctuel, télécharger le pivot Aurion si disponible, ou purger
   l'état d'export en cas de bascule.
2. **Dans la configuration du système**, utilisez les boutons
   **Vérifier** des favoris ou datasets renseignés. Omniscol récupère
   les données du connecteur et signale les erreurs de configuration ou
   de format lorsque le connecteur les remonte.
3. **Pour pousser immédiatement** les séances vers l'ERP sans
   attendre la prochaine passe planifiée, cliquez sur
   **Déclencher**.
   Utile après une modification urgente.
4. **Avec Aurion**, le bouton
   **XML Pivot**
   télécharge un fichier que l'administrateur ERP injecte manuellement via
   la console de l'ERP lorsque ce mode est retenu.
5. **En cas de bascule majeure** (changement de structure, fin
   d'année), le bouton
   **Purge Omniscol**
   supprime **côté ERP** toutes les séances de cours qu'Omniscol y a
   exportées, pour repartir de zéro. L'action vise le connecteur
   sélectionné et elle est **irréversible** : à n'utiliser qu'après un
   accord du support.

#### Voir aussi

- [Connecteur Aurion](#page-integrations.aurion)
- [Connecteur Auriga](#page-integrations.auriga)
- [OneRoster](#page-integrations.oneroster)
- [API Omniscol](#page-integrations.api-tokens)
- [Import et export](#page-admin.import-export)
- [Vue d'ensemble des intégrations](#page-integrations.overview)

<a id="page-integrations.oneroster"></a>

### 9.15  OneRoster (1.2 et groupes avancés)

*Source: `help/fr/integrations/oneroster.md` · id: integrations.oneroster · Audience: admin · Plan: standard · Updated: 2026-06-29*

OneRoster est un standard international d'échange d'annuaires scolaires
(édité par 1EdTech) : il décrit, dans un format commun, les
**établissements**, les **années scolaires**, les **enseignements**, les
**classes**, les **inscriptions** et les **utilisateurs** d'une école. Il
sert à raccorder un SIS, un ENT ou un LMS à un autre outil sans
ressaisie ni format propriétaire.

Cette page s'adresse à la **direction des systèmes d'information (la SI)**
de l'établissement. Elle décrit ce qu'Omniscol expose et consomme en
OneRoster, l'authentification attendue, et le périmètre réel de chaque
sens d'échange.

#### Versions prises en charge

Omniscol prend en charge **OneRoster 1.2 Rostering** — le socle (Org,
AcademicSession, Course, Class, Enrollment, User, Demographics) — ainsi
que la couche **OR-Groups (Advanced Groups Service)**, le standard de
groupes additif qui ajoute trois entités (Group, GroupMembership,
GroupAssociation) au-dessus de la 1.2.

La couche OR-Groups est un **standard en cours de publication**. Elle est
strictement additive sur la 1.2 : un Group ne fait que **référencer** les
Class / User / Org / AcademicSession de la 1.2, en lecture seule. La
version 1.3 de OneRoster est annoncée pour faire de Class une
spécialisation de Group — orientation avec laquelle l'implémentation
d'Omniscol converge déjà.

#### Omniscol producteur (Omniscol → ENT / LMS)

En **producteur**, Omniscol expose l'annuaire de l'établissement en
**lecture seule**, via une API REST conforme OneRoster, pour qu'un ENT ou
un LMS le lise.

- Le socle Rostering 1.2 est servi sous
  `/ims/oneroster/rostering/v1p2/…` (par exemple `/orgs`, `/schools`,
  `/academicSessions`, `/courses`, `/classes`, `/enrollments`, `/users`,
  `/teachers`, `/students`, `/demographics`, chacun avec ses variantes
  imbriquées).
- La couche groupes est servie sous `/ims/oneroster/groups/v1p0/…`
  (`/groups`, `/groupMemberships`, `/groupAssociations` et leurs
  variantes imbriquées).
- Le périmètre est l'année scolaire **courante** par défaut ; un
  paramètre permet de cibler une autre année ou de couvrir toutes les
  années.

Les données reflètent la planification consolidée d'Omniscol (emplois du
temps actifs / publiés). Le producteur est **en lecture seule par
choix** : aucune écriture (PUT / DELETE) n'est exposée — un système
distant ne pilote pas la création ou la suppression d'entités dans
Omniscol.

##### Authentification du producteur

Les points d'accès du producteur sont protégés par **OAuth2 en flux
`client_credentials`** (jeton de machine à machine, sans utilisateur),
émis par le serveur OAuth2 d'Omniscol. Ils ne sont **pas** réservés aux
comptes Premium : l'accès est contrôlé par les **scopes** OAuth2, pas par
l'offre. Chaque scope est spécifique à un service, et l'accès aux données
démographiques est cloisonné à l'intérieur de la 1.2 :

| Points d'accès | Scopes acceptés |
| --- | --- |
| Rostering 1.2 (hors démographie) | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly` |
| Rostering 1.2 `/demographics` | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly` |
| OR-Groups (tous) | `https://purl.imsglobal.org/spec/or-groups/v1p0/scope/roster-group.readonly` |

Un jeton OR-Groups ne donne pas accès au socle Rostering, et
réciproquement. Aucun scope d'écriture n'est annoncé. Les scopes
privilégiés sont attribués par l'administration Omniscol au moment de
l'enregistrement du client OAuth2 ; un client ne peut pas se les
auto-attribuer. La gestion des clients OAuth2 et des jetons est décrite
sur [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server) et [API Omniscol](#page-integrations.api-tokens).

##### Le périmètre des élèves est porté par la couche groupes

Choix structurant : la liste des élèves d'une classe ou d'un groupe est
exposée via **OR-Groups** (GroupMembership), pas par le socle 1.2 seul.
Un consommateur qui ne lit que la Rostering 1.2 obtient le catalogue
(Courses, Classes), les inscriptions professeur → cours et l'annuaire des
utilisateurs, mais **pas** l'appartenance des élèves. Pour savoir qui est
dans quelle classe ou quel groupe, le consommateur doit implémenter la
couche OR-Groups. Ce choix reflète le modèle français : un élève est
inscrit dans une **classe** ou un **groupe**, pas matière par matière.

Le producteur s'expose en REST. Le format **bundle CSV OneRoster**
(archive zip d'un fichier par collection), lui, est pris en charge côté
import, pour les fournisseurs qui livrent leur annuaire par fichier
plutôt que par API — voir la section consommateur ci-dessous.

#### Omniscol consommateur (SIS → Omniscol)

> _Premium_

En **consommateur**, Omniscol importe l'annuaire d'un SIS conforme
OneRoster et le réconcilie dans l'établissement. Cette configuration de
consommation fait partie de la **synchronisation avec des systèmes
externes** : elle est disponible sur les comptes **Premium** et se cadre
sur projet avec l'équipe Omniscol (voir [Synchronisation avec des systèmes externes](#page-integrations.extsync)).

- **Transport** — soit l'**API REST** du fournisseur (l'adresse de base
  est configurée, la pagination standard OneRoster est suivie), avec
  authentification OAuth2 en flux `client_credentials` contre le serveur
  du fournisseur ; soit un **bundle CSV** (archive zip).
- **Profil** — un profil de configuration indique l'étendue à lire :
  socle 1.2 seul, couche groupes, ou cartographie française pour
  l'enseignement scolaire. Un
  fournisseur purement 1.2, sans service de groupes, s'importe
  proprement.
- **Application contrôlée** — l'import suit le même principe que les
  autres connecteurs : Omniscol récupère puis réconcilie les données, et
  un **administrateur valide** l'application à l'établissement. Le système
  distant ne pousse jamais directement dans Omniscol.
- **Réimports idempotents** — les correspondances d'identifiants externes
  sont conservées, si bien qu'un réimport ne crée pas de doublons même
  quand le fournisseur renomme un libellé.

#### Profil français (enseignement scolaire)

Le **profil français pour l'enseignement scolaire** met en correspondance les notions françaises
avec le modèle OneRoster : une **division** (la classe au sens
effectif) devient un Group de type organisationnel principal ; un
**groupe** devient un Group de diffusion pédagogique ; un **groupe de
groupes** un Group transversal ; les **partitions** et **alignements**
deviennent des associations de groupes ; une affectation d'un
**professeur** à un cours devient une inscription
professeur. Les identifiants comme l'INE ou l'identifiant agent sont
portés dans les `userIds` de l'utilisateur.

#### Identifiants et confidentialité

Chaque entité exposée porte un identifiant stable, le `sourcedId`.

- Les identifiants **structurels** (établissement, année, enseignement,
  classe, groupe) sont stables et immuables d'un export à l'autre : un
  consommateur peut s'y fier pour corréler les données dans le temps.
- L'identifiant de l'**utilisateur** est **anonymisé** : Omniscol ne met
  jamais son propre identifiant nominatif sur le fil. Le jeton mis sur le
  fil est dérivé par une fonction à sens unique (HMAC) propre au compte ;
  les inscriptions et appartenances réutilisent ce jeton sans jamais
  exposer l'identifiant d'origine.

#### Statut

- **Producteur** — disponible et démontrable sans partenaire distant
  (l'export se suffit à lui-même). Rostering 1.2 et la couche OR-Groups
  sont servis en lecture seule, avec authentification OAuth2.
- **Consommateur** — la configuration d'import fait partie de la
  synchronisation Premium. La mise en service d'une synchronisation
  **en direct** avec un SIS dépend du fournisseur et, le cas échéant, des
  calendriers ministériels : elle se cadre **sur demande**, connecteur
  par connecteur. Il ne s'agit pas d'une synchronisation clés en main
  immédiate.

#### Voir aussi

- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [OAuth2 / OIDC (fournisseur)](#page-integrations.oauth-server)
- [API Omniscol](#page-integrations.api-tokens)
- [Modèle de données complet](#page-integrations.data-model-full)
- [Partenaires](#page-integrations.partners)

<a id="page-integrations.linked-accounts"></a>

### 9.16  Comptes liés et ressources partagées

*Source: `help/fr/integrations/linked-accounts.md` · id: integrations.linked-accounts · Audience: admin · Updated: 2026-06-13*

Les **comptes liés** relient **plusieurs comptes Omniscol distincts —
donc plusieurs établissements** — qui partagent, dans la réalité, des
**professeurs et des salles**. Le lien rend visible, d'un compte à
l'autre, l'**occupation** de ces ressources communes : quand vous
consultez ou construisez un emploi du temps, Omniscol remonte les
séances des comptes liés qui portent sur un professeur ou une salle que
vous partagez, et les signale comme déjà occupés. Vous évitez ainsi de
réserver deux fois la même personne ou la même salle, sans avoir à
appeler l'autre établissement. C'est une option activée sur demande par
l'équipe Omniscol.

Chaque compte reste **totalement autonome** : il garde ses utilisateurs,
ses paramètres, ses années scolaires et son périmètre administratif.

#### Ce que le lien partage

- **Partagé** : l'**occupation** des professeurs et des salles présents
  dans les deux comptes. C'est elle qui alimente les vues d'occupation et
  la détection de conflits entre comptes.
- **Hors partage** : les utilisateurs, les élèves, les classes, les
  paramètres et les données administratives propres à chaque compte.
  Voir un créneau occupé n'ouvre pas l'accès au détail de l'autre compte.

Le rapprochement est **automatique** : Omniscol reconnaît un même
professeur par son nom (la date de naissance départage les homonymes) et
une même salle par le nom de son site et de la salle. Pour qu'il
fonctionne, ces professeurs et ces salles doivent donc porter les
**mêmes intitulés** dans chaque compte.

#### Cas d'usage

Tous mettent en jeu **plusieurs établissements distincts**, chacun avec
son propre compte Omniscol :

- Un **groupe d'écoles** qui mutualisent des professeurs ou des salles —
  par exemple un réseau d'établissements d'une même ville.
- Des **établissements juridiquement séparés** installés dans le même
  bâtiment, et qui se partagent donc les salles.
- Un campus où **plusieurs entités** (école d'ingénieurs, école de
  commerce…), gérées sur des comptes distincts, utilisent les mêmes
  amphithéâtres et les mêmes intervenants.

#### Activation

Les comptes liés se cadrent avec l'équipe Omniscol, car il faut décider
ensemble :

- quels comptes sont reliés ;
- quelles ressources communes — professeurs, salles — sont partagées ;
- l'harmonisation des intitulés des professeurs et des salles communs,
  sur lesquels repose le rapprochement automatique ;
- quel compte reste responsable de chaque donnée ;
- comment traiter les conflits détectés entre périmètres.

Une fois l'option active, l'occupation partagée apparaît dans les vues
d'occupation et alimente la détection de conflits entre comptes, sans
autre manipulation de votre part.

#### Activer ou désactiver une synchronisation

Quand un emploi du temps est synchronisé avec d'autres EDT actifs — du
même compte ou de comptes liés — un bouton
**Synchronisation**
apparaît : en **mode réorganisation** d'un emploi du temps, ainsi qu'en
**édition d'un EDT calendrier**, sur les **dates partagées**. Il ouvre la
liste de ces synchronisations : chaque **autre EDT actif** du compte et
chaque **compte lié** qui partage des professeurs ou des salles.

Toutes sont **actives par défaut**. Décochez-en une pour **cesser de
tenir compte** de l'occupation de cet EDT ou de ce compte dans la vue
courante, puis recochez-la pour la réactiver. Le bouton n'apparaît que
lorsqu'il existe au moins une synchronisation à gérer.

#### Cas voisin : plusieurs EDT actifs dans un seul compte

Les comptes liés coordonnent des établissements distincts ; le même
besoin se présente aussi **à l'intérieur d'un seul compte**, quand un
établissement fait tourner **plusieurs EDT actifs en parallèle**. Le
même principe d'occupation partagée empêche alors qu'une salle, un
professeur ou une **classe** soit réservé deux fois par deux EDT
simultanés.

C'est typiquement le cas d'une **organisation multi-programmes** aux
rythmes différents — un EMBA sur 18 mois, une Grande École en semestres
calendaires, une prépa en EDT hebdomadaire — qui partage salles et
intervenants entre ses programmes ; ou d'une **classe à cheval sur deux
calendriers**, avec une organisation récurrente le matin et ponctuelle
l'après-midi.

Cette coordination est incluse de base en **Premium** et peut,
exceptionnellement, être activée sur un compte Standard après cadrage
avec Omniscol. Voir [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

#### Voir aussi

- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)

<a id="page-integrations.aurion"></a>

### 9.17  Connecteur Aurion

*Source: `help/fr/integrations/aurion.md` · id: integrations.aurion · Audience: admin · Plan: premium · Updated: 2026-05-12*

> **Premium**

> _Premium_

**Aurion** est un ERP/SI scolaire **édité par la société Auriga**,
largement utilisé en enseignement supérieur français (écoles
d'ingénieurs, écoles de commerce, certaines universités).
*Auriga le logiciel* — proposé par la même société — est
l'évolution full-web d'Aurion ; il a son propre
[connecteur Auriga](#page-integrations.auriga).

Le connecteur Aurion s'inscrit dans le framework
[Synchronisation avec des systèmes externes](#page-integrations.extsync) :
Aurion reste la source de vérité administrative (étudiants,
parcours, scolarité), Omniscol prend la main sur la planification
et rend les séances à Aurion.

> **Omniscol construit et optimise l'emploi du temps ; Aurion reste le
> système d'information.** Omniscol s'interface avec Aurion, il ne le
> remplace pas. Aurion est l'ERP de l'établissement — groupes,
> intervenants, cours, salles… ; la construction d'un emploi du temps
> optimisé, elle, revient à Omniscol. Il reprend les données de référence
> d'Aurion, en tire un emploi du temps qui respecte vos contraintes, puis
> lui renvoie les séances. Les trois modes d'usage décrits ci-dessous
> reposent tous sur cette répartition des rôles.

#### Trois modes d'usage

##### 1. Peuplement one-shot pour POC

Pour démarrer rapidement (validation, démo, POC), Aurion peut
exporter via un **gros favori d'interventions** qu'Omniscol consomme
en bloc pour reconstituer la structure (matières, classes, groupes,
salles, intervenants) puis y planifier. Ce favori est documenté
par l'interface Omniscol.

C'est le mode **bac à sable** : pas de retour des séances vers
Aurion, le compte Omniscol vit en parallèle. Pratique pour les
POC, déconseillé en production.

Cette méthode peut aussi être utilisée pour transformer Omniscol
en un outil de consultation avancée des emplois du temps : les
modules du quotidien (EDT, tableaux de bord…) prennent les interventions
d'Aurion comme source de vérité, et les EDT internes d'Omniscol
comme indices de structuration. Cela passe par le favori
d'interventions requêté plusieurs fois par jour, dont le résultat,
transformé au format Omniscol, est mis en cache. Voir « Mode lecteur
surpuissant d'Aurion » plus loin dans cette page.

##### 2. Mode production — synchro entités + push séances

Le mode opérationnel standard :

- **Synchro entrante** des entités Aurion vers Omniscol — matières,
  cours, intervenants, groupes, ressources, types d'activité,
  statuts d'intervention. Chacune avec son **identifiant objet Aurion** conservé
  pour les rapprochements futurs.
- **Planification** dans Omniscol avec son moteur (auto ou
  manuel), respectant les contraintes et les disponibilités.
- **Remontée temps-réel des séances** vers Aurion sous forme
  d'**interventions** (avec les identifiants d'objet Aurion corrects).
  Omniscol utilise la méthode du fichier XML pivot. À chaque modification des
  séances, Omniscol peut remonter en temps réel via webservice, en traitement groupé.
  Plusieurs fois par jour, Omniscol peut aussi vérifier la non-divergence des
  données et la corriger. Il est aussi possible de télécharger le fichier XML
  pivot, pour l'inspecter manuellement ou pour l'importer depuis la console Aurion.
- **Export complet** possible de toutes les séances lorsque le bloc d'export
  est configuré avec des horaires définis, ou sur demande explicite manuelle.

Aurion reste la source de vérité administrative ; Omniscol est
l'outil de planification.

##### 3. Mode lecteur surpuissant d'Aurion

Variante du mode 2 : après le push des séances vers Aurion,
celui-ci **reboucle** vers Omniscol comme source de consultation de
ses interventions, lorsque le favori d'interventions est configuré. Les
**fonctionnalités du quotidien** d'Omniscol (**EDT** en consultation,
**Tableau de bord**, panneaux d'affichage, iCal, API
publique, MCP…) consomment alors directement les **interventions
Aurion comme source de vérité**, pas la planification Omniscol.

Conséquence : Omniscol devient une **surcouche de visibilité et
d'exportation** au-dessus d'Aurion :

- consultation rapide des EDT (salle, professeur, classe, étudiant) ;
- statistiques avancées du tableau de bord ;
- gestion des absences alignée sur les interventions ;
- panneaux d'affichage publics ;
- abonnements iCal ;
- API REST et MCP pour requêtage IA.

#### Favoris d'export Aurion

Aurion utilise des **favoris** pour extraire ses données. Omniscol
fournit les modèles `.aurxml` prêts à coller dans Aurion ; chaque
favori ainsi créé est ensuite interrogé par son identifiant. Les
favoris attendus :

| Favori | Champs essentiels |
| --- | --- |
| Matières | `id.Matière`, `Code.Matière`, `Libellé.Matière` |
| Cours | `id.Cours`, `Code.Cours`, `Libellé.Cours`, début/fin de validité |
| Intervenants | `id.Intervenant`, `Nom d'usage.Intervenant`, `Prénom.Intervenant`, sexe, date de naissance, e-mail |
| Groupes | `id.Groupe`, `Code.Groupe`, `Libellé.Groupe`, validité, effectifs min/max, type |
| Ressources | `id.Ressource`, `Code.Ressource`, `Libellé.Ressource`, capacité, type |
| Types d'activité | `id.Type d'activité`, `Code`, `Libellé` |
| Statuts d'intervention | `id.Statut`, `Code`, `Libellé` |
| **Interventions** | favori principal — import initial + synchro live (champs remappés Omniscol : `id`, `teacher`, `class`, `group`, `subject`, `classroom`, `site`, `day`, `start`, `end`, `type`) |
| Interventions vérification | favori de contrôle pour réconciliation (champs natifs Aurion ou remappés) — plus `osid` et `osrev`, voir ci-dessous |

##### L'identité Omniscol dans les interventions

Pour qu'Omniscol reconnaisse, dans une intervention Aurion, la
séance dont elle provient, il lui faut deux informations
supplémentaires : `osid` et `osrev`. La première identifie la
séance, la seconde sa version. Sans elles, la réconciliation
retombe sur des rapprochements par date, groupe et intervenant,
autrement plus fragiles.

Ces deux informations sont des **attributs paramétrés**, à créer
côté Aurion, dans la console d'administration :

1. sur l'objet **intervention**, déclarer deux attributs de type
   **chaîne de caractères** — un identifiant Omniscol comporte des
   lettres et des tirets, un attribut numérique le refuserait ;
2. les nommer `osid` et `osrev` ;
3. les ajouter comme colonnes au **favori de contrôle**.

> **Le modèle `.aurxml` ne peut pas vous éviter cette étape.** Un
> attribut paramétré appartient à une base de données précise :
> quand vous importez un favori construit ailleurs, Aurion retire
> silencieusement les attributs qu'il ne connaît pas. Après avoir
> collé le modèle, il faut donc rajouter ces deux colonnes
> vous-même. Le bouton **Vérifier**, à côté du favori de contrôle,
> vous prévient si elles manquent.

Chaque base numérote ses attributs paramétrés à sa façon. Vous
n'avez pas à retrouver ces numéros : le bouton **Détecter** les
identifie tout seul, en écrivant puis en supprimant une
intervention témoin. Comptez une quinzaine de secondes. S'ils
changent un jour — un attribut supprimé puis recréé change de
numéro — relancez simplement la détection.

Le favori de contrôle est également borné dans le temps. Le
modèle que vous téléchargez part du début de votre année scolaire
et n'a pas de borne de fin — sans cette borne, le favori
remonterait tout l'historique de votre base. Remontez cette date
de début dans Aurion si le favori devient trop volumineux.

#### XML Pivot — export Omniscol → Aurion

Le **XML Pivot** est le format utilisé pour pousser les séances
Omniscol vers Aurion en tant qu'interventions. Deux modes
supportés :

- **Fichier via la console Aurion** — Omniscol génère un fichier
  XML Pivot que l'administrateur Aurion injecte via l'écran
  dédié. Pratique pour les envois ponctuels ou quand le
  webservice n'est pas (encore) ouvert.
- **Webservice à la volée** — Omniscol pousse directement via
  l'API Aurion, en temps réel et en traitement groupé. Demande à la DSI
  d'ouvrir l'accès réseau et de fournir les identifiants techniques.

Omniscol supporte les deux ; le choix dépend de la configuration
réseau de l'établissement.

Chaque intervention poussée emporte l'identité de la séance dont
elle provient, dans les attributs `osid` et `osrev` décrits plus
haut. C'est ce qui permet, au passage suivant, de reconnaître ce
qui a déjà été envoyé plutôt que de le renvoyer.

#### Tableau d'ontologie Omniscol ↔ Aurion

Les correspondances historiques entre les vocabulaires :

| Omniscol | Aurion |
| --- | --- |
| Professeur | Intervenant |
| Classe | Groupe |
| Groupe | Groupe |
| Matière | Cours ou Matière |
| Salle / Ressource | Ressource (avec son type) |
| Site | - |
| Séance de cours | Intervention |
| Type de cours | Type d'activité |
| Statut de séance | Statut d'intervention |
| Durée réelle | Durée réelle |
| Durée comptabilisée | Durée comptabilisée |

##### Statuts de séance

Le mapping des statuts Omniscol → Aurion dépend
totalement de votre configuration d'Aurion. Voici
un exemple :

| Statut Omniscol | Code Aurion |
| --- | --- |
| `brouillon` | `PREPLANIF` |
| `planifié` | `PREVU` |
| `annulé` | `ANNULE` |
| `réalisé` | `REALISE` |

#### Configuration et exploitation

La configuration de synchronisation avec des systèmes externes pour
Aurion (points d'accès, identifiants techniques, favoris,
entités synchronisées, export temps réel ou export complet planifié) se
fait via le support Omniscol. La doc générale du framework est dans
[Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure — Peupler Omniscol depuis un favori Aurion

1. **Le mode POC** (peuplement one-shot depuis un favori
   d'interventions) permet de monter un compte Omniscol en quelques
   minutes pour validation ou démo, sans toucher au flux de
   synchronisation production.
2. **Côté Aurion** : créez dans Aurion le favori **Interventions** à
   partir du modèle `.aurxml` fourni par Omniscol, sur le périmètre
   souhaité (un programme, une promotion, un trimestre…), puis notez son
   identifiant de favori.

   Les autres favoris (Matières, Cours, Intervenants, Groupes,
   Ressources, Types d'activité, Statuts) peuvent compléter
   l'import. Le favori Interventions seul suffit pour démarrer.
3. **Côté Omniscol** : sur l'écran d'import Aurion, renseignez l'accès
   à Aurion (adresse, identifiants, base) et l'identifiant du favori
   Interventions. Cliquez **Vérifier** pour analyser sans
   appliquer — Omniscol récupère le favori, liste ce qu'il va créer,
   mettre à jour ou ignorer, et signale les anomalies (références
   cassées, doublons, codes manquants).
4. **Lancez l'import** une fois la vérification rassurante. Les
   entités Aurion sont créées dans Omniscol avec leur **identifiant
   d'objet Aurion conservé** (pour rapprochement futur en mode
   production). Les interventions deviennent des séances de cours dans
   le module **Gestion des EDT**.
5. **Enchaînez les favoris complémentaires** (Matières, Intervenants,
   Ressources…) avec le bouton **Suivant...** si vous voulez
   enrichir le modèle. Chaque favori se vérifie puis s'applique
   indépendamment.
6. **Vous avez maintenant un compte Omniscol opérationnel** avec la
   donnée Aurion. Pour passer en mode production (synchro live entités

   - push séances), basculez côté synchronisation avec des systèmes
     externes — voir
     [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Voir aussi

- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Connecteur Auriga](#page-integrations.auriga)
- [API Omniscol](#page-integrations.api-tokens)

<a id="page-integrations.auriga"></a>

### 9.18  Connecteur Auriga

*Source: `help/fr/integrations/auriga.md` · id: integrations.auriga · Audience: admin · Plan: premium · Updated: 2026-05-12*

> **Premium**

> _Premium_

**Auriga** est un ERP/SI scolaire utilisé notamment par des écoles
de commerce et de management. **Auriga le logiciel** est
l'évolution **full-web** d'[Aurion](#page-integrations.aurion),
proposée par la **même société Auriga**. Les deux connecteurs
partagent une partie significative de leur modèle de données et
de leurs conventions, mais les API et les concepts diffèrent
suffisamment pour justifier un connecteur distinct.

Le connecteur Auriga s'inscrit dans le framework
[Synchronisation avec des systèmes externes](#page-integrations.extsync) ;
cette page décrit ses spécificités, notamment le pontage des
ontologies entre Auriga et Omniscol.

#### Périmètre

Le connecteur Auriga synchronise :

- **entités entrantes** : **Intervenants**, **Populations** (classes,
  groupes et sous-groupes côté Omniscol), **Unités pédagogiques**,
  **Ressources** (salles et équipements) et **Sites** — Auriga est
  source de vérité ;
- **séances sortantes** : Omniscol pousse les séances générées (avec
  les références ext-id Auriga correctes) vers les sessions /
  interventions Auriga lorsque l'export est configuré.

Les **années scolaires** ne font pas partie de ce périmètre : elles se
créent et se gèrent dans Omniscol. Étendre la synchronisation à d'autres
entités se cadre sur projet.

#### Tableau d'ontologie Omniscol ↔ Auriga

Les vocabulaires diffèrent entre Omniscol et Auriga. Le connecteur ponte
les ontologies automatiquement. Tableau de référence :

| Omniscol | Auriga |
| --- | --- |
| Professeur | Intervenant |
| Classe | Population |
| Groupe | Population |
| Sous-groupe | Population |
| Matière | Unité pédagogique (UP) |
| Famille (de matières) | Programme |
| Salle | Ressource (de type Salle) |
| Ressource (matérielle) | Ressource |
| Site | Site |
| Séance de cours | Intervention |
| Type de cours | Type d'activité |
| Statut de séance | Statut d'intervention |
| Durée réelle | Durée réelle |
| Durée comptabilisée | Durée comptabilisée |
| Modalité (présentiel, distanciel) | — |

##### Statuts de séance

La correspondance des statuts de séance Omniscol → Auriga (codes par défaut Auriga) :

| Statut de séance Omniscol | Code Auriga |
| --- | --- |
| Brouillon (`draft`) | `PREPLANIF` |
| Planifié (`planned`) | `PLANIFIE` |
| Annulé (`canceled`) | `ANNULEE` |
| Réalisé (`done`) | `REALISEE` |

Côté Auriga, ces codes se personnalisent librement. Omniscol permet donc
de redéfinir cette correspondance, pendant une première (et très
probablement unique) phase de paramétrage.

#### Particularités

- **Populations multiples** : comme Aurion (cousine technique sur
  ce point), Auriga modélise les sous-groupes via le système de
  Populations, la hiérarchie étant généralement signifiée à travers
  le code de l'entité. Omniscol consolide via la combinaison
  classes / groupes et sous-groupes / partitions / alignements /
  groupes de groupes. Omniscol essaie de deviner les relations
  à partir des noms et codes.
- **Modalité (présentiel / distanciel)** et **lien de visioconférence** :
  ces champs sont absents côté Auriga, donc non remontés.
- **Mémos** : les commentaires sur une séance peuvent être multiples
  et à l'attention de différentes audiences côté Omniscol, mais il
  n'y a qu'un seul champ côté Auriga : ils sont donc injectés
  comme concaténés dans l'intervention.

#### Configuration et exploitation

La configuration de synchronisation avec des systèmes externes pour
Auriga (points d'accès, identifiants techniques, système
activé, règles de synchronisation, export temps réel ou export complet
planifié) se fait via le support Omniscol. La doc générale du framework
est dans
[Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure — Vérifier la synchro Auriga

1. **Auriga est branché comme connecteur de synchronisation** : il synchronise
   les entités entrantes (populations, intervenants,
   unités pédagogiques, ressources/salles…) et reçoit les séances Omniscol comme
   interventions. Cette procédure montre comment vérifier la santé du lien.
2. **Ouvrez l'écran Synchronisation avec des systèmes externes** dans le module
   **Administration**. Le connecteur Auriga apparaît dans la
   liste des systèmes configurables.
3. **Vérifiez la configuration** : base URL, Keycloak, realm, client,
   identifiants techniques, périmètre autorisé et valeurs par défaut d'activité / statut
   d'intervention. Les erreurs remontées par le connecteur doivent être
   traitées avec le support et la DSI.
4. **Configurez les règles de synchronisation** pour les entités
   concernées : système source, création locale autorisée ou non, mise à
   jour locale autorisée ou non, puis appairage des entités si
   nécessaire.
5. **Pour les séances sortantes** (Omniscol → Auriga), activez le bloc
   d'export si le connecteur doit recevoir les séances. L'écran permet
   de choisir l'export temps réel et/ou un export complet planifié, puis
   de déclencher un export manuellement.

#### Voir aussi

- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Connecteur Aurion](#page-integrations.aurion)
- [API Omniscol](#page-integrations.api-tokens)

<a id="page-integrations.edusign"></a>

### 9.19  Connecteur Edusign

*Source: `help/fr/integrations/edusign.md` · id: integrations.edusign · Audience: admin · Plan: premium · Updated: 2026-08-14*

> **Premium**

> _Premium_

Dans une école qui utilise **Omniscol** et **Edusign**, les deux
outils n'ont pas le même rôle.

**Omniscol** prépare les séances : il gère l'emploi du temps, les
contraintes, les disponibilités, les partitions et les cours
transverses. **Edusign**, lui, intervient une fois la séance
décidée : il a besoin qu'on lui dise **quand** elle a lieu,
**qui** l'anime et **qui** y assiste, afin de préparer
l'émargement et de recueillir les signatures.

Le connecteur sert précisément à éviter cette double saisie.
Omniscol pousse donc vers Edusign les séances à faire signer,
parce que c'est dans Omniscol que l'établissement les prépare et
les corrige. La présence constatée, elle, se consulte dans
Edusign : c'est lui qui l'observe et qui en fait foi.

Le connecteur Edusign s'inscrit dans le framework
[Synchronisation avec des systèmes externes](#page-integrations.extsync) ; cette page décrit ses spécificités.

#### Ce qui est envoyé, ce qui ne l'est pas

Le connecteur envoie d'abord les **séances**. Chacune devient un
cours Edusign et porte l'identifiant Omniscol comme référence
externe. C'est ce qui permet ensuite de la retrouver, de la
mettre à jour ou de la supprimer sans tenir de table de
correspondance à côté.

Les **évènements** du calendrier peuvent suivre le même chemin :
une conférence, une soutenance ou une journée d'intégration peut
elle aussi partir vers Edusign pour signature. Si vous ne voulez
pas tout envoyer, vous pouvez aussi restreindre l'export avec
des filtres — on y revient plus bas.

Les **enseignants** et les **groupes** peuvent aussi être
envoyés, de deux façons : créés à la volée pendant l'export des
séances, si vous activez cette option, ou synchronisés en masse
depuis l'onglet Exportation des entités, Omniscol
faisant alors référence. Les **élèves**, eux, ne sont jamais
poussés automatiquement : leur envoi se fait uniquement sur
déclenchement manuel, pour les raisons expliquées plus bas.

Un point important : **ne mélangez pas deux façons de
créer les feuilles**.

Soit vos séances naissent dans Omniscol, et le connecteur les
crée dans Edusign : c'est le choix le plus cohérent si votre
emploi du temps bouge, car corrections, absences et
remplacements suivront.

Soit vous créez directement des cours dans Edusign. C'est
possible, mais ces cours-là vivent alors en dehors d'Omniscol :
le connecteur les laissera tranquilles, et vos changements de
planning ne s'y répercuteront pas.

Le plus sûr est donc de choisir dès le départ de quel côté vous
faites naître vos feuilles, puis de vous y tenir. C'est ce qui
évite de se retrouver avec deux versions de la même séance.

#### Avant le premier export

Pour Edusign, une séance sans enseignant n'est pas exploitable :
il faut savoir qui porte la feuille d'émargement. La suite
dépend d'une question : vos enseignants ont-ils déjà leur compte
Edusign ?

**Ils existent déjà, avec la même adresse mail des deux côtés.**
Rien à faire : la correspondance est automatique. C'est le cas
le plus fréquent, et la raison pour laquelle l'adresse doit être
renseignée et fiable dans Omniscol — elle sert d'identifiant de
rapprochement, et c'est aussi l'identifiant de connexion à
Edusign. Si deux enseignants partagent la même adresse sur
Omniscol, le connecteur tente de les départager par leurs noms :
la section plus bas détaille ce qu'il fait, et ce qui peut
bloquer.

**Ils existent déjà, mais les adresses mail ne concordent pas.**
C'est le rôle de l'**association** : l'écran d'association
présente vos enseignants face aux comptes Edusign, et chaque
association posée fait foi, avant toute correspondance
d'adresse. Même recours pour les cas ambigus, quand une adresse
partagée résiste au départage par les noms.

**Ils n'existent pas encore dans Edusign.** Deux options :

- **la création à la volée** — cochez la création distante dans
  la configuration du système, onglet
  Configuration des systèmes, et le connecteur crée chaque
  compte au moment où une séance en a besoin ;
- **la synchronisation des enseignants** — poussez-les tous d'un
  coup depuis l'onglet Exportation des entités, et les
  comptes existent avant même la première séance, Omniscol
  faisant référence.

À la volée comme en masse, Edusign réserve chaque adresse mail à
un seul compte. Déjà prise, la création échoue, et les séances de
l'enseignant avec ; partagée entre deux enseignants sur Omniscol,
le connecteur n'en crée aucun — pas même le premier, qui lierait
l'adresse à l'un des deux au hasard — et leurs séances attendent
que chacun ait la sienne. La création s'adresse donc aux comptes
réellement absents — pour un enseignant déjà présent dans
Edusign, restez sur la correspondance ou l'association.

Attention aussi, avant de demander la création d'Omniscol vers
Edusign : selon la configuration de votre compte Edusign, créer
un utilisateur peut lui envoyer aussitôt ses identifiants par
courriel. Vos enseignants découvriraient alors le nouvel outil
dès le premier export, sans y avoir été
préparés. Si vous préférez annoncer vous-même l'ouverture des
comptes, vérifiez ce réglage côté Edusign avant de lancer
l'export.

Si l'enseignant reste introuvable, la séance **n'est pas
envoyée**. Le connecteur la compte et la signale explicitement :
une feuille de présence manquante est le genre de problème qu'on
ne découvre jamais au bon moment sinon.

#### Le rapprochement par adresse mail

Pour un enseignant sans association posée, et dont le compte n'a
pas été créé par le connecteur, le rapprochement se fait sur
l'adresse mail, quels que soient les prénoms et noms de part et
d'autre. Elle doit donc être exacte :
une adresse fausse bloque la séance, et deux adresses
interverties échangeraient les feuilles de deux enseignants.

Le prénom et le nom n'interviennent que pour départager un
doublon : deux enseignants déclarés dans Omniscol avec la même
adresse mail — une boîte de secrétariat, une adresse commune à
des vacataires. Le connecteur compare alors les noms à ceux des
comptes Edusign. Cela suffit presque toujours : chacun retrouve
son compte, les séances partent.

Deux homonymes parfaits sur la même adresse, c'est selon toute
vraisemblance une seule personne saisie deux fois chez vous. La
feuille portera le bon nom, la bonne matière et la bonne classe
quel que soit le compte retenu : la séance part, et le journal de
l'intégration garde trace du doublon, à nettoyer à l'occasion.

Reste le cas où aucun nom ne colle. L'enseignant n'a peut-être
pas de compte du tout, et l'envoyer au hasard ferait signer la
présence sur la feuille d'un autre : ces séances-là **restent à
quai**. Le récapitulatif de l'export donne les noms et l'adresse
en cause — jusqu'à la personne qui crée le doublon sans rien
enseigner, que vous mettriez longtemps à soupçonner.

La sortie durable est de donner à chacun sa propre adresse mail.
En attendant, associez-les à la main : une fois l'association
posée, l'identifiant fait foi.

#### Filtrer l'envoi par les campus

Le campus est une notion d'organisation : il regroupe des classes
au sein de votre compte, indépendamment des sites et des salles.
Si vous en avez déclaré, vous pouvez n'envoyer que les séances de
certains d'entre eux. Le choix se fait dans l'onglet
Exportation des entités, sous les séances de cours.

Une séance part dès qu'**au moins une** de ses classes se trouve
sur un campus retenu : un cours partagé entre deux campus est
donc envoyé une seule fois. En revanche, dès que vous filtrez sur
certains campus, une classe sans campus attribué reste en dehors :
comme elle n'appartient à aucun des campus retenus, le connecteur
ne peut pas l'inclure.

Si vous réduisez la sélection plus tard, les séances qui n'y ont
plus leur place sont retirées d'Edusign — **sauf celles qui ont
déjà eu lieu**, dont l'émargement est acquis. Ne rien sélectionner
revient à tout envoyer.

#### L'horizon d'export

Edusign sert à faire signer des séances **à venir**. Une séance
passée n'a plus vocation à être préparée pour l'émargement, et
Edusign la verrouille.

L'horizon se règle dans la configuration du système, sous la
forme d'un nombre de jours en arrière et en avant autour
d'aujourd'hui. En pratique, quelques jours en arrière suffisent :
ils servent seulement à rattraper une correction faite juste
après la séance.

**Une séance qui sort de l'horizon n'est jamais supprimée.**
Elle a eu lieu, Edusign détient son émargement, et cet
émargement ne se reconstitue pas. Seule une séance réellement
supprimée dans Omniscol est retirée d'Edusign — et seulement si
elle n'a pas encore eu lieu.

#### Temps réel et rattrapage

Deux mécanismes cohabitent, avec deux rôles différents.

Le **temps réel** envoie chaque modification au fil de l'eau.
C'est le mode normal : il garde Edusign à jour presque
immédiatement. Mais il faut le voir comme un canal pratique,
pas comme une garantie absolue : une requête peut échouer, un
processus peut redémarrer.

L'**export complet programmé** sert à réconcilier régulièrement
les deux côtés. Il envoie tout l'horizon, relit ce qu'Edusign
détient, puis supprime les séances qui n'existent plus chez vous
mais que le temps réel a manquées. C'est le filet de sécurité :
sans lui, un incident réseau ou un redémarrage laisserait une
divergence silencieuse.

#### Les élèves

Les élèves ne sont envoyés que **sur déclenchement manuel**, et
avec une prudence particulière.

Edusign ne sait rapprocher un élève que par la référence
externe que nous lui avons posée — ni par son adresse mail, ni
par son identifiant interne. Un élève déjà présent dans Edusign sans
cette référence est donc **hors d'atteinte** : l'envoyer
créerait un second enregistrement portant la même adresse.

Le connecteur préfère donc s'abstenir plutôt que créer un
doublon. Il commence par relire les élèves déjà présents dans
Edusign, ne crée que ceux qui en sont réellement absents, puis
met les autres de côté. Les élèves sans adresse mail sont
écartés pour la même raison : ils ne peuvent être rapprochés
d'aucune manière. À la fin du déclenchement, un récapitulatif
vous dit exactement lesquels n'ont pas été créés, avec leur
identité des deux côtés, afin que vous puissiez trancher au cas
par cas. Le journal d'activité en garde la trace.

En pratique, les élèves ne sont indispensables que si vous
voulez des feuilles nominatives. L'émargement fonctionne sans
eux dès lors que la séance porte son enseignant et son groupe.

#### Les évènements

Une conférence, une soutenance, un examen blanc : ce que vous
posez dans le calendrier hors des séances de cours peut, là
aussi, partir vers Edusign. Les évènements ont leur propre
section dans l'onglet Exportation des entités, juste sous les
séances, avec leurs propres filtres et leur propre
politique d'envoi.

Un évènement porte les mêmes informations qu'une séance : sa
date, ses participants, sa salle. Parmi les invités, les
enseignants portent la feuille ; les classes et les groupes en
forment le public.

Vous n'êtes pas obligé de tout envoyer. Le connecteur filtre sur
les **étiquettes** que vous posez sur vos évènements — voir
[Évènements ponctuels](#page-schedules.events) : n'envoyer que ceux qui portent telle
étiquette, ou l'inverse, tout envoyer sauf ceux qui en portent
une. **L'exclusion l'emporte toujours**, ce qui permet la règle
la plus pratique : tout envoyer, sauf ce que vous avez marqué
*sans signature* (par exemple).

#### Quand un ERP est déjà dans le paysage

Le cas le plus simple est celui d'une école qui gère ses séances
dans Omniscol, puis les fait signer dans Edusign. C'est le cas
d'usage le plus direct du connecteur.

Dans les établissements déjà structurés autour d'un ERP comme
[Aurion](#page-integrations.aurion) ou
[Auriga](#page-integrations.auriga), l'architecture est en général
une étoile centrée sur cet ERP. Il envoie ses référentiels vers
Omniscol — enseignants, salles, matières, groupes, voire étudiants —,
puis Omniscol lui renvoie les séances qu'il a produites.

À partir de là, Edusign se branche le plus souvent sur l'ERP,
pas directement sur Omniscol. Selon l'organisation retenue,
soit l'ERP retransmet les séances à Edusign, au besoin via un
ETL, soit Edusign les relit régulièrement dans l'ERP.

Dans cette topologie, les références externes ne se remplacent
pas : elles s'empilent selon les échanges à assurer. Un même
enseignant peut ainsi porter une référence ERP dans Omniscol,
et, si nécessaire, une référence Edusign distincte. Dans
l'onglet Synchronisation des entités, chaque système configuré
reste associé séparément, pour les mêmes entités.

#### Réinitialiser

Le bouton de purge retire d'Edusign **les séances issues
d'Omniscol** sur l'année scolaire en cours. Il ne touche ni aux
enseignants, ni aux groupes, ni aux cours créés directement dans
Edusign : son but est de nettoyer ce que le connecteur a poussé,
pas d'effacer le reste de votre environnement.

Edusign limite fortement la cadence de suppression : chaque
passage retire au plus quelques centaines de séances. S'il en
reste, relancez la purge — le journal d'activité indique le
nombre restant après chaque passage.

Ce que le connecteur crée dans Edusign ne s'efface pas toujours
au sens strict : la suppression d'un enseignant y est un
archivage. Activez donc la création en connaissance de cause.

---

## 10. Portails

<a id="page-portal.student-portal"></a>

### 10.1  Portail étudiant

*Source: `help/fr/portal/student-portal.md` · id: portal.student-portal · Audience: student/admin · Plan: standard · Updated: 2026-06-13*

Le **portail étudiant** est l'interface dédiée aux apprenants. Plus
simple et plus ciblée que l'interface administrateur, elle expose
exactement ce dont un élève a besoin au quotidien : son EDT
personnel, celui de sa ou ses classes, ses absences et le partage de
son calendrier.

#### EDT personnel

À l'ouverture, l'élève voit **son propre EDT** sur la semaine
courante : matières, horaires, salles, professeurs. Trois vues
classiques sont proposées :

- **Semaine** — grille standard 5 ou 7 jours selon la configuration
  école.
- **Jour** — agenda chronologique, utile sur mobile.
- **Liste** — vue séquentielle des prochaines séances, sans grille.

Les changements de dernière minute (déplacement de séance, changement
de salle, annulation) sont pris en compte : l'élève voit l'état à
jour à chaque ouverture ou rechargement de la vue.

#### Consulter l'EDT de sa classe

Au-delà de son EDT personnel, l'élève peut consulter l'**EDT de sa
ou ses classes** et celui des **groupes** de ces classes. Son accès
s'arrête là : il ne consulte ni l'EDT d'une autre classe, ni celui
d'un professeur, ni celui d'une salle.

L'administrateur peut limiter l'**horizon de consultation** des
élèves : un paramètre définit le nombre de semaines à venir
visibles, ou règle l'accès sur **Illimité**. Voir
[Restrictions de visibilité](#page-admin.visibility-restrictions).

#### Synchroniser avec un agenda personnel

L'icône de partage Partage de la vue
EDT ouvre la fenêtre Partage. Son onglet **iCal**
fournit l'URL d'abonnement personnelle, à coller dans Google
Calendar, Apple Calendar ou Outlook. L'URL peut être copiée,
téléchargée en fichier `.ics` ou scannée via un QR code.

Voir [iCal — abonnement et lien dynamique](#page-integrations.ical)
pour le détail. L'application d'agenda rafraîchit l'abonnement à
intervalles réguliers : quand l'EDT évolue dans Omniscol, la
modification apparaît dans l'agenda de l'élève.

#### Déclarer une absence

Si l'établissement l'autorise, l'élève peut déclarer sa propre
absence depuis le portail : dates, horaires éventuels, motif et
commentaire. Voir [Déclarer une absence](#page-absences.declaring).

La demande apparaît dans le module Gestion des absences avec un statut en attente jusqu'à validation par un administrateur. Le formulaire ne
contient pas de dépôt de justificatif.

#### Langue de l'interface

La langue de l'interface suit la langue du navigateur de
l'utilisateur. L'élève peut en choisir une autre depuis l'entrée
Langue du menu utilisateur ; ce choix est mémorisé sur son
compte pour les connexions suivantes.

#### Voir aussi

- [Portail enseignant](#page-portal.teacher-portal)
- [Portail invité (parents, observateurs)](#page-portal.guest-portal)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Déclarer une absence](#page-absences.declaring)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)

<a id="page-portal.teacher-portal"></a>

### 10.2  Portail enseignant

*Source: `help/fr/portal/teacher-portal.md` · id: portal.teacher-portal · Audience: teacher/admin · Plan: standard · Updated: 2026-06-26*

Le **portail enseignant** est l'interface dédiée aux professeurs. Elle
couvre les trois besoins quotidiens d'un professeur : consulter son
EDT, saisir ses disponibilités, déclarer ses absences. Par défaut,
elle donne aussi accès aux EDT des collègues, des classes et des
salles.

#### EDT professeur

Le professeur voit sur la semaine courante les **cours qu'il anime** :
matière, classe, groupe, salle, horaires. Trois vues disponibles :

- **Semaine** — vue grille standard.
- **Jour** — vue agenda chronologique.
- **Liste** — séquence chronologique sans grille, pratique sur mobile.

Les modifications d'EDT (déplacement ou annulation d'une séance,
ajout d'une séance exceptionnelle) sont prises en compte : le professeur
voit l'état à jour à chaque ouverture ou rechargement de la vue.

#### Saisir ses disponibilités

Si l'établissement a activé la saisie des disponibilités, le professeur ouvre sa
fiche personnelle via l'entrée **Informations** du menu
utilisateur ; l'onglet **Disponibilités** présente
une grille où il déclare ses préférences pour la prochaine construction d'EDT :

- créneaux **Indisponible** — contrainte bloquante, l'algorithme
  n'y place jamais de séance, et le planificateur manuel y ferait un conflit,
- créneaux **Non souhaité** — l'algorithme évite d'y placer une
  séance, sans interdiction absolue, et le planificateur manuel y voit une alerte,
- créneaux **Préféré** — l'algorithme favorise ces créneaux.

Les plages non marquées restent neutres : disponibles, sans
préférence.

Voir [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
pour la sémantique exacte des couleurs et les bonnes pratiques de
saisie.

Le professeur peut aussi ajouter des **commentaires libres** (`pas
d'enseignement le vendredi à cause d'un autre engagement
professionnel`) qui aident l'administration à comprendre le contexte.

#### Déclarer une absence

Le bouton **Déclarer une absence** permet au professeur de
signaler sa propre indisponibilité :

- dates concernées ;
- journée entière ou créneaux précis ;
- motif ;
- commentaire court.

La demande apparaît dans le module **Gestion des absences** avec un
statut **en attente** jusqu'à validation par un administrateur.
Les remplacements se gèrent ensuite dans ce même module ; le formulaire
du portail ne déplace pas les séances et ne joint pas de justificatif. Voir
[Déclarer une absence](#page-absences.declaring).

#### Consulter les EDT des collègues et classes

Par défaut, le professeur peut consulter les EDT des autres professeurs
(utile pour caler des réunions), des classes (pour identifier un créneau
libre où poser une sortie) et des salles. Un réglage strict
(voir [Restrictions de visibilité](#page-admin.visibility-restrictions)) masque les EDT des **autres
professeurs** ; il ne porte que sur ces EDT entre collègues, l'accès aux
EDT des classes et des salles restant ouvert.

#### Synchroniser avec un agenda personnel

Comme côté élève, l'icône de partage
**Partage** de la vue EDT ouvre la fenêtre
**Partage**, dont l'onglet **iCal** fournit l'URL
d'abonnement personnelle à coller dans Google Calendar, Apple
Calendar ou Outlook. Voir [iCal — abonnement et lien dynamique](#page-integrations.ical).

Pratique pour les professeurs qui veulent voir leurs cours dans le
même agenda que leurs réunions et leur vie personnelle.

#### Voir aussi

- [Portail étudiant](#page-portal.student-portal)
- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Déclarer une absence](#page-absences.declaring)
- [Restrictions de visibilité](#page-admin.visibility-restrictions)

<a id="page-portal.guest-portal"></a>

### 10.3  Portail invité (liens publics)

*Source: `help/fr/portal/guest-portal.md` · id: portal.guest-portal · Plan: standard · Updated: 2026-05-15*

Le **portail invité** désigne ici la consultation d'un EDT par une personne
qui n'a pas de compte Omniscol sur l'établissement. Le cas courant est
le lien public signé : une URL limitée à un périmètre précis, ouverte
en lecture seule.

#### Modes d'accès

Selon le besoin, choisissez entre :

- **Lien public signé** — une URL contenant un jeton secret donne
  accès à un EDT précis (un élève, une classe, une salle, un
  professeur) sans authentification. Pratique pour partager avec un
  parent : un seul lien, pas de mot de passe à retenir. Voir
  [Liens de partage publics](#page-portal.share-links).
- **Compte Omniscol limité** — si la personne doit avoir un accès
  durable, authentifié ou multi-périmètre, créez plutôt un compte avec
  le rôle et les droits adaptés. Ne présentez pas ce cas comme un lien
  public anonyme.

#### Ce que voit un invité

L'invité voit l'EDT en mode **strict lecture seule** :

- pas de modification possible,
- pas de déclaration d'absence,
- pas de saisie de disponibilités,
- pas d'accès aux autres EDT que le périmètre inclus dans le lien.

Le lien ouvre la vue de consultation prévue, en lecture seule. Pour un
**EDT**, l'affichage est automatiquement épuré — sans le bandeau du haut
ni le menu de l'application — ce qui donne une page centrée sur le seul
calendrier. Cet habillage correspond au paramètre `raw=true` de l'URL :
posé d'office sur les liens d'EDT, optionnel sur les autres écrans, et
qu'un utilisateur averti peut ajouter à la main. Il ne change ni
l'authentification ni le périmètre du lien.

Certains liens de partage servent à une action ciblée plutôt qu'à une
consultation : le lien de saisie des disponibilités des professeurs
autorise uniquement le formulaire prévu, jusqu'à sa date d'expiration.

#### Cas d'usage : parent d'élève (scolaire)

Le scénario typique en collège-lycée :

1. L'administrateur (ou l'élève lui-même) génère le lien de partage de
   l'EDT élève.
2. Le lien est envoyé au parent par e-mail.
3. Le parent ouvre le lien : il voit l'EDT de son enfant.
4. Il peut, depuis ce même lien, s'abonner en iCal et avoir l'EDT
   directement dans Google Calendar / Apple Calendar.

Pas de compte à créer, pas de mot de passe à gérer.

#### Cas d'usage : observateur permanent

Si un référent pédagogique externe doit suivre un programme pendant
toute l'année, évitez le lien public anonyme par défaut. Créez un
compte Omniscol limité au périmètre nécessaire, ou mettez en place un
partage signé avec expiration courte et renouvellement contrôlé.

#### Sécurité

- Un lien public signé reste utilisable jusqu'à sa date d'expiration.
  Il est invalidé si le mot de passe du compte auquel il est rattaché
  change (ou si ce compte est désactivé) ; un lien iCal l'est aussi par
  la rotation de la clé d'accès de l'établissement.
- Un compte Omniscol limité peut être désactivé comme les autres
  comptes utilisateurs.
- Un accès par lien public ne doit pas être traité comme un utilisateur
  interne authentifié.

#### Voir aussi

- [Liens de partage publics](#page-portal.share-links)
- [Portail étudiant](#page-portal.student-portal)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Partager un EDT par lien public](#page-schedules.share-link)

<a id="page-portal.share-links"></a>

### 10.4  Liens de partage publics

*Source: `help/fr/portal/share-links.md` · id: portal.share-links · Audience: admin · Plan: standard · Updated: 2026-06-13*

Un **lien de partage public** est une URL signée qui donne accès à un
écran de consultation — le plus souvent un EDT — en lecture seule sans
login. C'est le canal le plus simple pour diffuser un calendrier à
quelqu'un qui n'a pas (et n'aura pas) de compte Omniscol : un parent, un
partenaire externe, un service administratif.

#### Formats proposés

Selon le contexte et les droits de l'utilisateur qui partage, Omniscol
peut générer plusieurs URLs signées :

- **Page web responsive** — affichage navigable type portail, avec
  vues semaine / jour / liste. C'est ce que voit quelqu'un qui ouvre
  le lien dans un navigateur.
- **Flux iCal (`.ics`)** — abonnement dynamique pour Google Calendar,
  Apple Calendar, Outlook. Voir [iCal — abonnement et lien dynamique](#page-integrations.ical).
- **JSON (API)** — pour les développeurs et les intégrations
  machine-à-machine, quand ce format est autorisé.

Ces formats ne sont pas une promesse universelle : la modale affiche
les onglets réellement générés pour la sélection courante.

#### Qu'est-ce qu'on peut partager ?

Le partage ne se limite pas à l'écran de consultation des EDT : la même
icône de partage **Partage** apparaît sur la
plupart des écrans d'Omniscol.

**En lecture seule**, vous pouvez partager :

- l'**EDT d'une entité** — élève, classe, professeur, salle ou matière :
  le cas le plus courant (parents, collègues, vacataires, services
  techniques) ;
- l'**écran EDT complet** du module **EDT** ;
- les six **tableaux de bord** (professeurs, salles, ressources, matières,
  classes, élèves) ;
- les écrans de **suivi des absences** (professeurs, classes, élèves,
  personnel) ;
- les **tableaux de service** du module **Service du personnel** (grille,
  affectations, planning, feuille de présence) ;
- les écrans de **visualisation**, de **réorganisation** et de **mise en
  page** d'un EDT ;
- l'écran de détails d'un professeur ou d'un membre du personnel.

**En lecture-écriture** — les deux seuls cas — vous partagez la **saisie
des disponibilités** d'un professeur ou d'un membre du personnel : le lien
dédié permet à la personne concernée de renseigner et de valider ses
disponibilités, et d'éditer son profil, jusqu'à la date d'expiration,
**sans compte ni mot de passe** Omniscol. Le lien est lié à son identité
et n'est proposé que sur sa propre fiche. Les disponibilités de classe, de
salle, de groupe ou de matière restent des écrans d'édition internes :
elles ne se collectent pas par lien de partage.

Chaque URL signée porte le périmètre demandé et une date d'expiration.

#### Créer un lien de partage

Depuis le module **EDT**, sélectionnez l'EDT à partager
(élève, classe, salle…) puis cliquez sur l'icône de partage
**Partage**. La fenêtre **Partage**
qui s'ouvre propose :

- **Date d’expiration** — date jusqu'à laquelle les URLs générées
  restent valables.
- **Onglets Web, iCal et JSON** — visibles selon les formats générés
  pour le partage.

Vous copiez ensuite l'URL voulue. La modale peut afficher un QR code
pour les liens destinés à une consultation humaine.

#### Limiter ou invalider un lien

Le partage public ne tient pas de registre des liens émis : Omniscol ne
fournit ni liste consolidée des liens déjà transmis, ni compteur d'accès,
ni révocation lien par lien. L'invalidation passe donc par le compte
porteur (mot de passe, désactivation) et par la date d'expiration.

Pour limiter le risque :

- choisissez une date d'expiration courte ;
- partagez uniquement le périmètre nécessaire ;
- utilisez, pour les diffusions d'équipe, un **compte de service
  identifié** plutôt qu'un compte personnel ;
- en cas de diffusion non souhaitée, changez ou réinitialisez le mot
  de passe du compte porteur, ou désactivez ce compte si nécessaire.

Le changement de mot de passe invalide les liens portés par ce compte,
même si le nouveau mot de passe est identique en clair, car le hash
stocké change. La désactivation ou suppression du compte porteur coupe
également l'accès.

#### Sécurité

- L'URL contient un jeton signé et difficile à deviner.
- Le lien expose **uniquement les écrans inscrits dans son jeton**, pas le
  reste du compte. Pour un **EDT d'entité** (et pour tout flux **iCal**), le
  filtre est figé dans le jeton : le destinataire reste cantonné à cette
  entité — un parent disposant du lien de l'EDT de son enfant ne peut pas
  atteindre l'EDT d'un autre élève. Un partage d'**écran EDT complet**, en
  revanche, reflète les **droits du compte qui l'a généré** : pour une
  diffusion externe ciblée, partagez l'EDT de l'entité précise plutôt que
  l'écran entier.
- La validité est bornée par la date d'expiration.
- La validité dépend aussi du compte porteur : changement de mot de
  passe, désactivation ou suppression invalident les liens associés.
- Toute personne qui possède l'URL peut consulter le périmètre partagé
  jusqu'à expiration ou invalidation.

#### Intégrer un EDT dans une page (iframe)

**Aujourd'hui, ce n'est pas possible sur un autre site.** Pour se protéger
du détournement de clic, Omniscol interdit d'être affiché dans un cadre
(`iframe`) hébergé sur un autre domaine que le sien. Si vous essayez
d'intégrer un EDT dans votre ENT, votre intranet ou votre site public, le
navigateur **refuse** d'afficher le cadre. Ce verrou de sécurité est posé
par Omniscol et ne se change pas depuis le compte de l'établissement.

La seule exception, rare en pratique, est une page servie sur exactement
le même domaine que votre instance Omniscol.

Pour diffuser quand même un EDT sur un site externe, trois solutions
simples :

- **un lien** vers l'URL de partage : le lecteur ouvre l'EDT dans un
  nouvel onglet, sans cadre intégré ;
- **un abonnement iCal**, pour que l'EDT apparaisse dans l'agenda de la
  personne (Google Agenda, Outlook…) — voir [iCal — abonnement et lien dynamique](#page-integrations.ical) ;
- **un panneau d'affichage**, pour un écran public dans les locaux — voir
  [Panneau d'affichage](#page-panels.lobby-panel).

#### Procédure — Créer un lien parents avec expiration

1. **Pour partager l'EDT d'une classe avec les parents** sans leur
   créer de comptes : un lien public signé, limité dans le temps.
2. **Ouvrez l'EDT cible** dans le module **EDT** :
   sélectionnez la classe concernée. L'icône de partage
   **Partage** se trouve dans le bandeau de
   titre de la vue.
3. **Fenêtre de partage** : choisissez la **date d’expiration**. Pour
   un partage parents, utilisez au maximum la fin de la période
   scolaire concernée.
4. **Copiez le format utile.** Web pour une consultation directe,
   iCal pour un abonnement agenda, JSON uniquement si une intégration
   API est prévue. Omniscol peut aussi afficher un QR code pour une
   diffusion imprimée.
5. **Transmettez le lien** par le canal prévu : réunion parents,
   newsletter, ENT, intranet ou message ciblé.
6. **Si le lien circule hors du cercle voulu**, créez un nouveau lien
   plus limité puis invalidez les liens portés par l'ancien compte si
   nécessaire : changement de mot de passe, désactivation ou suppression
   du compte porteur.

#### Voir aussi

- [Portail invité (parents, observateurs)](#page-portal.guest-portal)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Partager un EDT par lien public](#page-schedules.share-link)

---

## 11. Panneaux d'affichage

<a id="page-panels.lobby-panel"></a>

### 11.1  Configurer un panneau d'affichage pour un hall ou un couloir

*Source: `help/fr/panels/lobby-panel.md` · id: panels.lobby-panel · Audience: admin · Plan: standard · Updated: 2026-05-12*

Un **panneau d'affichage** est une page web à charger en plein écran
dans un navigateur, sur un téléviseur, un moniteur ou une tablette, pour
diffuser au public de l'établissement les cours et les évènements du
jour. C'est le module à utiliser pour un écran d'accueil, un écran
dans un couloir, devant un laboratoire ou face à un amphithéâtre : le
contenu dépend uniquement de ce que vous filtrez, pas du lieu où
l'écran est posé. Vous pouvez créer autant de panneaux que vous voulez, chacun
avec son propre filtre et sa propre URL d'accès.

#### Créer un nouveau panneau

Dans le module **EDT**, le bouton
**Panneau d'affichage** ouvre l'écran de
configuration. La liste de gauche montre les panneaux existants ; le
bouton **Ajouter** (vert) crée un nouveau
panneau vide. Vous pouvez aussi **dupliquer** un panneau existant avec
**Dupliquer**, ce qui est plus rapide si vous
gérez une flotte d'écrans qui partagent leur charte graphique.

Chaque panneau porte un **Intitulé**, pour le
retrouver dans la liste, et un **Titre****, affiché en haut
de l'écran public. Les deux peuvent différer : `Hall principal —
campus A` côté administration, `Bienvenue à l'École X — campus A`
côté écran.

#### Filtrer les séances affichées

Le filtre principal — la propriété **Montrer** — choisit ce qui
passe à l'écran. Quatre axes complémentaires :

- **Niveaux** — toutes les classes d'un niveau d'un coup
  (par exemple toutes les classes de 6e).
- **Classes** — sélection explicite d'une ou plusieurs classes.
- **Sites** — toutes les salles d'un site (utile pour un écran
  posé dans le hall d'un site précis).
- **Salles** — sélection explicite d'une ou plusieurs salles
  (utile pour un panneau qui couvre une aile de bâtiment).

Filtre vide = toutes les séances. C'est le bon défaut pour un écran de
hall central qui doit montrer ce qui se passe partout dans l'école.

Une seconde liste — **Masquer** — permet d'exclure ponctuellement
des séances du flux retenu :

- **Matières** à cacher (par exemple ne pas afficher l'EPS si elle se
  déroule loin du bâtiment principal),
- **Types de cours** à cacher (par exemple cacher les examens qui ne
  doivent pas être annoncés au public).

Filtre et masque se cumulent : on garde tout ce qui matche le filtre,
puis on retire ce qui matche le masque.

#### Régler la plage horaire affichée

La propriété **Plage horaire** contrôle combien de séances en avant le
panneau montre :

- **Fin de la journée** (défaut) — défile sur les séances en cours
  et à venir aujourd'hui (la séance en cours reste affichée jusqu'à son
  heure de fin). Approprié pour un écran qui sert toute la journée.
- **fenêtre glissante** — par paliers de 30 min jusqu'à **+ 2 h**, puis
  par heure pleine jusqu'à **+ 12 h**. Le panneau ne montre que ce qui démarre dans la
  fenêtre choisie depuis l'heure courante. Utile pour un écran de
  hall très chargé où on veut éviter le mur d'information : montrer
  seulement les deux prochaines heures, par exemple.

Le rafraîchissement est automatique côté navigateur, sans rechargement
manuel ; quand l'heure courante avance, les séances passées sortent de
la fenêtre et les suivantes entrent.

#### Ajouter des messages temporaires

La section **Informations** permet d'afficher un ou plusieurs messages
texte sur le panneau, chacun avec une plage horaire propre. Cas
typiques :

- annoncer un évènement (`Réunion parents-professeurs en salle B204
  à 17 h 30`),
- prévenir d'une perturbation (`Travaux dans l'aile sud, accès par
  l'entrée arrière`),
- diffuser un mot de bienvenue (`Bienvenue à la journée portes
  ouvertes`).

Chaque message porte un texte libre, une heure de début et une heure
de fin. En dehors de cette plage, le message disparaît automatiquement
— vous n'avez pas à passer le retirer après-coup.

#### Récupérer l'URL publique du panneau

Une fois sauvegardé, chaque panneau a une **URL unique** à ouvrir en
plein écran sur l'appareil cible. L'URL contient un hash secret qui
autorise l'accès sans connexion — c'est ce qui permet à un téléviseur
non authentifié d'afficher le contenu. Tant que le hash n'est pas
diffusé publiquement, le panneau n'est pas accessible.

Bonne pratique : ouvrir cette URL dans un navigateur en mode **kiosque
plein écran** (Chrome `--kiosk`, Firefox F11), de préférence sur un
mini-PC ou un boîtier de signage attaché à l'écran. Le navigateur
gère seul le rafraîchissement et le défilement.

#### Procédure — Créer un panneau d'affichage

1. **Un panneau d'affichage est une page web** à charger en plein
   écran sur un téléviseur ou un moniteur pour diffuser les cours du
   jour.
2. **Cliquez sur** **Ajouter** pour créer un
   nouveau panneau vide. Vous pouvez aussi dupliquer un panneau
   existant pour repartir d'une base — gain de temps si vous gérez
   une flotte d'écrans avec la même charte.
3. **Renseignez l'intitulé** (**Intitulé** — côté administration,
   pour vous y retrouver dans la liste) et le **titre** (affiché en
   haut de l'écran public). Par exemple : `Hall principal — campus A`
   côté administration, `Bienvenue à l'École X` côté écran.
4. **Choisissez le filtre des séances** dans la propriété
   **Montrer** : niveaux, classes, sites ou salles. Filtre vide =
   toutes les séances. Pour un panneau de hall central, c'est
   généralement vide. Pour un écran devant une salle, sélectionnez
   cette salle.
5. **Ajoutez éventuellement des messages temporaires** avec leur plage
   horaire (réunion, perturbation, accueil). En dehors de la plage,
   le message disparaît automatiquement de l'affichage.
6. **Sauvegardez.** Vous récupérez l'URL unique du panneau, à ouvrir
   en plein écran sur l'appareil cible (Chrome `--kiosk`, Firefox F11).
   Le rafraîchissement est ensuite automatique.

#### Voir aussi

- [Panneau d'affichage](#page-glossary.panel)
- [Panneau devant une salle](#page-panels.room-panel)
- [Personnalisation des panneaux](#page-panels.customization)

<a id="page-panels.room-panel"></a>

### 11.2  Configurer un panneau d'affichage devant une salle

*Source: `help/fr/panels/room-panel.md` · id: panels.room-panel · Audience: admin · Plan: standard · Updated: 2026-06-13*

Un **panneau devant une salle** est un cas particulier du panneau
d'affichage : la configuration est la même qu'un panneau de hall, mais
le filtre cible **une seule salle** au lieu d'un site ou d'un niveau.
L'écran affiché à côté d'une porte ne montre que l'occupation de la
salle correspondante, ce qui répond à la question que se posent les
gens dans le couloir : *« qu'est-ce qui se passe dans cette salle
maintenant et ensuite ? »*

Cas typiques :

- une porte d'amphithéâtre,
- l'entrée d'un laboratoire ou d'une salle informatique,
- une salle polyvalente partagée par plusieurs filières,
- un studio ou un atelier (musique, design, vidéo).

#### Configuration

Le module **EDT** propose le même bouton
**Panneau d'affichage**
que pour un panneau de hall. La différence se joue dans
le filtre : dans la section **Montrer**, choisissez **Salles** et
sélectionnez la salle unique correspondante.

Les autres réglages sont identiques au panneau de hall :

- **Libellé** côté administration (par exemple `Porte B204`), **titre** côté
  écran (par exemple `Salle B204 — Sciences expérimentales`).
- **Plage horaire** : préférez **+ 2 h** ou **+ 4 h** plutôt que toute
  la journée — pour une salle, l'utilisateur veut surtout savoir la
  séance en cours et la suivante.
- **Taille de police** : **Grande** est souvent appropriée pour un
  écran lu à 1-2 mètres dans un couloir, plus petite si l'écran est
  proche.
- **Messages** : pratiques pour annoncer une réservation ponctuelle
  (`Salle réservée pour le conseil de classe à 14 h`) ou une
  indisponibilité (`Salle en maintenance jusqu'à 15 h`).

#### Plusieurs salles sur le même écran

Si un écran couvre plusieurs salles voisines (une aile de bâtiment,
les salles d'un même laboratoire), vous pouvez sélectionner plusieurs salles
dans le filtre. Les séances de toutes les salles retenues sont alors
**fusionnées en une seule liste triée par horaire** ; si elle dépasse
l'écran, le panneau la **pagine** (défilement de pages). Il n'alterne pas
salle par salle. Pour un affichage réellement distinct par salle, créez
un panneau par salle — chacun a sa propre URL. Un même mini-PC peut
afficher plusieurs panneaux en faisant tourner plusieurs onglets plein
écran, via la fonction kiosque du navigateur ou du système (ce n'est pas
un réglage Omniscol).

#### URL et déploiement

Chaque panneau a son URL unique, sans login, à ouvrir en mode kiosque
plein écran sur l'appareil installé à côté de la porte. Le
rafraîchissement est automatique, par interrogation périodique :
l'affichage se re-filtre selon l'heure courante environ chaque minute, et
les données sont rechargées toutes les cinq minutes — aucune action
manuelle, mais la mise à jour n'est pas instantanée.

#### Procédure — Créer un panneau devant une salle

1. **Un panneau devant une salle** affiche l'occupation de cette salle
   sur les prochaines heures. Différence avec le panneau de hall :
   filtre mono-salle, plage horaire courte, taille de police adaptée
   à une lecture de couloir.
2. Cliquez sur **Ajouter** dans le module **EDT** pour créer
   un nouveau panneau (ou dupliquez un panneau de hall existant et
   ajustez).
3. **Renseignez libellé et titre.** Libellé côté administration
   (`Porte B204`), titre côté écran (`Salle B204 — Sciences
   expérimentales`). Le titre est ce que voient les gens dans le
   couloir.
4. **Filtre : section Montrer → Salles**, sélectionnez **la salle
   correspondante**. Pour un écran qui couvre une aile (plusieurs
   salles voisines), sélectionnez-les toutes — leurs séances sont
   fusionnées en une liste triée par horaire, paginée si besoin.
5. **Réglages spécifiques porte de salle :**

   - **Plage horaire** : préférez `+ 2 h` ou `+ 4 h` plutôt que la
     journée entière — l'utilisateur veut savoir la séance en cours
     et la suivante.
   - **Taille de police** : `Grande` pour un écran lu à 1-2 m.
   - **Messages** : utile pour annoncer une réservation ponctuelle
     ou une indisponibilité.
6. **Sauvegardez.** Récupérez l'URL unique du panneau, à ouvrir en
   kiosque plein écran sur l'appareil installé à côté de la porte.
   Rafraîchissement automatique par interrogation périodique (re-filtrage
   chaque minute environ, rechargement des données toutes les cinq
   minutes).

#### Voir aussi

- [Panneau d'affichage](#page-glossary.panel)
- [Panneau d'affichage](#page-panels.lobby-panel)
- [Personnalisation des panneaux](#page-panels.customization)

<a id="page-panels.customization"></a>

### 11.3  Personnalisation visuelle des panneaux d'affichage

*Source: `help/fr/panels/customization.md` · id: panels.customization · Audience: admin · Plan: standard · Updated: 2026-05-12*

Les panneaux d'affichage Omniscol sont conçus pour s'intégrer
visuellement à votre charte graphique. Deux niveaux de personnalisation
sont possibles : (1) les réglages **dans l'interface** (suffisants pour
la majorité des cas), (2) le **remplacement complet** de la page web
qui rend le panneau (pour les déploiements à forte identité visuelle).

#### Réglages dans l'interface

Dans le module **EDT**, le bouton
**Panneau d'affichage** ouvre l'écran de
configuration des panneaux. Cet écran expose les options de rendu
suivantes, modifiables sans toucher au code :

- **Taille de police** — petite, moyenne ou grande. L'affichage utilise
  des unités relatives à la taille de la fenêtre (`vmin`), donc la
  lisibilité reste cohérente quel que soit le format de l'écran
  (`16:9`, `4:3`, vertical).
- **Couleurs** — couleur de fond, couleur du texte, couleurs des lignes
  paires et impaires de la grille des séances. Tous les codes hexadécimaux
  sont acceptés ; vous pouvez calquer la palette de votre charte.
- **Bandeau de tête** — combinaison ordonnée de : **titre**,
  **logo**, **date du jour**. Vous choisissez ce qui apparaît en
  en-tête et dans quel ordre.
- **Colonnes de la grille** — sélection et ordre parmi : **salle**,
  **classes**, **professeurs**, **matière**, **horaires**. Cacher une
  colonne (par exemple les professeurs pour un panneau public à
  l'entrée) ou la réordonner est immédiat.
- **Format du nom des professeurs** — prénom-nom, nom-prénom,
  titre + nom (Mme Durand), titre + prénom. Les titres `M.` et `Mme`
  suivent automatiquement la langue de l'interface ; ce qui se règle par
  panneau, c'est le **format** retenu.
- **Logo** — le logo de l'établissement chargé dans la configuration
  de l'école peut être affiché dans le bandeau de tête.

Ces réglages sont enregistrés dans la configuration du panneau.
Attention : contrairement aux séances et aux messages, qui se
rafraîchissent seuls, ces options **visuelles** (couleurs, taille,
colonnes, bandeau, format des noms) sont intégrées à la page au moment où
elle se charge. Après les avoir sauvegardés, **rechargez les onglets**
déjà ouverts sur les écrans (F5 ou redémarrage de la page kiosque) pour
qu'ils prennent le nouveau rendu.

#### Remplacement complet du gabarit (licence MIT)

Le gabarit qui rend la page d'affichage est explicitement sous
**licence MIT** et peut être copié puis adapté pour personnaliser un
panneau d'établissement.

Cela ouvre plusieurs scénarios pour les établissements qui veulent
aller au-delà des réglages :

- **Refonte visuelle complète** — réécrire le HTML/CSS du gabarit pour
  coller à une charte graphique forte (police propriétaire, animations
  spécifiques, mise en page non standard).
- **Intégration dans un signage existant** — embarquer le contenu d'un
  panneau Omniscol dans une page d'affichage globale qui multiplexe
  cours, météo, actualités de l'école, vidéos…
- **Vues métier spécifiques** — créer un affichage par exemple pour
  les surveillants (qui doit faire quoi), pour un service technique
  (occupation des salles avec besoins matériels), etc.

Pour cela, deux approches complémentaires :

1. **Fork du gabarit** — si vous auto-hébergez Omniscol, dupliquez
   `panel.dot`, modifiez-le, et déployez votre version. La licence
   MIT autorise explicitement les modifications, les redistributions
   et les usages commerciaux.
2. **API JSON du panneau** — si vous voulez garder Omniscol comme
   source de données mais rendre l'affichage côté tiers, l'URL du
   panneau expose aussi une variante JSON
   (`GET /panels/:accesshash/lessons`). Elle renvoie la liste des
   séances filtrées selon la configuration du panneau, prêtes à être
   consommées par un système de signage tiers (Yodeck, Xibo, ScreenCloud,
   un tableau de bord maison). Cette URL s'ouvre avec la clé d'accès du
   panneau, sans jeton supplémentaire. Pour des intégrations système à
   système plus larges, l'API REST Omniscol est décrite dans
   [API Omniscol](#page-integrations.api-tokens).

#### Recommandations pratiques

Quelques points qui reviennent souvent dans les déploiements :

- **Contraste** — un fond sombre + texte clair est plus reposant pour
  un écran qui tourne 12 h par jour qu'un fond blanc.
- **Police taille « Grande »** dès que l'écran est lu à plus de 2 m
  (typique d'un hall d'entrée). Garder « Moyen » pour les écrans de
  porte de salle, vus de plus près.
- **Logo dans le bandeau de tête** — toujours utile pour l'identification
  rapide quand plusieurs panneaux coexistent dans un grand campus.
- **Date dans le bandeau de tête** — utile en hall (les visiteurs vérifient
  la date), moins utile devant une salle (le contexte est évident).
- **Cacher la colonne professeurs** sur les panneaux publics si votre
  établissement a des règles internes sur l'affichage nominatif.

#### Procédure — Calquer la charte de l'école sur un panneau

1. **Deux niveaux de personnalisation** : (1) réglages dans
   l'interface (suffisants 90 % du temps), (2) remplacement complet
   du gabarit MIT pour les chartes fortes.
2. **Ouvrez la configuration du panneau** dans le module
   **EDT**, via le bouton
   **Panneau d'affichage**. L'écran montre les
   options de rendu : couleurs, taille, bandeau de tête, colonnes, format des
   noms.
3. **Calez les couleurs sur votre charte** : couleur de fond,
   couleur du texte, couleurs des lignes paires/impaires. Codes
   hexadécimaux acceptés. Pour un écran 12h/jour, préférez **fond
   sombre + texte clair** (plus reposant).
4. **Bandeau de tête** : choisissez l'ordre de **logo**,
   **titre**, **date**. Logo utile dès qu'il y a plusieurs panneaux
   sur un campus. Date utile en hall, dispensable devant une salle.
5. **Colonnes de la grille** : sélectionnez et réordonnez parmi
   salle, classes, professeurs, matière, horaires. Pour un panneau
   **public à l'entrée** où votre règlement interdit l'affichage
   nominatif, masquez la colonne **professeurs**.

   **Format des noms** (si conservé) : prénom-nom, nom-prénom,
   titre+nom, titre+prénom.
6. **Taille de police** : grande dès que lu à plus de 2 m (hall),
   moyenne pour porte de salle (vue de près). Unités relatives en
   `vmin` — la lisibilité reste cohérente quel que soit le format
   de l'écran.
7. **Sauvegardez, puis rechargez les écrans.** Ces réglages visuels sont
   intégrés à la page au chargement : rechargez (F5) les onglets déjà
   ouverts sur les panneaux pour qu'ils prennent le nouveau rendu.

   **Pour aller plus loin** (refonte complète, intégration signage
   tiers Yodeck/Xibo/ScreenCloud) : le gabarit `panel.dot` est sous
   **licence MIT**, fork autorisé. La variante JSON de l'URL du panneau
   (`GET /panels/:accesshash/lessons`) expose la donnée prête à
   consommer par un système externe, avec la clé d'accès du panneau.
   Pour l'API REST plus large, voir [API Omniscol](#page-integrations.api-tokens).

#### Voir aussi

- [Panneau d'affichage](#page-panels.lobby-panel)
- [Panneau devant une salle](#page-panels.room-panel)
- [Panneau d'affichage](#page-glossary.panel)
- [API Omniscol](#page-integrations.api-tokens)

---

## 12. Migration depuis un autre logiciel

<a id="page-migration.overview"></a>

### 12.1  Migration depuis un autre logiciel — Vue d'ensemble

*Source: `help/fr/migration/overview.md` · id: migration.overview · Audience: admin · Updated: 2026-05-10*

Vous arrivez sur Omniscol depuis un autre logiciel de gestion d'EDT ?
Plusieurs voies existent selon le logiciel d'origine et la richesse
de l'export disponible.

#### Approches disponibles

##### 1. Importeurs de format natif

Pour deux logiciels, Omniscol lit directement le fichier d'export
natif, sans passer par un tableur intermédiaire : vous sélectionnez le
ou les fichiers depuis l'écran Import / Export (l'import UnDeuxTEMPS,
en plusieurs fichiers `.DBF`, se trouve dans la section des formats
français).

| Logiciel d'origine | Format lu directement | Page dédiée |
| --- | --- | --- |
| ASC Timetables | fichier XML aSc | [Depuis aSc Timetables](#page-migration.from-asc) |
| UnDeuxTEMPS | fichiers UDT (`.DBF`) | [Depuis UnDeuxTEMPS](#page-migration.from-undeuxtemps) |

Pour les autres logiciels (Hyperplanning, EDT / Pronote, ADE), la
reprise passe par l'**import massif** par tableur décrit au point 2 :
vous exportez vos données depuis le logiciel d'origine, vous les
mettez en forme dans un tableur, puis vous les importez. Chaque page
ci-dessous détaille les correspondances et les pièges propres au
logiciel concerné :

- [Depuis Hyperplanning (Index Education)](#page-migration.from-hyperplanning)
- [Depuis EDT / PRONOTE (Index Education)](#page-migration.from-edt)
- [Depuis ADE / ADE Campus](#page-migration.from-ade)

> **Aurion et Auriga** sont des **ERP** (gestion administrative
> scolaire), et non des logiciels de planning. Omniscol s'y
> interface mais ne les remplace pas. Voir
> [Connecteur Aurion](#page-integrations.aurion) et
> [Connecteur Auriga](#page-integrations.auriga) pour les modes
> d'intégration.

##### 2. Import tableur générique

Si votre logiciel d'origine n'a pas d'importeur natif, ou si vous
préférez maîtriser la mise en forme : extrayez vos données dans un
tableur (Excel, Google Sheets, Numbers, Calc) et utilisez l'**import
massif** d'Omniscol. Voir [Import massif des cours via tableur](#page-timetables.mass-import).

##### 3. API directe

Pour une migration **automatisée** (par exemple si vous voulez
synchroniser pendant une période de transition entre deux logiciels),
vous pouvez écrire un script qui pousse les données via l'API
Omniscol. Voir [API Omniscol](#page-integrations.api-tokens).

##### 4. Reprise manuelle

Pour les petits établissements ou les migrations partielles, la
saisie manuelle reste possible. Comptez quelques heures à quelques
jours selon la taille.

#### Stratégie de migration recommandée

1. **Cartographier vos données** — avant tout, faites l'inventaire de
   ce que vous voulez transférer : professeurs, élèves, salles, matières,
   structure des classes, EDT actuel, disponibilités, absences.
2. **Décider du périmètre** — souvent, on ne transfère pas tout. Les
   élèves peuvent rester dans le SIS et être synchronisés ensuite.
   Les EDT historiques peuvent rester archivés à part.
3. **Faire un import partiel de test** — sur un sous-ensemble (une
   classe, une promotion) pour valider la qualité du transfert.
4. **Déterminer le calendrier** — souvent, on bascule à la **rentrée
   suivante** plutôt qu'en cours d'année, pour éviter de gérer la
   continuité.
5. **Former les utilisateurs** — Omniscol a des conventions
   différentes des logiciels concurrents. Prévoyez du temps de
   formation, surtout sur les concepts métier
   ([Partition de classe](#page-glossary.class-division),
   [Alignement de groupes](#page-glossary.alignment),
   [Groupe de groupes](#page-glossary.groups-of-groups)).

#### Spécificités terminologiques selon le logiciel d'origine

| Terme du logiciel concurrent | Équivalent Omniscol |
| --- | --- |
| « ressource » au sens Hyperplanning (professeur, salle, classe…) | Plusieurs entités selon le cas |
| « cours » au sens EDT/Pronote (l'unité posée) | [Séance / Leçon](#page-glossary.lesson) |
| « cours » au sens pédagogique (matière de classe) | [Cours](#page-glossary.course) |
| « bâtiment » | Tag ou bâtiment sur la [Salle](#page-glossary.classroom) |
| « formation » dans le supérieur | [Classe](#page-glossary.class) ou ensemble de classes |
| « UE / EC / ECUE » | [Matière](#page-glossary.subject) avec convention de nommage |

#### Voir aussi

- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Import massif des cours via tableur](#page-timetables.mass-import)
- [API Omniscol](#page-integrations.api-tokens)
- [FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)

<a id="page-migration.from-hyperplanning"></a>

### 12.2  Migrer depuis Hyperplanning (Index Education)

*Source: `help/fr/migration/from-hyperplanning.md` · id: migration.from-hyperplanning · Audience: admin · Updated: 2026-06-30*

Hyperplanning (Index Education) est l'outil de gestion d'EDT le plus
répandu dans l'enseignement supérieur français. Migrer vers Omniscol
demande de reprendre vos données existantes (utilisateurs,
structures, EDT en cours) et de les adapter aux concepts Omniscol.
Cette page synthétise les correspondances et les pièges connus.

#### Ce qui se transpose directement

| Hyperplanning | Omniscol |
| --- | --- |
| Promotion (tronc commun) | Classe |
| Partition d'une promotion | Groupes disjoints ; **partition** si ces groupes partagent le même créneau (TD/TP simultanés) |
| TD (issu d'une partition) | Groupe d'une partition |
| Option | Groupe |
| Regroupement | Groupe de groupes (ou alignement entre classes/promotions différentes) |
| Cours | Cours (et ses séances) |
| Matière / module (UE, EC) | Matière (souvent personnalisée) |
| Calendrier / périodes | Mode calendrier (EDT daté, Premium) ; fenêtres de dates pour l'inclusion/exclusion de périodes |
| Salle | Salle (spécialisation à reprendre) |
| Intervenant extérieur / vacataire | Professeur marqué « externe » (option Premium) |

#### Ce qui demande de l'attention

- **Alignements** : dans Hyperplanning, faire suivre un même cours à des
  TD ou options de plusieurs promotions en même temps passe par un
  **cours commun** (souvent monté à l'aide d'un regroupement). Quand ce
  cours partagé impose le même créneau, la même salle et le même
  professeur à des groupes de classes différentes, c'est l'**alignement**
  Omniscol. Voir [Alignements de groupes](#page-core-concepts.alignments).
- **Regroupements** : un regroupement Hyperplanning réunit plusieurs
  groupes pour suivre un même cours ; dans Omniscol, c'est un **groupe de
  groupes** (disponible sur toutes les offres). Voir
  [Groupes de groupes](#page-core-concepts.groups-of-groups). Selon le cas, un regroupement
  entre classes ou promotions différentes peut aussi relever de
  l'**alignement** ci-dessus.
- **Cours associés** (alternance demi-groupes) : Omniscol gère cela
  nativement via les **cours associés**. Voir
  [Cours complexes](#page-core-concepts.complex-lessons).
- **Service d'enseignement** : la continuité pédagogique (mêmes
  ressources d'une séance à l'autre) se reproduit en gardant le même
  professeur et la même salle sur les séances d'un cours — il n'y a pas
  d'entité dédiée.
- **Cours sur calendrier** : si vous utilisez Hyperplanning en mode
  calendrier pour des modules à dates précises, Omniscol couvre les
  mêmes besoins avec son [mode calendrier](#page-timetables.calendar-mode),
  inclus dans l'offre Premium.
- **Hyperplanning vs Aurion** : si votre établissement utilise
  Hyperplanning **et** Aurion, la migration concerne uniquement le
  planning ; Aurion continue à alimenter la structure
  administrative. Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure

1. **Récupérer les données** depuis Hyperplanning vers un tableur —
   listes des intervenants, étudiants, salles et cours. Selon votre
   version, cela se fait par copier-coller d'une liste ou par son
   export ; reportez-vous à la documentation Hyperplanning.
2. **Préparer les fichiers Omniscol** au format d'import :
   utilisateurs CSV, cours CSV. Voir
   [Préparer ses données pour un import massif](#page-getting-started.preparing-data).
3. **Créer un compte Omniscol bac-à-sable** pour tester l'import
   sans risque.
4. **Importer en plusieurs passes** :

   - utilisateurs (professeurs, étudiants),
   - classes et groupes,
   - matières,
   - cours via l'[import massif tableur](#page-timetables.mass-import).
5. **Reconstruire les cours complexes** (alignements, associés,
   alternés) à la main si l'import les a aplatis.
6. **Vérifier le diagnostic** et corriger les incohérences détectées.
7. **Lancer une génération de test** pour valider la faisabilité.
8. **Snapshot** avant de basculer vers le compte de production.

#### Migrer les utilisateurs en douceur

Bonne pratique : importer les utilisateurs dans Omniscol en mode
**inactif** d'abord. Vous validez les données, vous basculez la
configuration (SSO si applicable), et vous activez les comptes en
une seule passe quand tout est prêt. Cela évite que les utilisateurs
reçoivent une invitation prématurée.

#### Ce qui ne se migre pas

- **Historique de Hyperplanning** au-delà des EDT en cours — pour
  conserver l'historique, gardez Hyperplanning en lecture seule en
  archive plutôt que de tout migrer.
- **Personnalisations visuelles** Hyperplanning — refaites-les dans
  Omniscol selon votre charte. Voir
  [Personnalisation des panneaux](#page-panels.customization).

#### Procédure — Migration Hyperplanning → Omniscol

1. **Migrer depuis Hyperplanning** : la séquence en 8 passes suit
   l'ordre export → préparer → bac-à-sable → import multi-passe →
   correction des cours complexes → diagnostic → génération test →
   bascule.
2. **Passe 1 — Récupération depuis Hyperplanning** : sortez les listes
   (intervenants, étudiants, salles, cours) vers un tableur. Selon la
   version, par copier-coller d'une liste ou par son export — voir la
   documentation Hyperplanning. Plus c'est propre côté source, plus
   c'est rapide ensuite.
3. **Passe 2-3 — Préparer + bac-à-sable** : adaptez les colonnes au
   canevas Omniscol (voir
   [Préparer ses données](#page-getting-started.preparing-data)). Créez
   un **compte Omniscol bac-à-sable** pour tester l'import sans
   risque sur la production.
4. **Passe 4 — Import multi-passe** dans l'ordre :
   **utilisateurs** → **classes et groupes** → **matières** →
   **cours** via [import massif](#page-timetables.mass-import). L'ordre
   compte : les cours référencent les classes et professeurs, qui doivent
   préexister.
5. **Passe 5 — Cours complexes** : alignements (cours communs à
   plusieurs promotions côté Hyperplanning → alignements Omniscol),
   associés (alternance demi-groupes), alternés A/B. L'import les aplatit
   souvent — reconstruisez à la main via les icônes complexes sur la
   carte du cours.
6. **Passe 6-7 — Diagnostic + génération test** : laissez tourner
   le diagnostic, corrigez les incohérences. Lancez une **génération
   auto** pour vérifier la faisabilité globale avant de migrer en
   production.
7. **Passe 8 — Bascule** : créez un **snapshot** avant de basculer.
   Activez les comptes utilisateurs (importés en inactif jusqu'ici).
   Publiez. Gardez Hyperplanning en lecture seule comme archive — la
   migration n'emporte pas l'historique au-delà des EDT en cours.

   Si vous avez aussi **Aurion** : la migration concerne uniquement
   le planning, Aurion reste source administrative. Voir
   [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Voir aussi

- [Vue d'ensemble de la migration](#page-migration.overview)
- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Import massif des cours via tableur](#page-timetables.mass-import)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)

<a id="page-migration.from-edt"></a>

### 12.3  Migrer depuis EDT / PRONOTE (Index Education)

*Source: `help/fr/migration/from-edt.md` · id: migration.from-edt · Audience: admin · Updated: 2026-06-30*

**EDT** et **PRONOTE** (Index Education) sont les outils les plus
répandus dans l'enseignement secondaire français — collèges et lycées,
publics comme privés. Le duo couvre l'emploi du temps (EDT) et la vie
scolaire — notes, bulletins, cahier de texte (PRONOTE). Migrer vers
Omniscol concerne d'abord la partie emploi du temps ; pour la vie
scolaire avancée (notes, bulletins, communications parents), PRONOTE
peut rester en parallèle.

#### Le chemin le plus direct : l'export STSweb

EDT construit ses structures à partir de **STSweb** : les **services**
(un enseignant assure un volume horaire d'une matière dans une classe)
viennent de STSweb et y remontent en fin de préparation. C'est une bonne
nouvelle pour la migration, car **Omniscol importe directement un export
STSweb** (fichier STS) depuis l'écran [Import et export](#page-admin.import-export).

Cet import reconstitue d'un coup les données de structure :
établissement (code UAI), année scolaire, **matières**, **niveaux**
(MEF) et leur grille horaire réglementaire, **classes** (divisions),
**groupes**, **enseignants**, et les **services** — qui deviennent des
**cours** Omniscol. Le détail des formats français pris en charge est
décrit sur [Formats français](#page-admin.french-formats).

Le tableur reste utile pour ce que STSweb ne porte pas (salles,
regroupements particuliers, souhaits fins) : voir l'import massif
ci-dessous.

#### Ce qui se reprend autrement

- **Salles, sites distants** : STSweb ne décrit pas finement les salles.
  Reprenez-les au tableur ou ressaisissez-les, puis reconstituez les
  sites. Pour un ensemble de salles interchangeables (l'équivalent d'un
  « groupe de salles » EDT), utilisez une **spécialisation** partagée que
  le solveur respectera. Voir [Spécialisations de salles](#page-core-concepts.classroom-specializations).
- **Souhaits et indisponibilités des enseignants** : la granularité
  diffère de celle d'EDT ; prévoyez une re-saisie (envoi des liens de
  saisie avant la rentrée) ou un import approximatif à ajuster.
- **Vacances et calendrier scolaire** : ils se définissent dans le
  paramétrage de l'année scolaire (gabarit pays ou saisie), pas via
  l'export.

#### Ce qui reste à PRONOTE

Omniscol ne reprend pas (et vous pouvez les laisser à PRONOTE) :

- notes, évaluations, bulletins, compétences ;
- cahier de texte, devoirs ;
- vie scolaire au sens large (communications parents, sondages) ;
- les absences peuvent rester dans PRONOTE, ou être suivies dans
  Omniscol si vous préférez les y basculer.

#### Correspondances principales

| EDT / STSweb | Omniscol |
| --- | --- |
| Classe (division) | Classe |
| Partie de classe | Groupe ; **partition** pour la relation d'exclusivité au même créneau |
| Groupe (besoins, spécialités, option, langue) | Groupe (intra-classe) ; alignement ou groupe de groupes si inter-classes |
| Service (STSweb) | Cours (les séances en découlent au placement) |
| Matière | Matière |
| Salle / groupe de salles | Salle ; pool interchangeable = salle non fixée (affectation auto) ou spécialisation partagée |
| Site distant | Site (avec temps de trajet) |
| Souhait / indisponibilité enseignant | Disponibilités (vœux) ; niveau « impossible » (noir) pour une indisponibilité |
| Alternance Q1 / Q2 (quinzaines) | Semaines alternées A / B |
| Permanence / CDI | Service du personnel (surveillance) + un « cours d'étude » pour le groupe sans cours |

#### Procédure

1. **Récupérer l'export STSweb** (fichier STS) de l'établissement —
   c'est la source officielle des structures et des services.
2. **Importer le fichier STS** dans un compte Omniscol bac-à-sable,
   depuis [Import et export](#page-admin.import-export). La structure (établissement, année,
   matières, niveaux, classes, groupes, enseignants, services → cours)
   se reconstitue d'un coup. Voir [Formats français](#page-admin.french-formats).
3. **Compléter au tableur** ce que STSweb ne porte pas (salles,
   spécialisations, regroupements particuliers) via l'import massif. Voir
   [Import massif des cours via tableur](#page-timetables.mass-import) et [Préparer ses données pour un import massif](#page-getting-started.preparing-data).
4. **Vérifier l'alternance des semaines** : la convention Q1/Q2 d'EDT
   doit correspondre aux semaines alternées **A/B** d'Omniscol.
5. **Reprendre les souhaits et indisponibilités** des enseignants —
   re-saisie ou import approximatif à ajuster.
6. **Lancer le diagnostic** Omniscol, puis une génération de test.
7. **Snapshot** avant de basculer vers le compte de production.

#### Cohabitation EDT + Omniscol pendant la transition

Pendant une période transitoire (souvent un trimestre), il est fréquent
de garder PRONOTE pour la vie scolaire et de basculer l'emploi du temps
sur Omniscol. PRONOTE reçoit normalement son emploi du temps depuis EDT ;
si vous souhaitez continuer à y afficher des emplois du temps gérés
ailleurs, vérifiez avec Index Education ce que PRONOTE sait consommer —
ne présumez pas qu'un flux externe sera repris tel quel.

#### Migration scolaire typique

Cas standard d'un collège ou d'un lycée passant d'EDT à Omniscol :

- export STSweb en juin,
- import et tests Omniscol pendant l'été,
- bascule à la rentrée de septembre,
- PRONOTE conservé pour la vie scolaire si l'établissement le souhaite.

#### Procédure — Migration scolaire type juin → septembre

1. **Le cas type d'un établissement** qui bascule d'EDT/PRONOTE vers
   Omniscol : export en juin, tests pendant l'été, bascule à la rentrée.
   PRONOTE conservé pour la vie scolaire si souhaité.
2. **Juin — Export STSweb** : récupérez le fichier STS de
   l'établissement (la source officielle des structures et services).
   À défaut, exportez les listes d'EDT (cours, services, classes) vers
   un tableur — selon votre version, par export de listes ou
   copier-coller ; voir la documentation EDT.
3. **Juillet — Compte bac-à-sable Omniscol** : importez le fichier STS
   depuis [Import et export](#page-admin.import-export) (voir [Formats français](#page-admin.french-formats)).
   La structure se reconstitue d'un coup. Vous testez sans pression :
   si quelque chose ne convient pas, vous itérez tranquillement.
4. **Août — Compléter au tableur** ce que STSweb ne porte pas (salles,
   spécialisations de salles, regroupements) via l'import massif (voir
   [Import massif des cours via tableur](#page-timetables.mass-import)). Alignez l'**alternance des semaines**
   (Q1/Q2 d'EDT → A/B d'Omniscol).
5. **Août — Souhaits et disponibilités** des enseignants : la
   granularité diffère. Prévoyez soit une **re-saisie** (envoi des liens
   de saisie avant la rentrée), soit un **import approximatif** à
   ajuster ensuite.
6. **Fin août — Diagnostic** Omniscol pour repérer les incohérences
   (matières manquantes, conflits, disponibilités non transposées). Lancez
   une **génération de test** sur les semaines de rentrée pour valider la
   faisabilité.
7. **Septembre — Bascule** : snapshot avant, puis publication des emplois
   du temps. **PRONOTE conservé** pour la vie scolaire si vous le
   souhaitez.

#### Voir aussi

- [Vue d'ensemble](#page-migration.overview)
- [Depuis Hyperplanning (Index Education)](#page-migration.from-hyperplanning)
- [Formats français](#page-admin.french-formats)
- [Import massif des cours via tableur](#page-timetables.mass-import)

<a id="page-migration.from-asc"></a>

### 12.4  Migrer depuis aSc Timetables

*Source: `help/fr/migration/from-asc.md` · id: migration.from-asc · Audience: admin · Updated: 2026-06-30*

**aSc Timetables** (Slovaquie) est un logiciel de génération d'emplois
du temps ancien et très répandu, notamment dans les établissements
internationaux et plusieurs pays d'Europe centrale. Bonne nouvelle :
Omniscol lit et écrit directement le fichier natif d'aSc Timetables,
sans tableur intermédiaire ni remappage manuel des structures.

#### Un fichier, dans les deux sens

aSc Timetables enregistre un emploi du temps dans un fichier **XML**
(format « aSc Timetables 2012 »). Omniscol sait :

- **lire** ce fichier pour reconstituer un emploi du temps complet
  (classes, groupes, professeurs, matières, salles, cours) ;
- **réécrire** un fichier du même type à partir d'un emploi du temps
  Omniscol, pour le rouvrir dans aSc ou Edupage (solution de vie scolaire
  du même éditeur).

Tout se fait depuis l'écran [Import et export](#page-admin.import-export), sans manipulation
technique : pour exporter, le bouton
Exporter au format aSc (.xml) ;
pour importer, vous sélectionnez simplement le fichier XML produit par
aSc. L'aller-retour est **réversible** : exporter puis réimporter
redonne la même structure côté Omniscol, aux conventions de nommage
près.

#### Ce qui se transpose

Repris automatiquement à la lecture du fichier :

- **Classes** et leurs **groupes** (y compris les divisions pour les TP).
- **Matières** avec leurs codes.
- **Salles** avec leur capacité.
- **Professeurs** (nom, prénom, coordonnées).
- **Cours** (matière, volume, professeur) et leurs **séances** posées (jour, créneau, salle).
- **Récréations et pauses** de la journée.
- **Semaines alternées** (A/B) si elles sont configurées dans aSc.

#### Ce qui demande un coup d'œil après import

- **Contraintes complexes** propres à aSc (contraintes de séquence,
  salle conditionnelle, anti-chaînage très spécifique) : Omniscol les
  convertit au mieux, mais certaines règles s'expriment autrement et
  méritent une relecture. La salle conditionnelle relève plutôt des
  [Spécialisations de salles](#page-core-concepts.classroom-specializations) ; les autres, des
  [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability) et des
  [Contraintes horaires (système général)](#page-core-concepts.time-constraints).
- **Cours partagés par plusieurs classes** (une matière commune à
  plusieurs classes) : convertis en [Groupes de groupes](#page-core-concepts.groups-of-groups).
  Vérifiez que le résultat correspond à votre intention.
- **Renommage et aller-retour** : Omniscol ne conserve pas les
  identifiants internes d'aSc ; lorsqu'il réécrit un fichier aSc, il
  reconstruit les correspondances à partir des entités, en particulier
  de leur **nom**. En pratique, si vous comptez ré-exporter vers aSc,
  évitez de renommer entre-temps les classes, professeurs et matières,
  sinon les correspondances se décalent.

#### Procédure

1. **Dans aSc** : enregistrez votre emploi du temps au format **XML**
   (version 2012 ou la plus proche proposée par votre aSc).
2. **Créez un compte Omniscol bac-à-sable** pour tester sans risque.
3. **Importez le fichier** depuis l'écran [Import et export](#page-admin.import-export) :
   sélectionnez le fichier XML aSc, puis validez.
4. **Lisez le diagnostic** Omniscol pour repérer les incohérences
   (cours sans salle, disponibilités non transposées, etc.).
5. **Ajustez les contraintes complexes** qui n'auront pas pu être
   converties automatiquement.
6. **Lancez une génération de test** pour vérifier que les contraintes
   produisent un résultat conforme à ce que vous aviez sous aSc.
7. **Faites un snapshot** avant de basculer vers le compte de production.

#### Continuer à alimenter aSc en parallèle

Si vous gardez aSc le temps d'une transition, l'export inverse permet de
continuer à le nourrir depuis Omniscol — utile, par exemple, quand des
établissements partenaires consultent encore aSc. Le fichier produit se
rouvre dans aSc Desktop (version 2012 ou ultérieure).

#### Points d'attention

- **Caractères accentués** : si certains accents ressortent mal après un
  aller-retour, c'est une question d'encodage de fichier. L'export
  Omniscol utilise par défaut l'encodage attendu par aSc Desktop ;
  vérifiez simplement qu'un nom accentué survit à l'aller et au retour.
- **Moteurs de génération différents** : aSc et Omniscol n'ont pas le
  même profil de solveur. Un emploi du temps qui se générait facilement
  dans aSc peut demander quelques ajustements dans Omniscol, et
  inversement.
- **Versions d'aSc** : la lecture vise le format 2012. Des versions plus
  anciennes peuvent ne pas être directement compatibles — passez alors
  par un enregistrement au format 2012 depuis aSc Desktop.

#### Procédure — Aller-retour XML aSc ↔ Omniscol

1. **Omniscol lit et écrit le fichier natif d'aSc Timetables 2012** :
   aller-retour direct, sans tableur intermédiaire.
2. **Côté aSc** : enregistrez l'emploi du temps au format **XML 2012**
   (ou la version la plus proche) et conservez le fichier sur votre
   poste.
3. **Côté Omniscol bac-à-sable** : ouvrez [Import et export](#page-admin.import-export) et
   sélectionnez le fichier XML aSc. L'import reconstitue classes,
   groupes, matières, salles, professeurs, cours, semaines alternées et
   récréations.
4. **Vérifiez le diagnostic** : cours sans salle, disponibilités non
   transposées, cours multi-classes convertis en
   [Groupes de groupes](#page-core-concepts.groups-of-groups). Rappel : pour un aller-retour
   propre, ne renommez pas classes, professeurs et matières si vous
   comptez ré-exporter — Omniscol s'appuie sur leur nom pour reconstruire
   les correspondances.
5. **Ajustez les contraintes complexes** propres à aSc (séquences,
   anti-chaînage très spécifique) : la conversion fait au mieux,
   certaines règles s'expriment autrement dans Omniscol. Voir
   [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability).
6. **Lancez une génération de test** dans Omniscol pour vérifier que le
   résultat est conforme. ⚠ aSc et Omniscol n'ont pas le même profil de
   solveur ; un emploi du temps facile dans aSc peut demander des
   ajustements dans Omniscol, et réciproquement.
7. **Export inverse** (si vous gardez aSc en parallèle) : bouton
   Exporter au format aSc (.xml)
   dans [Import et export](#page-admin.import-export). Le fichier se rouvre dans aSc Desktop
   2012+ ; l'aller-retour préserve la structure (pertes mineures sur les
   conventions de nommage uniquement).

#### Voir aussi

- [Vue d'ensemble](#page-migration.overview)
- [Import et export](#page-admin.import-export)
- [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)

<a id="page-migration.from-ade"></a>

### 12.5  Migrer depuis ADE / ADE Campus

*Source: `help/fr/migration/from-ade.md` · id: migration.from-ade · Audience: admin · Updated: 2026-06-30*

**ADE** (éditeur Adesoft), souvent utilisé dans sa version web **ADE
Campus**, est répandu dans l'enseignement supérieur, en particulier les
universités et les grandes écoles. ADE est **centré sur l'activité** (le
« cours session ») et se synchronise fréquemment avec le système
d'information de l'établissement (Apogée, Pegase, Aurion, UNIT4…). Le
passage à Omniscol concerne d'abord la planification ; la
synchronisation avec votre système d'information reste à reconfigurer
côté Omniscol.

#### Périmètre

Ce qui se transpose :

- **programmes** (PGE, CPGE, BBA…) et leurs groupes (groupes utilitaires,
  demi-promos) ;
- **intervenants** (permanents, non permanents, vacataires) ;
- **activités** (cours sessions) avec leur type, leur durée et leur
  nombre de répétitions ;
- **salles et équipements** (par bâtiment et niveau, avec leur capacité) ;
- **disponibilités et indisponibilités** des ressources.

ADE et Omniscol ont des modèles globalement compatibles, mais les
conventions de nommage diffèrent. Prévoyez un mapping initial.

#### Correspondances

| ADE (ADE Campus) | Omniscol |
| --- | --- |
| Programme (PGE, CPGE, BBA…) | Plusieurs classes (une **promotion**/année = une classe) |
| Groupe utilitaire / demi-promo | Groupe ; **partition** si deux demi-promos suivent des séances différentes au même créneau |
| Intervenant | Professeur |
| Activité (cours session) | Cours (et ses séances) |
| Typologie d'activité (CM, TD, TP…) | Type de cours |
| Modalité (présentiel, distanciel…) | Modalité (attribut Premium) |
| Plafond / inscrits | Effectif théorique — pas de plafond distinct (la limite de places vient de la capacité de salle) |
| Salle / équipement (bâtiment, niveau, capacité) | Salle (site, capacité) ; seul l'équipement **mobile** devient une ressource |
| Disponibilité / indisponibilité (échelle couleurs) | Disponibilités (vœux) : 4 niveaux — impossible / indésirable / préféré / neutre |
| Association d'activités | Selon le lien : alignement, concaténation ou cours associés |
| Code CURSUS / UNIT4 | Identifiant externe (trace de la synchro SI) |

#### Procédure

1. **Récupérer les données** depuis ADE — programmes, intervenants,
   salles, activités. ADE présente les données en **listes configurables**
   (vues Listing, choix des colonnes) que vous pouvez imprimer ou
   exporter vers un tableur via le menu **Impression**.
2. **Préparer les fichiers Omniscol** à partir de ces exports
   (voir [Préparer ses données pour un import massif](#page-getting-started.preparing-data)).
3. **Importer depuis un tableur** dans un emploi du temps de test
   (voir [Import massif des cours via tableur](#page-timetables.mass-import)).
4. **Reconstituer les liens** : alignements (les associations d'activités
   côté ADE), alternances, partitions de demi-promos — ADE et Omniscol
   n'utilisent pas exactement les mêmes primitives.
5. **Lancer une génération de test**.

#### Points d'attention

- **ADE planifie sur des dates précises** : la vue **Placement** (semaine,
  jour, début, fin) et la barre des semaines font d'ADE un outil de type
  calendrier. Pour retrouver ce comportement, utilisez le mode calendrier
  Omniscol, inclus dans l'offre Premium (voir [Mode calendrier](#page-timetables.calendar-mode)).
- **Demi-promos et groupes utilitaires** : un programme se découpe souvent
  en groupes utilitaires et en demi-promos. Côté Omniscol, les demi-promos
  correspondent à une **partition** de la classe ; pensez la granularité
  des groupes au démarrage.
- **Salles imposées ou « au choix »** : dans ADE, une salle peut être
  imposée à une activité ou laissée au choix du moteur. Côté Omniscol, une
  salle imposée est conservée telle quelle par l'algorithme ; pour une
  salle « au choix », laissez la séance sans salle précise — l'algorithme
  en choisit une sur le site, en respectant la capacité et l'éventuelle
  **spécialisation** requise (un ensemble de salles interchangeables se
  modélise par une spécialisation partagée). Voir
  [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources) et [Attribution automatique des salles](#page-timetables.auto-room-assignment).
- **Disponibilités graduées** : ADE gère des disponibilités à plusieurs
  niveaux (du vert au rouge, plus une couche dynamique). Omniscol utilise
  des **disponibilités (vœux)** à 4 niveaux (impossible, indésirable,
  préféré, neutre) — reprenez surtout les extrêmes (impossible et
  préféré), les niveaux intermédiaires se retravaillent ensuite.
- **Responsable pédagogique** : ADE attache un responsable pédagogique à
  chaque activité. Omniscol ne porte pas ce rôle au niveau du cours ;
  conservez l'information par une convention de nommage ou un mémo si elle
  vous est utile.
- **Flux iCal** : ADE publie souvent les emplois du temps en flux iCal.
  L'import Omniscol ne lit pas l'iCal ; un export iCal devra d'abord être
  converti en tableau.
- **Synchronisation au système d'information** : si ADE était synchronisé
  avec votre SI (Apogée, Pegase, Aurion, UNIT4…), vous devrez reconfigurer
  cette synchronisation côté Omniscol — souvent via l'API ou la
  synchronisation avec des systèmes externes. Le champ **Code CURSUS /
  UNIT4** d'ADE en est la trace côté source. Voir [Synchronisation avec des systèmes externes](#page-integrations.extsync).

#### Procédure — Migration ADE → Omniscol (supérieur)

1. **ADE (Adesoft), souvent en version ADE Campus**, est répandu dans le
   supérieur. La migration concerne d'abord la planification ; la
   synchronisation avec le système d'information (Apogée, Pegase, Aurion,
   UNIT4) reste à reconfigurer côté Omniscol.
2. **Récupération des données ADE** : programmes, intervenants, salles,
   activités (avec type, durée, répétitions, plafond). ADE présente ces
   données en listes configurables (vues Listing) que l'on imprime ou
   exporte via le menu **Impression**. Un flux iCal devra d'abord être
   converti en tableau (l'import ne lit pas l'iCal). Si vous planifiez sur
   dates précises, conservez aussi cet aspect.
3. **Mapping initial** : ADE et Omniscol ont des modèles compatibles mais
   des conventions de nommage différentes. Préparez les fichiers selon le
   canevas Omniscol (voir [Préparer ses données pour un import massif](#page-getting-started.preparing-data)). Pensez la
   granularité des **groupes étudiants** (demi-promos, groupes utilitaires)
   au démarrage — c'est le point délicat en supérieur.
4. **Import depuis un tableur** dans un emploi du temps de test :
   intervenants, programmes, matières, salles, puis activités
   (voir [Import massif des cours via tableur](#page-timetables.mass-import)). Le tableur des cours ne comporte
   pas de colonne d'identifiant externe ; pour les rapprochements futurs
   avec votre système d'information, prévoyez plutôt la synchronisation
   externe (voir [Synchronisation avec des systèmes externes](#page-integrations.extsync)).
5. **Reconstitution des liens** : alignements multi-programmes (les
   **associations** d'activités côté ADE), alternances, partitions de
   demi-promos. Reprenez aussi les salles laissées « au choix » en
   laissant l'algorithme les assigner (via une spécialisation partagée si
   besoin). ADE et Omniscol n'utilisent pas exactement les mêmes
   primitives — comptez sur une passe manuelle de finition.

   Si ADE planifiait sur dates précises, utilisez le **mode calendrier**
   Omniscol (inclus en Premium) pour préserver ce comportement (voir
   [Mode calendrier](#page-timetables.calendar-mode)).
6. **Génération de test** Omniscol pour valider la faisabilité.
   Diagnostic, corrections, itération. Plus vous testez avant la bascule,
   moins vous corrigez après.
7. **Reconfiguration du système d'information** : si ADE était synchronisé
   avec Apogée, Pegase, Aurion ou UNIT4, vous devrez reconfigurer cette
   synchronisation côté Omniscol via l'API (voir [API Omniscol](#page-integrations.api-tokens))
   ou la synchronisation avec des systèmes externes (voir
   [Synchronisation avec des systèmes externes](#page-integrations.extsync)). Pour Aurion spécifiquement, voir
   [Connecteur Aurion](#page-integrations.aurion) — 3 modes possibles.

#### Voir aussi

- [Vue d'ensemble](#page-migration.overview)
- [API Omniscol](#page-integrations.api-tokens)
- [Synchronisation avec des systèmes externes](#page-integrations.extsync)
- [Mode calendrier](#page-timetables.calendar-mode)

<a id="page-migration.from-undeuxtemps"></a>

### 12.6  Migrer depuis UnDeuxTEMPS

*Source: `help/fr/migration/from-undeuxtemps.md` · id: migration.from-undeuxtemps · Audience: admin · Updated: 2026-06-30*

**UnDeuxTEMPS** (anciennement 1-2-3 Temps) est un outil de
planification utilisé dans une partie de l'enseignement supérieur
français, notamment pour les formations à fort tutoriel /
travaux pratiques. Migrer demande une attention particulière à la
décomposition des cours et aux concepts de groupes.

#### Périmètre

À reprendre :

- classes / groupes (souvent finement décomposés),
- professeurs et services,
- matières,
- salles avec leurs caractéristiques,
- cours et leurs récurrences,
- contraintes spécifiques (équipement, suivi pédagogique).

#### Import direct du format UDT

Omniscol lit directement le **format UDT** d'UnDeuxTEMPS : depuis
le module **Administration**, l'écran d'import et d'export reprend
un emploi du temps à partir des fichiers `.DBF` de l'export (au minimum
`UDTCOURS.DBF` ; `UDTREGR.DBF` et `UDTREM.DBF` sont optionnels). Cet
import reconstitue les cours, les professeurs, les classes, les salles
et les horaires. La
décomposition fine des groupes et les rotations de travaux pratiques
demandent ensuite une reprise manuelle : la suite de cette page décrit
cette transposition.

#### Spécificités UnDeuxTEMPS à transposer

UnDeuxTEMPS gère parfois des **rotations de groupes** complexes
(par exemple un groupe d'étudiants tourne sur 4 ateliers TP en
4 semaines). Selon le rythme, le concept Omniscol équivalent est :

- pour une **permutation de deux demi-groupes** sur des créneaux
  consécutifs, les **cours associés** ;
- pour une rotation **étalée sur plusieurs semaines** (A, B, C…), les
  **cours alternés** (voir [Cours complexes](#page-core-concepts.complex-lessons)) ;
- pour des rotations **atypiques** qui ne suivent pas un rythme
  hebdomadaire (dates fixes sur le semestre), le **mode calendrier**
  (inclus dans l'offre Premium, voir [Mode calendrier](#page-timetables.calendar-mode)).

#### Procédure

1. **Import du format UDT** : reprenez l'emploi du temps à partir
   des fichiers `.DBF` (cours, professeurs, classes, salles, horaires)
   pour la base de la structure.
2. **Export complémentaire** vers Excel ou CSV (selon la version)
   pour les éléments non couverts par le format UDT, notamment la
   décomposition fine des groupes.
3. **Conversion vers les formats Omniscol** :

   - décomposition des groupes selon votre logique pédagogique,
   - mapping des UE vers matières Omniscol,
   - reconstruction des rotations en cours associés ou en
     calendrier selon le cas.
4. **Import progressif** sur compte bac-à-sable.
5. **Vérification des rotations** par les responsables pédagogiques.
6. **Diagnostic + génération de test**.

#### Points d'attention

- **Rotations de TP** : la conversion n'est pas toujours mécanique.
  Documentez la logique de rotation côté UnDeuxTEMPS et alignez sur
  les primitives Omniscol au cas par cas.
- **Étudiants par parcours** : si les étudiants suivent plusieurs
  parcours simultanés (typique en supérieur), profitez de la
  migration pour clarifier la modélisation côté Omniscol via les
  groupes libres ou les groupes de groupes.

#### Procédure — Migrer une rotation de TP UnDeuxTEMPS

1. **Le cas délicat UnDeuxTEMPS** : les rotations de groupes sur
   plusieurs ateliers TP. Le concept n'a pas de transposition
   mécanique vers Omniscol — c'est soit des cours associés, soit du
   mode calendrier.
2. **Récupération des données** : l'import du format UDT (fichiers
   `.DBF`) reprend les professeurs, les salles, les cours et leurs
   récurrences. Complétez par un export Excel ou CSV pour la structure
   des groupes (souvent finement décomposée) et les matières
   (UE/modules), que la rotation des travaux pratiques mobilise.
3. **Arbitrage rotation** : une **permutation de deux demi-groupes**
   sur créneaux consécutifs → **cours associés** ; une rotation
   **étalée sur plusieurs semaines** (A, B, C…) → **cours alternés**
   (voir [Cours complexes](#page-core-concepts.complex-lessons)) ; une
   rotation **atypique** sur dates fixes du semestre → **mode
   calendrier** (voir [Mode calendrier](#page-timetables.calendar-mode)).
4. **Conversion des fichiers** vers le canevas Omniscol :
   décomposition des groupes selon votre logique pédagogique, mapping
   UE → matières Omniscol, reconstruction des rotations dans la
   primitive choisie à l'étape précédente.
5. **Import progressif** sur compte bac-à-sable. Professeurs et matières
   d'abord, puis classes et groupes, puis cours. Les rotations
   demandent une attention manuelle après import : l'import des cours
   les reconstitue rarement parfaitement.
6. **Vérification par les responsables pédagogiques** : la rotation
   des TP fait partie de la logique métier. Les coordinateurs UE
   doivent valider que la conversion correspond à leur intention
   avant le passage en production.
7. **Pour les étudiants suivant plusieurs parcours simultanés** (cas
   fréquent en supérieur), profitez de la migration pour clarifier la
   modélisation côté Omniscol : **groupes libres** pour les
   inscriptions ouvertes, **groupes de groupes** pour les
   parcours composites. Diagnostic + génération de test avant
   bascule.

#### Voir aussi

- [Vue d'ensemble de la migration](#page-migration.overview)
- [Cours complexes](#page-core-concepts.complex-lessons)
- [Mode calendrier](#page-timetables.calendar-mode)
- [Import massif des cours via tableur](#page-timetables.mass-import)

<a id="page-migration.from-spreadsheet"></a>

### 12.7  Migrer depuis un tableur Excel maison

*Source: `help/fr/migration/from-spreadsheet.md` · id: migration.from-spreadsheet · Audience: admin · Updated: 2026-05-12*

Beaucoup d'établissements — surtout les petites structures, les
écoles privées, les formations courtes — gèrent encore leur EDT dans
un tableur Excel maison. Migrer vers Omniscol est dans ce cas
particulièrement simple : pas de format propriétaire à décoder, juste
un peu de discipline pour structurer les données.

#### Avant de commencer : faire le tri

Un tableur d'EDT cumule souvent plusieurs « onglets » de natures
différentes : la liste des professeurs, celle des classes, celle des
matières, la grille de l'EDT, des notes diverses. Avant l'import,
clarifiez :

- la **liste des professeurs** (un onglet propre),
- la **liste des élèves** (un onglet propre, si elle existe),
- la **liste des classes** et de leurs effectifs,
- la **liste des salles**,
- les **cours** : pour chaque ligne, classe, matière, professeur, salle,
  jour, heure, durée.

Si votre tableur ne sépare pas ces informations, faites-le
maintenant — c'est de toute façon nécessaire pour l'import.

#### Format d'import attendu

L'import se fait par **copier-coller** depuis votre tableur (Excel,
Google Sheets, Numbers, Calc…), dans un canevas de colonnes
documenté. Les colonnes sont reconnues par leur **position** (vous
réorganisez le canevas pour qu'il colle à votre fichier), pas par le
nom de l'en-tête. Voir [Préparer ses données pour un import massif](#page-getting-started.preparing-data) pour les
détails (ordre des colonnes, formats de dates, codes matières, etc.).

Pour les cours, l'[Import massif des cours via tableur](#page-timetables.mass-import) est l'outil dédié : vous
**copiez-collez** directement les lignes de votre tableur dans une zone
éditable, avec une structure ligne = cours.

#### Procédure

1. **Nettoyer** le tableur source : enlever les colonnes inutiles,
   harmoniser les libellés (un professeur ne doit pas apparaître avec
   trois orthographes différentes).
2. **Préparer un onglet par type d'entité** : professeurs, élèves,
   classes, salles, cours — vous collerez chaque onglet à son tour.
3. **Compte Omniscol de test** pour valider l'import sans risque.
4. **Imports successifs**, en commençant par les référentiels
   (professeurs, salles, matières) avant les cours qui s'y réfèrent.
5. **Vérifier le diagnostic** Omniscol pour détecter ce qui n'a pas
   été correctement interprété.
6. **Lancer une génération de test** (même si vous gardez le
   placement manuel de votre tableur) pour valider la faisabilité.

#### Avantages de la migration

- **Un seul outil** réunit le tableur, les PDF d'EDT et les mises à
  jour qui circulaient par e-mail.
- **Mise à jour en temps réel** : chacun voit la dernière version dès
  qu'elle change.
- **Diffusion automatique** : iCal, panneaux d'affichage, portails
  élèves et professeurs.
- **Diagnostic** : Omniscol détecte les conflits que votre tableur
  laisse passer.

#### Garder le tableur en lecture seule pour archive

Pas besoin de supprimer votre tableur historique. Gardez-le en
lecture seule en archive (par exemple sur un dossier partagé) — il
peut servir si vous voulez retrouver une configuration ancienne.
Omniscol devient alors la source de vérité opérationnelle ; le
tableur reste un témoignage historique.

#### Procédure — Migrer un EDT Excel maison

1. **Le cas le plus simple** : un EDT géré dans un Excel maison. Pas
   de format propriétaire à décoder, juste de la discipline pour
   structurer les données avant import.
2. **Avant l'import — faire le tri** dans le tableur source. Si
   votre fichier mélange professeurs, classes, salles, cours sur le même
   onglet, séparez d'abord en onglets thématiques : professeurs,
   élèves, classes, salles, cours.
3. **Nettoyez** chaque onglet : pas de colonnes inutiles,
   **harmonisez les libellés** (un professeur ne doit pas apparaître sous
   trois orthographes différentes), supprimez les lignes fusionnées.
   Une ligne = une entité.
4. **Compte de test Omniscol** : créez un compte de test avant
   de toucher à la production. Vous validez les imports sans risque.
5. **Imports successifs**, dans l'ordre des dépendances :
   **référentiels d'abord** (professeurs, salles, matières), **cours
   ensuite** (qui s'y réfèrent). Utilisez l'[Import massif des cours via tableur](#page-timetables.mass-import)
   pour les cours — vous y collez vos lignes directement depuis le tableur.
6. **Diagnostic** : Omniscol détecte les incohérences (cours sans
   salle, professeurs inconnus, conflits) que votre tableur ne voit pas.
   Corrigez avant de basculer.
7. **Génération de test** (optionnel — si vous voulez garder le
   placement manuel) pour valider la faisabilité. **Bascule** : votre
   ancien Excel reste en lecture seule comme archive ; Omniscol
   devient la source de vérité, avec diffusion automatique (iCal,
   panneaux, portails) et mise à jour temps réel.

#### Voir aussi

- [Vue d'ensemble](#page-migration.overview)
- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Import massif des cours via tableur](#page-timetables.mass-import)

---

## 13. Spécificités enseignement supérieur

<a id="page-higher-ed.overview"></a>

### 13.1  Spécificités enseignement supérieur — vue d'ensemble

*Source: `help/fr/higher-ed/overview.md` · id: higher-ed.overview · Updated: 2026-06-13*

L'enseignement supérieur, la formation continue et les centres de
formation ont des contraintes très différentes du primaire et du
secondaire. Cette section rassemble les pages qui couvrent ces
spécificités.

#### Caractéristiques typiques

- **Mode [calendrier](#page-glossary.calendar-mode)** plutôt
  qu'hebdomadaire — les enseignements sont rarement récurrents toute
  l'année, les séances sont plutôt datées une par une.
- **Intervenants externes nombreux** — vacataires, professeurs
  invités, experts. Voir [Intervenants externes](#page-higher-ed.external-faculty).
- **Promotions parallèles** plutôt que classes uniques — un master peut
  avoir plusieurs parcours qui partagent certains cours, des
  spécialisations en commun mais des projets en propre.
- **Co-enseignement** fréquent (binômes, double expertise).
- **Examens multi-salles** (amphithéâtres dédoublés). Voir
  [Examens multi-salles](#page-higher-ed.multi-room-exams).
- **Liens visioconférence par cours** (cours hybride, distanciel
  partiel). Voir [Liens de visioconférence par cours](#page-higher-ed.videoconference-links).
- **Étudiants en redoublement ou hors-cursus** à gérer.

#### Recommandations de configuration

- **Compte [Premium](#page-overview.plans-and-options)** — il inclut le mode
  calendrier, les disponibilités datées, plusieurs EDT actifs et les
  **évènements ponctuels** (soutenances, jurys, portes ouvertes). La
  qualification distanciel / hybride des séances — leur
  **[modalité](#page-glossary.lesson-modality)** — en fait aussi partie ; le
  **lien de visioconférence** seul reste disponible sur tous les comptes.
- **Mode calendrier** pour le ou les EDT principaux, indispensable dans
  la plupart des cas du supérieur.
- **Plusieurs EDT actifs en parallèle** si vous mélangez cours
  récurrents et cours ponctuels, ou si votre établissement couvre plusieurs
  facultés indépendantes, ou s'il s'agit d'un groupe d'écoles.
- **Groupes de groupes** pour les regroupements évolutifs.
- **Saisie des disponibilités en mode calendrier** — disponibilités
  saisies date par date par les intervenants, consolidées en temps réel.
- **API + intégrations** avec votre SIS ou ERP — souvent
  [la synchronisation avec des systèmes externes](#page-integrations.extsync) dans les
  écoles de commerce et d'ingénieurs. Elle synchronise les entités (professeurs,
  salles) et le catalogue de l'offre, et remonte les séances comme interventions
  vers le système central, source de vérité de l'établissement.

#### Vocabulaire

Ce que les écoles supérieures appellent **maquette pédagogique**,
**plaquette**, **programme** ou **syllabus** correspond, côté Omniscol, à
l'**ensemble des [cours](#page-glossary.course)** d'une classe ou d'une
formation — chaque cours étant une matière typée, affectée à une classe,
avec son volume horaire et ses contraintes. Ses
**[séances](#page-glossary.lesson)** en sont les occurrences planifiées.

Les autres termes du supérieur désignent des entités Omniscol plus
génériques, documentées au glossaire : **apprenant** et **participant**
renvoient à l'[étudiant](#page-glossary.student) ; **intervenant**,
**vacataire**, **professeur permanent** et **expert** au
[professeur](#page-glossary.teacher) ; **promotion**, **session** et
**cohorte** à la [classe](#page-glossary.class).

#### Cas d'usage du supérieur

- [FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)

#### Voir aussi

- [Mode calendrier](#page-glossary.calendar-mode)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Intervenants externes](#page-higher-ed.external-faculty)
- [Examens multi-salles](#page-higher-ed.multi-room-exams)
- [Liens de visioconférence par cours](#page-higher-ed.videoconference-links)

<a id="page-higher-ed.sessions-and-tracks"></a>

### 13.2  Sessions, promotions, programme, parcours

*Source: `help/fr/higher-ed/sessions-and-tracks.md` · id: higher-ed.sessions-and-tracks · Updated: 2026-05-12*

Dans l'enseignement supérieur, la structure pédagogique est moins
linéaire que dans le scolaire. Un étudiant appartient à une **promotion**
(sa cohorte temporelle), mais aussi à des **parcours** ou **programmes**
(sa spécialisation) et à des **groupes** de TD ou de TP. Il suit parfois
plusieurs cohortes en même temps (mineure, double-cursus). Cette page
synthétise comment Omniscol modélise ces situations.

#### Promotion = classe Omniscol

La **promotion** (familièrement « promo ») correspond à la classe
Omniscol au sens administratif, par exemple *« L3 Informatique 2026 »*
ou *« M2 Finance 2025-2027 »*. C'est l'entité qui rassemble la cohorte
d'étudiants entrée à la même session.

Les classes sont nommées sans ambiguïté, avec date d'entrée pour les
gros cursus :

- `L1 SI 2026` — Licence 1 Sciences pour l'Ingénieur, entrée 2026,
- `M1 Marketing 2026-2028` — Master 1, deux ans.

#### Parcours et spécialisations

Un **parcours** est une orientation pédagogique au sein d'une promotion
ou transverse à plusieurs : *« option Data »*, *« mineure
Entrepreneuriat »*, *« double-diplôme XYZ »*. Modélisation Omniscol
selon la complexité :

- **Parcours simple** dans une promotion — un **groupe** au sein de la
  classe (par exemple `L3-Info 2026-Parcours Data`).
- **Parcours transverse** à plusieurs promotions — un **groupe de
  groupes** qui rassemble les groupes correspondants de
  plusieurs classes. Voir [Groupes de groupes](#page-core-concepts.groups-of-groups).
- **Double-cursus** (étudiants suivant deux parcours complets) — cas
  particulier où un même étudiant reçoit **deux affectations de classe**
  sur l'année. C'est l'exception à la règle générale selon laquelle deux
  classes ne partagent pas d'apprenants.

#### Sessions

Une **session** est une période d'enseignement définie : un
semestre, un trimestre, un module intensif de 2 semaines. Omniscol
gère les sessions via :

- les **plages de publication** des EDT (un EDT par session, publié
  sur les semaines correspondantes),
- les **années scolaires** (une année scolaire peut couvrir
  plusieurs sessions).

Pour les formations courtes ou non-récurrentes (séminaires,
modules de formation continue), préférez le **mode calendrier**
(inclus dans le plan Premium) à la grille hebdomadaire classique. Voir
[Mode calendrier](#page-higher-ed.calendar-mode).

#### Étudiants à parcours atypique

Cas fréquents en supérieur :

- **Redoublants** qui valident certaines UE et pas d'autres.
- **Étudiants en mobilité** (Erasmus, échange) — affectés à une
  classe d'accueil avec ajustements de parcours.
- **Étudiants en apprentissage** — alternent semaines école /
  semaines entreprise ; rythme modélisé via les semaines alternées ou via
  un EDT calendrier dédié.

#### Voir aussi

- [Vue d'ensemble](#page-higher-ed.overview)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [Mode calendrier](#page-higher-ed.calendar-mode)

<a id="page-higher-ed.external-faculty"></a>

### 13.3  Intervenants externes (vacataires, visiting)

*Source: `help/fr/higher-ed/external-faculty.md` · id: higher-ed.external-faculty · Audience: admin · Updated: 2026-06-13*

L'enseignement supérieur fait largement appel à des **intervenants
externes** : vacataires sectoriels, professionnels qui interviennent
ponctuellement, professeurs invités d'autres établissements
(visiting). Leur gestion est différente de celle des permanents :
peu d'heures, planning subi par l'école plutôt que choisi, parfois
contractualisation à l'heure.

#### Marquer un intervenant comme externe

Dans la fiche professeur ([Gérer les professeurs](#page-admin.teachers)),
l'interrupteur **Professeur externe** (disponible avec le plan Premium)
permet de distinguer les vacataires des permanents. Le marqueur a deux
effets concrets :

- une **icône** [user-tie] devant le nom de l'intervenant
  dans les listes et les infobulles des séances,
- une **colonne dédiée** dans les vues tableau et les exports
  tableur, pour isoler les vacataires (par exemple pour suivre les
  heures faites par des permanents vs des externes).

#### Saisie des disponibilités

La disponibilité d'un vacataire est souvent **calendaire** plutôt
qu'hebdomadaire : il accepte d'intervenir le mardi 12 mars et le
mardi 19 mars, mais pas tous les mardis. Pour ce cas, la saisie des
[disponibilités en mode calendrier](#page-timetables.calendar-wishes), incluse
dans le plan Premium, est la solution naturelle.

Sans le plan Premium, saisissez des **disponibilités hebdomadaires**
approximatives (mardi après-midi) puis verrouillez les séances une à
une à la main.

#### Service horaire et contractualisation

Les vacataires ont en général une **enveloppe horaire** définie au
recrutement (`30 heures sur l'année`, `un module de 15 heures`).
Le champ **Service horaire** dans la fiche permet de tracer
l'enveloppe ; le diagnostic remonte si les heures planifiées la
dépassent.

Pour la contractualisation à l'heure (paiement à la séance plutôt
qu'au mois), l'export des statistiques par professeur alimente le
processus de paie / facturation externe.

#### Communication

Les vacataires ont moins de connexions à l'application qu'un
permanent. Trois cas d'usage :

- **Compte plein** — le vacataire reçoit ses identifiants et
  consulte son EDT, saisit ses disponibilités, déclare ses absences depuis le
  portail professeur.
- **Lien iCal seul** — pas de compte, juste un lien d'abonnement
  iCal pour synchroniser ses séances avec son agenda personnel.
- **Rappel par e-mail (hors application)** — l'administrateur prévient le
  vacataire par e-mail avant ses interventions ; le vacataire ne se
  connecte jamais. Ce rappel est manuel : Omniscol n'envoie pas de
  notification automatique par séance. Un tel rappel se développe
  facilement en dehors d'Omniscol via l'API de récupération des plannings,
  en filtrant sur les professeurs. Un traitement hebdomadaire, par exemple,
  construit un résumé injecté dans un modèle propre à l'école, puis l'envoie
  via le service mail de l'établissement. Passer par ce service préserve la
  réputation d'expéditeur et limite les faux positifs anti-spam.

À calibrer selon le profil (un consultant senior n'a pas le temps
de gérer un n-ième compte ; un doctorant qui enseigne quelques
heures s'y adaptera facilement).

#### Procédure — Onboarder un vacataire

1. **Un vacataire qui intervient 15 heures sur l'année** : marquage
   externe, disponibilités calendaires, enveloppe horaire, mode
   de communication adapté.
2. **Créez la fiche professeur** dans **Professeurs**.
   Renseignez prénom, nom, e-mail, et activez **Professeur externe**.
   Le marqueur ajoute l'icône [user-tie] devant le nom et une
   colonne dédiée dans les vues tableau et les exports.
3. **Enveloppe horaire** : champ **Service horaire**, mettez
   l'enveloppe contractuelle (`15`). Le diagnostic remonte si les
   heures planifiées la dépassent. Pratique pour la paie à l'heure et
   le suivi du contrat.
4. **Disponibilités** : sur un compte Premium, le vacataire saisit
   ses disponibilités **date par date** via les
   [disponibilités en mode calendrier](#page-timetables.calendar-wishes) — convient
   parfaitement à un planning subi. Sinon, **disponibilités hebdomadaires
   approximatives** + verrouillage des séances une à une à la main.
5. **Mode de communication** — choisissez selon le profil :

   - **Compte plein** — pour un doctorant qui enseigne quelques
     heures ; identifiants, portail professeur, disponibilités, absences ;
   - **Lien iCal seul** — pour un consultant senior trop occupé pour
     un n-ième compte ; juste l'abonnement agenda ;
   - **Rappel par e-mail (hors application)** — l'administrateur prévient
     le vacataire par e-mail, à la main (Omniscol n'envoie pas de rappel
     automatique par séance) ; le vacataire ne se connecte jamais.
6. **Export statistiques** en fin de mois ou de semestre pour la
   **paie/facturation externe** : heures effectuées par séance,
   matière, classe. Voir [Imprimer et partager](#page-schedules.print-and-export).
   La colonne Externe des exports permet d'isoler les vacataires.

#### Voir aussi

- [Gérer les professeurs](#page-admin.teachers)
- [Disponibilités au calendrier](#page-timetables.calendar-wishes)
- [Vacataire](#page-glossary.external-teacher)
- [Vue d'ensemble](#page-higher-ed.overview)

<a id="page-higher-ed.multi-room-exams"></a>

### 13.4  Salles dédoublées et examens multi-salles

*Source: `help/fr/higher-ed/multi-room-exams.md` · id: higher-ed.multi-room-exams · Audience: admin · Updated: 2026-06-13*

Dans le supérieur, certaines séances occupent **plusieurs salles
simultanément**. Un examen partiel réunit une promotion de 200 étudiants
répartis dans 5 amphithéâtres. Un cours magistral dédoublé se tient sur
2 amphithéâtres synchronisés en visio. Un jury mobilise 3 salles en
parallèle. Omniscol gère ces cas via le concept de **multi-salles**.

#### Multi-salles : principe

Une séance de cours (ou un évènement) peut porter **plusieurs
salles**. Toutes ces salles sont alors occupées
sur le créneau, et toutes les contraintes (capacité, spécialisation,
disponibilité) sont vérifiées en parallèle.

Le multi-salles est disponible dans **tous les modes d'EDT**
(hebdomadaire, cyclique, calendrier).
Voir [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources).

> _Premium_

Les scénarios d'examen et de jury ci-dessous s'appuient sur des
**évènements ponctuels** (séances datées posées par-dessus la grille),
disponibles sur les comptes **Premium**. Le **multi-salles** sur une
séance régulière reste, lui, disponible sur tous les comptes.

#### Cas d'usage typique : examen sur plusieurs salles

Une promotion `L1 Info 2026` (200 étudiants) passe un partiel
d'algorithmique. Aucun amphithéâtre de l'école ne fait 200 places,
donc l'examen se déroule simultanément dans :

- `Amphi A` (80 places),
- `Amphi B` (70 places),
- `Amphi C` (50 places).

Modélisation Omniscol :

- créer un **évènement examen** sur la date et l'horaire concernés
  (voir [Évènements ponctuels](#page-schedules.events)),
- en participants : la classe `L1 Info 2026`,
- en salles : `Amphi A`, `Amphi B`, `Amphi C` (multi-salles),
- en surveillance : 1 à 3 surveillants par salle via le
  module **Service du personnel** (voir [Vue d'ensemble du Service du personnel](#page-staffing.overview)).

Vérifiez que la capacité cumulée des amphithéâtres (80 + 70 + 50 = 200)
couvre l'effectif. Pour un examen modélisé en **évènement**, Omniscol ne
calcule pas ce cumul automatiquement : le diagnostic de capacité ne porte
que sur les séances régulières posées sur la grille.

#### Cours dédoublé en visio

Un cours magistral très demandé peut être projeté en visio depuis un
amphithéâtre principal vers un amphithéâtre de débordement.
Modélisation :

- un seul cours avec deux salles,
- le professeur est physiquement dans l'amphithéâtre principal,
- le **lien de visioconférence** de la séance porte l'URL de
  retransmission vers l'amphithéâtre secondaire (un mémo peut préciser
  l'organisation).

#### Jury de soutenances

Un jury qui auditionne 10 doctorants en parallèle dans 3 salles
(rotation par tiers) :

- un évènement par session de jury,
- multi-salles pour chaque session,
- **Service du personnel** pour les membres de jury affectés à chaque salle.

#### Répartition automatique des étudiants

Omniscol n'attribue pas automatiquement quel étudiant va dans quel
amphithéâtre. La répartition reste une décision de l'établissement
(ordre alphabétique, niveau, type d'épreuve, règles internes). Elle se
fait à la main, ou via un export tableur transmis aux surveillants.

#### Procédure — Programmer un partiel sur 3 amphithéâtres

1. **Le cas type du supérieur** : un partiel de 200 étudiants sur 3
   amphithéâtres simultanés. Le multi-salles, l'évènement et le module
   **Service du personnel** suffisent.
2. **Créez l'évènement examen** : dans le module **EDT**,
   affichez le filtre **Évènements** (mode réorganisation) et
   **cliquez-glissez** sur l'agenda pour tracer le créneau daté. Titre :
   `Partiel algorithmique L1 Info`, puis dates et heures de début et
   de fin. Voir [Évènements ponctuels](#page-schedules.events).
3. **Participants** : ajoutez la classe `L1 Info 2026` (200
   étudiants). Tous les étudiants concernés se retrouvent
   automatiquement sur l'évènement, peu importe l'amphithéâtre où ils
   passeront physiquement.
4. **Salles — c'est le multi-salles** : ajoutez les 3 amphithéâtres
   (`Amphi A` 80, `Amphi B` 70, `Amphi C` 50). Les 3 amphithéâtres sont
   alors occupés simultanément sur le créneau. Vérifiez vous-même que la
   capacité cumulée (200) couvre l'effectif (200) : sur un évènement, ce
   cumul n'est pas diagnostiqué automatiquement.
5. **Surveillants** : ouvrez le module **Service du personnel** et créez
   les tâches surveillance pour chaque amphithéâtre (1 à 3 surveillants par
   salle selon votre politique). Voir
   [Vue d'ensemble du Service du personnel](#page-staffing.overview).
6. **Répartition des étudiants entre amphithéâtres** : Omniscol ne le fait pas
   automatiquement. Ce choix relève de vos règles internes (ordre
   alphabétique, niveau, équilibrage). Exportez la liste des étudiants au
   format tableur, faites la répartition à la main ou selon vos règles,
   puis transmettez-la aux surveillants. Voir
   [Imprimer et partager](#page-schedules.print-and-export).

#### Voir aussi

- [Multi-salles](#page-glossary.multi-room)
- [Modalité](#page-glossary.lesson-modality)
- [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- [Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [Évènements ponctuels](#page-schedules.events)

<a id="page-higher-ed.co-teaching"></a>

### 13.5  Co-enseignement et alternance d'intervenants

*Source: `help/fr/higher-ed/co-teaching.md` · id: higher-ed.co-teaching · Audience: admin · Updated: 2026-06-13*

Deux situations courantes en supérieur :

- **co-enseignement** — deux professeurs (ou plus) animent ensemble la
  même séance. Cas typique : un théoricien + un praticien sur un
  cours de stratégie, un titulaire + un vacataire expert sur un cas
  d'études.
- **alternance d'intervenants** — un cours sur une période (un
  module, un semestre) est assuré tour à tour par plusieurs professeurs
  qui se relaient. Cas typique : un module sectoriel décomposé en
  séances thématiques, chacune confiée à un expert différent.

Les deux mécanismes sont gérés nativement par Omniscol.

#### Co-enseignement (co-animation)

Une séance peut porter **plusieurs professeurs simultanément**. Dans le
module **Gestion des EDT**, le sélecteur professeur
**Affecter des professeurs** accepte plusieurs
entrées sur une même séance. Les EDT individuels des professeurs
concernés affichent la séance comme co-animée.

Conséquences :

- Les **disponibilités** de tous les professeurs co-animateurs doivent être
  compatibles sur le créneau.
- Côté **service**, la séance apparaît **en entier** dans l'EDT de chaque
  co-animateur. Si votre politique répartit l'heure au prorata entre
  co-animateurs, ce calcul se fait lors de l'export (paie, facturation).

Voir [Cours complexes](#page-core-concepts.complex-lessons) pour le
détail technique des cours co-animés.

#### Alternance d'intervenants sur un module

Plus complexe : 12 séances d'un module, chacune assurée par un professeur
différent. Deux approches :

##### Approche A — Une matière, plusieurs cours

Créez **un cours par intervenant** dans le module, chacun avec son
professeur titulaire. La saisie est longue, mais le résultat reste
clair côté intervenants : chacun voit ses séances dans son EDT et le
module apparaît comme une matière à plusieurs cours.

##### Approche B — Mode calendrier avec dates précises

Si les séances ont des dates précises connues, utilisez le
[mode calendrier](#page-timetables.calendar-mode), inclus dans le plan
Premium :

- une matière `Module Stratégie d'entreprise`,
- N séances datées avec un intervenant par séance,
- l'algorithme respecte les disponibilités de chaque intervenant.

Cette approche est plus compacte et naturelle pour les modules
intensifs.

#### Mémo pour décrire l'enchaînement

Vous pouvez ajouter un **mémo**
Commentaire sur chaque séance
expliquant la place de la séance dans le module (`Séance 3 / 12 —
Stratégie financière`). Le mémo apparaît dans les EDT et aide les
étudiants à se repérer.

#### Procédure — Module avec 12 intervenants en rotation

1. **Le cas du module sectoriel** : 12 séances, chacune confiée à un
   expert différent. On combine ici deux mécanismes : l'**approche
   calendrier** pour dater les séances qui se relaient, et la
   **co-animation** sur les seules séances assurées en binôme.
2. **Pour cette variante à dates précises** : EDT en **mode calendrier**.
   Tous les intervenants externes sont marqués **Externe** sur leurs
   fiches professeur. Voir [Intervenants externes](#page-higher-ed.external-faculty).
3. **Créez la matière unique** `Module Stratégie d'entreprise`.
   C'est l'enveloppe pédagogique du module. **Type de cours**
   adapté : souvent un mix de CM + études de cas.
4. **Saisissez les 12 séances** à dates précises, chacune avec
   **son intervenant**. Titre de la séance + son thème
   (`Séance 3/12 — Stratégie financière`) en mémo pour aider les
   étudiants à se repérer dans la progression.
5. **Pour les séances en binôme** (théoricien + praticien sur un
   cas), utilisez la **co-animation** : sur la séance concernée,
   sélectionnez **plusieurs intervenants** dans
   **Affecter des professeurs**. Les EDT individuels
   des professeurs concernés affichent la séance comme co-animée.
6. **Service horaire** : la séance apparaît **en entier** dans l'EDT de
   chaque co-animateur. Une répartition au prorata entre co-animateurs
   se traite lors de l'export (paie, facturation), pas dans Omniscol.
7. **Vérification** : ouvrez le portail étudiant pour vérifier
   l'affichage du module — les 12 séances apparaissent dans l'EDT
   avec leurs intervenants respectifs. Les mémos de progression
   (`Séance N/12`) sont visibles au survol.

#### Voir aussi

- [Co-enseignement](#page-glossary.co-teaching)
- [Cours complexes](#page-core-concepts.complex-lessons)
- [Intervenants externes](#page-higher-ed.external-faculty)
- [Mode calendrier](#page-timetables.calendar-mode)

<a id="page-higher-ed.calendar-mode"></a>

### 13.6  Mode calendrier pour formations non récurrentes

*Source: `help/fr/higher-ed/calendar-mode.md` · id: higher-ed.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

L'enseignement supérieur ne suit pas toujours une **récurrence
hebdomadaire** : modules intensifs sur 2 semaines, séminaires de
3 jours, séances de soutenances étalées sur un mois, ateliers
ponctuels animés par des intervenants extérieurs. Pour ces cas, le
**mode calendrier** Omniscol est plus naturel qu'une grille
hebdomadaire truffée d'exceptions.

#### Quand préférer le mode calendrier

Indicateurs :

- les séances ont **des dates précises** plutôt qu'un créneau
  hebdomadaire répété,
- les **intervenants varient** d'une séance à l'autre,
- les **lieux varient** (sortie sur site, visite d'entreprise,
  visioconférence),
- le **rythme** n'est pas hebdomadaire (un coup 3 séances en
  2 jours, un coup rien pendant 3 semaines).

Si vous décririez le module avec un calendrier plutôt qu'avec une
grille hebdomadaire, le mode calendrier est fait pour vous.

#### Cas d'usage typiques en supérieur

- **Modules intensifs** — un séminaire de 3 jours pleins ou un
  intensif sur 2 semaines.
- **Formation continue** — sessions ponctuelles non
  reconductibles dans une grille annuelle.
- **Séminaires de recherche** — séances ponctuelles avec des
  invités différents chaque semaine.
- **Soutenances et jurys** — étalés sur quelques semaines, dates
  précises, salles précises.
- **Travaux de terrain / projets** — phases courtes, lieux
  variables.

#### Modélisation

Vous définissez **une liste ordonnée de séances datées**,
sans passer par une grille hebdomadaire :

- **date et heure** précises,
- **durée** (libre),
- **lieu**,
- **intervenant** (peut varier d'une séance à l'autre),
- **public** : classe(s), groupe(s), groupes de groupes.

Le mode calendrier consomme la même structure de classes / groupes
que le mode hebdomadaire — vous ne perdez aucun outil organisationnel.

La [génération automatique](#page-timetables.generation)
fonctionne aussi en mode calendrier : le solveur place les séances
dans une fenêtre de dates cible et peut compacter les journées de
cours en début ou en fin de période. Voir
[Mode calendrier](#page-timetables.calendar-mode).

#### Combinaison avec un EDT hebdomadaire

Vous pouvez avoir **un EDT hebdomadaire** pour le tronc commun
récurrent le matin et **un EDT calendrier** pour les séances ponctuelles
l'après-midi, les deux publiés en parallèle pour les mêmes classes ; ou
les premières années en hebdomadaire, et les classes de spécialisation
en dernière année en calendrier (voir [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)).

#### Disponibilités des intervenants en mode calendrier

La saisie des [disponibilités en mode calendrier](#page-timetables.calendar-wishes)
est particulièrement utile ici : les vacataires saisissent leur
disponibilité sur les dates exactes, pas sur un rythme
hebdomadaire.

#### Voir aussi

- [Mode calendrier — vue produit](#page-timetables.calendar-mode)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Intervenants externes](#page-higher-ed.external-faculty)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes)

<a id="page-higher-ed.videoconference-links"></a>

### 13.7  Liens de visioconférence par cours

*Source: `help/fr/higher-ed/videoconference-links.md` · id: higher-ed.videoconference-links · Audience: admin · Plan: premium · Updated: 2026-06-13*

> **Premium**

> _Premium_

En supérieur, beaucoup de cours sont **à distance** ou **hybrides**
(certains étudiants en présentiel, d'autres connectés). Chaque
séance a alors un **lien de visioconférence** (Zoom, Teams, Google
Meet, Jitsi) qui doit apparaître dans l'EDT pour que tout le monde
sache où cliquer.

#### Comment attacher un lien

Sur une séance de cours ou un évènement, le champ Lien de visioconférence
accepte une URL. Pour une séance, il se renseigne dans la fenêtre de
sélection de salle. Une fois renseigné, l'EDT affiche le lien
avec une icône [video] ; le lien s'ouvre dans un nouvel
onglet.

Le lien apparaît :

- dans le portail étudiant et professeur sur la séance,
- dans l'export iCal via les propriétés de conférence ou d'URL
  lorsque le lien est présent,
- dans l'API JSON.

#### Cours à distance ou hybride

Le champ **[Modalité](#page-glossary.lesson-modality)** de la séance qualifie son format :
**En présentiel**, **À distance**,
**Hybride** ou **Travail autonome**.
Il se renseigne dans la même fenêtre que la salle et le lien de
visioconférence.

Pour un cours **intégralement à distance**, choisissez la modalité
**À distance**, renseignez le lien de
visioconférence et ne forcez pas de salle physique si le cours n'en
mobilise pas. Pour un cours **hybride** (présentiel + visio en
parallèle), choisissez **Hybride**, gardez la
salle physique et renseignez aussi le lien.

#### Liens permanents vs liens par séance

Selon votre outil de visio :

- **Lien permanent** — Zoom personnel, réunion Teams récurrente. Le
  même lien sert pour toutes les séances d'un cours. Saisissez-le
  une seule fois sur le cours (toutes ses séances en héritent), ou
  directement sur la classe pour appliquer un lien par défaut à
  toutes ses séances.
- **Lien par séance** — chaque séance a sa propre URL, saisie sur la
  séance (dans la même fenêtre que la salle). Réservez ce cas aux
  séances dont le lien change à chaque fois (réunion Zoom générée à la
  volée, par exemple).

#### Sécurité

Quelques bonnes pratiques :

- **Pas de lien public sur cours sensibles** — pour un cours
  privé / examen surveillé, configurez la salle visio en accès
  authentifié (et non par lien direct).
- **Lien dans iCal** — l'iCal est consultable par toute personne
  qui a le lien de partage. Un lien visio placé sur la séance se
  diffuse donc via iCal — vérifiez que c'est bien ce que vous voulez.
- **Renouvellement** — si un lien permanent est compromis,
  renouvelez-le côté Zoom / Teams et propagez la mise à jour dans
  Omniscol (le cours ou la classe, pas chaque séance).

#### Voir aussi

- [Modalité](#page-glossary.lesson-modality)
- [Types de cours](#page-admin.lesson-types)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)

<a id="page-higher-ed.multi-site"></a>

### 13.8  Multi-sites en enseignement supérieur

*Source: `help/fr/higher-ed/multi-site.md` · id: higher-ed.multi-site · Audience: admin · Updated: 2026-06-13*

Le multi-sites est une capacité **disponible dès le plan
Standard** (désactivé seulement en Lite) ; les principes généraux
sont décrits dans
[Sites, salles, ressources, multi-salles](#page-core-concepts.sites-rooms-resources).
Cette page liste les **spécificités fréquentes en enseignement
supérieur** où le multi-sites est quasi la norme : écoles
d'ingénieurs sur plusieurs campus, business schools en région,
universités multi-sites.

Attention, dans Omniscol, le [campus](#page-glossary.campus) est une notion
organisationnelle distincte du [site](#page-glossary.site). Les deux se recoupent
souvent (un campus par site, avec ses classes dédiées). Quand il faut gérer une
grille horaire, des salles ou des temps de trajet, modélisez le lieu comme un
site.

> Ces cas de figure valent aussi dans le scolaire quand l'établissement est
> géographiquement distribué (collège + lycée séparés, école avec
> annexe maternelle, etc.).

#### Cas typique : un site principal + antennes en région

Cas fréquent en école d'ingénieurs ou de commerce :

- 1 **site principal** (typiquement le siège),
- 1 à N **antennes en région** où des promotions délocalisées suivent
  une partie du cursus,
- des **intervenants** qui font la navette entre les sites.

Modélisation Omniscol : un site par lieu, temps de trajet déclarés
par paire (les TGV / vols / déplacements en voiture entre les sites).
Voir [Politique multi-sites](#page-core-concepts.sites-rooms-resources)
pour la mécanique exacte (contraintes bloquantes à la minute près,
pause déjeuner réduite du trajet, etc.).

#### EDT séparé par site ou EDT global

Deux philosophies selon l'organisation interne :

- **EDT global consolidé** — un seul EDT couvre tous les sites.
  Adapté quand les équipes planning sont centralisées et que les
  intervenants circulent beaucoup. Le diagnostic croise tout en
  une seule passe.
- **Un EDT par site** — grâce aux
  [plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables),
  inclus dans le plan Premium.
  Chaque site a son équipe locale, son propre EDT actif sur les
  mêmes semaines ; à la consultation, les vues sont fusionnées
  dynamiquement pour les étudiants ou intervenants qui touchent à
  plusieurs sites.

#### Sites virtuels et cours à distance

Cas particulier : un cours **retransmis en visio** d'un site
principal vers une promotion entièrement à distance. Modélisation
possible :

- créer un **site virtuel** « Distanciel » sans temps de trajet
  avec le site de retransmission, ce qui lève toute contrainte
  temporelle de déplacement,
- y placer une salle « Visio » par cohorte distante,
- attacher cette salle à la séance en multi-salles avec l'amphithéâtre
  d'origine.

> Cette modélisation reste limitée si vous avez **beaucoup de
> cohortes distantes** : multiplier les salles virtuelles
> « Visio » devient lourd à maintenir et la gestion de leur capacité
> n'a pas vraiment de sens. Dans ce cas, documentez le besoin comme
> spécifique et privilégiez le lien de visioconférence directement sur la
> séance (ou, en Premium, par défaut sur la classe), sans créer une salle
> virtuelle par cohorte.

Voir [Examens multi-salles](#page-higher-ed.multi-room-exams)
pour la mécanique multi-salles, et
[Liens de visioconférence par cours](#page-higher-ed.videoconference-links)
pour les liens Zoom / Teams / Meet associés.

#### Filtres et statistiques par site

Les écrans Omniscol exposent des filtres **par site**, pour isoler un
lieu physique. Utile pour :

- afficher l'EDT d'un lieu précis,
- piloter l'occupation salles d'une antenne séparément,
- générer des statistiques par site (heures enseignées, taux
  d'occupation).

#### Panneaux d'affichage par site

Un [panneau d'affichage](#page-panels.lobby-panel) peut filtrer sur un
site précis, ce qui correspond généralement à un panneau installé
**dans le hall** d'un site. Voir
[Configurer un panneau pour un hall ou un couloir](#page-panels.lobby-panel).

#### Voir aussi

- [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- [Site](#page-glossary.site)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
- [Examens multi-salles](#page-higher-ed.multi-room-exams)
- [Liens de visioconférence par cours](#page-higher-ed.videoconference-links)
- [Modalité](#page-glossary.lesson-modality)
- [Configurer un panneau d'affichage](#page-panels.lobby-panel)
- [Vue d'ensemble enseignement supérieur](#page-higher-ed.overview)

---

## 14. Spécificités primaire / secondaire (scolaire)

<a id="page-k12.overview"></a>

### 14.1  Spécificités primaire / secondaire — vue d'ensemble

*Source: `help/fr/k12/overview.md` · id: k12.overview · Updated: 2026-06-13*

Cette section rassemble les pages qui couvrent les spécificités du
primaire et du secondaire (école élémentaire, collège, lycée).

#### Caractéristiques typiques

- **EDT [hebdomadaire](#page-glossary.weekly-timetable)** — la semaine
  type récurrente est la norme, avec ou sans
  [semaines alternées](#page-glossary.alternate-lessons) (A/B).
- **Salles dédiées par classe** — beaucoup d'écoles fonctionnent avec
  une salle attachée à chaque classe ; ce sont les professeurs qui se
  déplacent.
- **Demi-classes / groupes d'option** — gérés via
  [partitions](#page-core-concepts.class-divisions) au sein d'une même
  classe.
- **Latinistes / hellénistes / spécialités lycée** — gérés via
  [alignements](#page-core-concepts.alignments) inter-classes.
- **Génération automatique** — le solveur fonctionne, et c'est le
  cœur de la valeur dans le scolaire.
- **Permanences / études** — plages où les élèves sont à l'école
  sans cours assigné. Voir [Permanences et études](#page-k12.study-halls).
- **Classes multi-niveaux** — typique des petites écoles rurales.
  Voir [Classes multi-niveaux](#page-k12.multi-grade-classes).

#### Recommandations de configuration

- **Compte standard** suffit pour la majorité des cas (le palier
  Premium n'est pas nécessaire dans le scolaire standard).
- **Mode hebdomadaire** par défaut.
- **Activer la saisie des disponibilités des professeurs** en
  hebdomadaire ; la saisie peut être faite ou revue par l'administration.
- **Une salle dédiée par classe** quand c'est applicable — saisi sur
  la classe.
- **Soin sur les niveaux** dans le module **Administration**, via
  **Créer** (CP, CE1, CE2, …, 6e, 5e, …,
  Seconde, Première, Terminale, etc.).
- **Vacances officielles du pays** — à la création de l'année
  scolaire, Omniscol propose d'importer les vacances communes du
  pays. Voir [Année scolaire et vacances](#page-admin.school-year).

#### Cas d'usage scolaire

La base historique d'Omniscol est le secondaire (collège-lycée) :
beaucoup de conventions par défaut viennent de là. Les scénarios pas
à pas applicables au scolaire sont regroupés dans les
[scénarios de cas d'usage](#page-use-cases.overview) et la
[FAQ création d'EDT](#page-faq.timetables).

#### Voir aussi

- [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Demi-classes et options en partition](#page-k12.half-classes-and-options)
- [Permanences et études](#page-k12.study-halls)
- [Classes multi-niveaux](#page-k12.multi-grade-classes)

<a id="page-k12.half-classes-and-options"></a>

### 14.2  Demi-classes et options en partition

*Source: `help/fr/k12/half-classes-and-options.md` · id: k12.half-classes-and-options · Audience: admin · Updated: 2026-06-13*

Dans le scolaire, la gestion d'une classe se complique vite avec les
**demi-classes** (TP / laboratoire en effectif réduit) et les **options**
qui répartissent les élèves d'une même classe en plusieurs
sous-groupes simultanés. Le concept Omniscol qui structure cela est la
**partition** : des sous-groupes qui doivent avoir cours
en même temps mais avec des contenus différents.

#### Demi-classes pour les TP

Cas typique en sixième-cinquième : 28 élèves en classe entière la
plupart du temps, scindés en 2 groupes de 14 pour les TP de
sciences. Les deux demi-groupes doivent avoir TP en même temps
(sinon ils ne pourraient pas avoir d'autre cours en parallèle),
chacun avec son professeur et sa salle.

Modélisation dans Omniscol :

- créer deux **groupes** `6A-TP1` et `6A-TP2` dans la classe `6A`,
- les déclarer en **partition** : Omniscol garantit qu'ils sont
  occupés simultanément,
- créer **deux cours TP de sciences** avec chacun son groupe, son
  professeur, sa salle, sur le même créneau hebdomadaire.

L'algorithme honore la partition : impossible que `6A-TP1` ait
sciences pendant que `6A-TP2` est en français.

#### Options en partition

Cas typique en quatrième-troisième : sur un même créneau, certains
élèves font Latin, d'autres Allemand renforcé, d'autres ne prennent
rien (étude). Trois groupes simultanés au sein d'une même classe.

Modélisation :

- groupes `4A-Latin`, `4A-Allemand`, `4A-Étude` dans la classe `4A`,
- déclarés en **partition** (les trois sont simultanés),
- un cours par groupe sur le même créneau, avec professeur / salle propres.

#### Élèves qui changent d'option en cours d'année

Une option peut évoluer en cours d'année (un élève abandonne le
latin pour rejoindre l'étude, par exemple). L'affectation aux groupes
se gère **semaine par semaine** dans la fiche de l'élève : les
semaines déjà écoulées conservent l'ancienne affectation, les
semaines suivantes prennent la nouvelle.

#### Partition + alignement

Pour les langues qui se font en **multi-classes** (par exemple latin
ouvert aux 4A, 4B, 4C), combinez :

- une **partition** par classe (4A-Latin / 4A-Autre, 4B-Latin /
  4B-Autre, etc.),
- un **alignement** entre les trois groupes Latin pour
  qu'ils soient sur le même créneau, dans la même salle, avec le
  même professeur.

Voir [Alignements de groupes](#page-core-concepts.alignments).

#### Procédure — Créer un créneau Latin/Allemand/Étude pour une 4e

1. **Le cas typique 4e-3e** : sur un même créneau, certains font
   Latin, d'autres Allemand, d'autres rien (étude). Trois groupes
   simultanés. La partition Omniscol gère ça sans douleur.
2. **Créez trois groupes** dans la classe `4A` : `4A-Latin`,
   `4A-Allemand`, `4A-Étude`. Affectez chaque élève à son groupe
   selon son choix d'option.
3. **Déclarez la partition** `(4A-Latin, 4A-Allemand, 4A-Étude)` :
   les trois groupes sont **exclusifs et simultanés**. Omniscol
   garantira qu'ils sont occupés sur le même créneau.
4. **Créez trois cours** sur le même créneau hebdomadaire :

   - Latin pour `4A-Latin` avec professeur Latin et salle adaptée ;
   - Allemand pour `4A-Allemand` avec professeur Allemand ;
   - Étude pour `4A-Étude` avec surveillant (ou laisser sans professeur
     selon votre politique).

   Le solveur respecte la partition : les trois auront forcément le
   même créneau.
5. **Pour les options ouvertes à plusieurs classes** (Latin en 4A +
   4B + 4C avec un seul professeur et une seule salle) : combinez
   **partition par classe** (`4A-Latin` exclusif des autres groupes
   4A, idem 4B, 4C) **+ alignement** entre les trois
   groupes Latin. Voir [Alignements de groupes](#page-core-concepts.alignments).
6. **Changements en cours d'année** (un élève abandonne le latin pour
   rejoindre l'étude) : modifiez son appartenance de groupe dans sa
   fiche élève, à partir de la semaine du changement. Les semaines
   passées conservent l'ancienne affectation.

#### Voir aussi

- [Partitions de classe](#page-core-concepts.class-divisions)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Alignements de groupes](#page-core-concepts.alignments)
- [Classes multi-niveaux](#page-k12.multi-grade-classes)

<a id="page-k12.study-halls"></a>

### 14.3  Permanences et études (scolaire)

*Source: `help/fr/k12/study-halls.md` · id: k12.study-halls · Audience: admin/staff · Updated: 2026-06-13*

Les **permanences** (ou **études**) sont des plages pendant lesquelles
les élèves sans cours sont accueillis en salle d'étude sous
surveillance. C'est une institution typique des collèges et lycées
français : les élèves dont l'option ne tombe pas, ceux qui sont
exempts d'EPS, ceux dont le professeur est absent.

#### Pourquoi pas juste un cours classique ?

Une permanence ne se gère pas exactement comme un cours :

- **pas de matière** au sens classique,
- **public variable** d'un créneau à l'autre (qui n'a pas cours),
- **surveillance plutôt qu'enseignement** — l'encadrant n'enseigne
  pas, il surveille,
- **demande forte d'équité** : la charge de surveillance doit être
  répartie entre les professeurs (et les CPE / surveillants) selon une
  règle d'équité.

C'est pourquoi Omniscol propose le **Service du personnel** dédié à ce
type de gestion. Voir [Vue d'ensemble du Service du personnel](#page-staffing.overview). Ce module est une
**option** du compte : sans lui, modélisez les permanences par un
**groupe d'étude** (section ci-dessous) ; la grille de surveillance, elle,
relève du module.

<a id="page-k12.study-halls--staffing-model"></a>
#### Modélisation avec le **Service du personnel**

Les permanences se traduisent en grilles de service :

- une **grille hebdomadaire** des créneaux où des élèves peuvent
  être en permanence,
- pour chaque créneau, un ou plusieurs **postes** de surveillance
  (selon le nombre d'élèves attendus et le ratio surveillant /
  élèves voulu),
- **affectation** des surveillants (assistants d'éducation, ou
  professeurs disposant du rôle **Personnel**) sur chaque poste.

Voir [Construire une grille de service](#page-staffing.building-grids)
et [Affecter le personnel](#page-staffing.planner).

#### Lien avec les EDT élèves

Quand un élève n'a pas cours sur un créneau (sa classe est en option
ou la moitié de classe est en TP), son EDT individuel montre
simplement un **créneau libre** : Omniscol n'y affiche pas
automatiquement une séance « Permanence ».

Pour faire apparaître l'étude dans l'EDT des élèves concernés, créez
un **cours d'étude** pour le groupe qui n'a pas cours sur le créneau,
avec la salle d'étude — c'est le schéma du groupe `4A-Étude` décrit
dans [Demi-classes et options en partition](#page-k12.half-classes-and-options).
La couverture de la surveillance, elle, se pilote côté
**Service du personnel** — voir [Vue d'ensemble du Service du personnel](#page-staffing.overview).

#### Études surveillées vs études libres

Distinction utile :

- **Étude surveillée** — un encadrant est présent, les élèves
  travaillent en silence. Cas classique du **Service du personnel**.
- **Étude libre** (foyer, espace de travail autonome) — pas
  d'encadrant dédié, simplement un lieu où les élèves peuvent
  attendre. Pas besoin du **Service du personnel** : modélisez-la comme
  une salle dédiée ; une **spécialisation de salle** peut, au besoin,
  empêcher les cours ordinaires d'y être placés (sans pour autant
  réserver la salle pour l'étude elle-même, qui n'a pas de matière).
  Voir [Spécialisations de salles](#page-core-concepts.classroom-specializations).

#### Voir aussi

- [Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [Construire une grille de service](#page-staffing.building-grids)
- [Affecter le personnel](#page-staffing.planner)
- [Demi-classes et options en partition](#page-k12.half-classes-and-options)

<a id="page-k12.multi-grade-classes"></a>

### 14.4  Classes multi-niveaux

*Source: `help/fr/k12/multi-grade-classes.md` · id: k12.multi-grade-classes · Audience: admin · Updated: 2026-06-13*

Les **classes multi-niveaux** regroupent des élèves de plusieurs
niveaux dans la même salle, sous la responsabilité d'un même
professeur. C'est la réalité des **petites écoles rurales** en
primaire, parfois des **écoles spécialisées** ou des **écoles
internationales** à effectif réduit.

#### Pourquoi Omniscol gère ces cas

Le modèle Omniscol — qui sépare classe (administrative) et groupes
(sous-ensembles pédagogiques) — couvre nativement le multi-niveaux.
La même classe administrative `CE1-CE2` peut porter deux groupes
`CE1` et `CE2`, avec parfois cours commun, parfois cours séparés
par niveau.

#### Modélisation

Deux approches selon la nature des cours dispensés :

##### Approche A — une classe administrative, deux groupes pédagogiques

- Classe administrative : `CE1-CE2` (pour la gestion des élèves, la
  liste des parents, la salle).
- Groupes pédagogiques : `CE1` et `CE2`.
- Les **cours communs** (musique, sport, vie de classe) sont
  attribués à la classe entière `CE1-CE2`.
- Les **cours séparés** (lecture / math au niveau de chaque
  groupe) utilisent les groupes `CE1` et `CE2`, déclarés en
  **partition** pour qu'ils se déroulent simultanément (le maître
  unique enseigne à l'un pendant que l'autre travaille en
  autonomie).

##### Approche B — deux classes administratives, professeur unique

- Classes administratives séparées : `CE1` et `CE2`.
- Le professeur unique est affecté aux cours des deux classes.
- Comme un professeur ne peut pas tenir deux séances en même temps,
  Omniscol signale un conflit si ses séances CE1 et CE2 sont placées
  sur le même créneau.

L'approche B est plus rare car elle complique la gestion
administrative (deux classes distinctes pour ce qui est en pratique
un même groupe d'élèves) et elle n'offre pas de mécanisme aussi
direct que la partition pour organiser l'alternance entre niveaux.

#### Triple-niveau et au-delà

Le mécanisme s'étend à trois niveaux ou plus (cas des très petites
écoles : CP-CE1-CE2-CM1-CM2 dans la même salle). Omniscol n'impose
pas de limite numérique — la complexité vient de l'organisation
pédagogique, pas de la modélisation.

#### Permanences et étude

Quand le professeur unique est avec un niveau, l'autre niveau travaille en
autonomie dans la même salle. Pas besoin de modéliser cela comme
une permanence — c'est intrinsèque au fonctionnement de la classe
multi-niveaux et ce n'est pas une charge de surveillance
distincte.

#### Procédure — Modéliser une classe CE1-CE2 multi-niveaux

1. **Le cas type de l'école rurale** : une classe `CE1-CE2` avec un
   maître unique qui alterne entre les deux niveaux. Approche A
   (recommandée) : une classe administrative, deux groupes
   pédagogiques.
2. **Créez la classe administrative** `CE1-CE2` dans
   **Classes**. C'est elle qui porte la liste des élèves,
   les parents, la salle, les communications. Niveau : assignez le
   niveau le plus représentatif ou créez un niveau dédié
   `Multi-niveaux primaire`.
3. **Créez les deux groupes pédagogiques** `CE1` et `CE2` au sein de
   la classe. Affectez les élèves à leur groupe respectif. Les deux
   groupes ensemble = la classe entière.
4. **Déclarez les groupes en partition** `(CE1, CE2)` : la partition
   **autorise** leur placement **simultané** (elle lève le conflit qui
   l'interdirait autrement) et le solveur **cherche** à poser les cours
   du CE1 et du CE2 sur les mêmes créneaux. La salle et le professeur
   restent affectés cours par cours. Voir [Partitions de classe](#page-core-concepts.class-divisions).
5. **Cours communs** (musique, sport, vie de classe) : assignez-les
   à la classe entière `CE1-CE2`. Tous les élèves les suivent
   ensemble.
6. **Cours séparés par niveau** (lecture, maths) : créez un cours
   par groupe `CE1` et `CE2`, sur le même créneau (partition oblige).
   Affectez le maître au cours qu'il anime et laissez l'autre cours
   sans professeur (travail en autonomie) : un même professeur
   affecté à deux séances simultanées déclencherait un conflit. Pas
   besoin de modéliser une permanence, l'autonomie est intrinsèque
   au fonctionnement multi-niveaux.
7. **Pour les très petites écoles** (CP-CE1-CE2-CM1-CM2 dans la
   même salle), le mécanisme s'étend sans limite. Vous créez autant
   de groupes que de niveaux, déclarés en partition. La complexité
   vient de l'organisation pédagogique, pas de la modélisation
   Omniscol.

#### Voir aussi

- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)
- [Partitions de classe](#page-core-concepts.class-divisions)
- [Demi-classes et options en partition](#page-k12.half-classes-and-options)

---

## 15. Scénarios de cas d'usage

<a id="page-use-cases.overview"></a>

### 15.1  Scénarios de cas d'usage — vue d'ensemble

*Source: `help/fr/use-cases/overview.md` · id: use-cases.overview · Updated: 2026-06-13*

Cette section répond à une demande récurrente des grands
établissements : disposer d'une **liste de scénarios opérationnels**
au format *user story*, avec une explication concrète du « comment on
fait dans Omniscol ». Chaque scénario disponible renvoie vers une page
de référence ou une visite guidée existante ; les scénarios encore à
l'étude sont suivis séparément et ne figurent pas dans cette liste.

Les scénarios sont issus des retours réels de clients et prospects
(écoles de commerce, écoles d'ingénieurs, universités, formation
continue), anonymisés et formulés de manière générique.

#### Format

Chaque scénario suit le format Agile classique :

> **En tant que** *(rôle utilisateur)*
> **je veux** *(action)*
> **afin de** *(objectif métier)*

Suivi d'une **solution Omniscol** : texte court, lien vers la page
de référence détaillée, et visite interactive uniquement lorsqu’une
visite guidée fiable existe déjà.

#### Statuts

Chaque scénario porte un statut d'implémentation :

| Statut | Signification |
| --- | --- |
| ✓ **Disponible** | Fonctionnalité en production, testée et validée. |
| ◐ **Partiel** | Couverture incomplète ; un contournement existe ou la fonctionnalité s'applique sur certains modes seulement. |
| △ **Roadmap** | Non disponible dans l'interface actuelle ; besoin identifié ou plan produit séparé. |
| — **Hors-périmètre** | Pris en charge par un autre outil de l'écosystème, ou en-dehors du périmètre fonctionnel d'Omniscol. |

#### Sommaire thématique

- [Création et génération d'EDT](#page-use-cases.creation-and-generation)
- [Placement et modification au quotidien](#page-use-cases.placement-and-modification)
- [Multi-groupes, multi-salles, multi-intervenants](#page-use-cases.multi-entities)
- [Opérations en masse](#page-use-cases.mass-operations)
- [Examens et évènements](#page-use-cases.exams-and-events)
- [Absences et remplacements (scénarios)](#page-use-cases.absences-and-substitutions)
- [Reporting et statistiques](#page-use-cases.reporting-and-stats)
- [Diffusion et partage](#page-use-cases.diffusion-and-sharing)

#### Visites et vidéos

Quand un scénario contient une visite guidée validée, le même contenu
peut alimenter plusieurs surfaces :

- de **popover dans le panneau d'aide** (mode interactif, l'utilisateur
  clique étape par étape),
- de **sous-titre incrusté dans la vidéo** (mode passif, lecture
  linéaire),
- de **fichier WebVTT** associé si une vidéo est produite.

Les sous-titres sont synchronisés sur le déroulé des étapes : une
seule source produit les trois formats.

Un scénario sans étapes vérifiées reste une simple page de référence,
sans visite guidée ni vidéo associée.

#### Comment lire un scénario

Une page de scénario type contient :

```markdown
## Nom court du scénario

> **En tant que** *<rôle>*, **je veux** *<action>*, **afin de**
> *<objectif>*.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Texte explicatif, court, opérationnel.

[Lien vers la page de référence détaillée](id:timetables.publication)

`<visite guidée éventuelle pour l’interactif et la vidéo>`
```

Les scénarios statut ✓ ou ◐ sont **utilisables aujourd'hui**. Les
scénarios statut △ Roadmap sont suivis séparément et ne sont pas
listés ici.

#### Voir aussi

- [FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)
- [Spécificités enseignement supérieur — vue d'ensemble](#page-higher-ed.overview)

<a id="page-use-cases.creation-and-generation"></a>

### 15.2  Scénarios — Création et génération d'EDT

*Source: `help/fr/use-cases/creation-and-generation.md` · id: use-cases.creation-and-generation · Updated: 2026-06-13*

Création initiale, génération automatique, bac à sable, et duplication d'EDT pour tests et comparaisons.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Lancer une génération automatique d’emploi du temps

> **En tant que** planificateur, **je veux** lancer une génération automatique d’emploi du temps, **afin de** produire rapidement une première base exploitable.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** La génération automatique est disponible
pour les trois types d'EDT — hebdomadaire, cyclique et calendrier. Le
solveur place les séances créées et non positionnées, et peut
repositionner des séances déjà placées si cela améliore le résultat, à
l'exception des séances verrouillées. Si aucune solution complète
n'existe, Omniscol renvoie le meilleur EDT calculé et laisse les
séances restantes dans la liste des post-it non positionnés.

[Génération automatique](#page-timetables.generation)

#### Relancer une génération après modification de contraintes

> **En tant que** planificateur, **je veux** relancer une génération après modification de contraintes, **afin de** tester différentes configurations sans repartir de zéro.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Ajustez les disponibilités, les contraintes ou les
verrous, puis relancez la génération depuis le même écran. Les séances
verrouillées conservent leur position ; les autres peuvent être
repositionnées si cela améliore le résultat. Pour comparer plusieurs
configurations, travaillez sur des copies de l'EDT (« Travailler sur une copie (bac à sable) d'un planning »).

[Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)

#### Travailler sur une copie (bac à sable) d’un planning

> **En tant que** planificateur, **je veux** travailler sur une copie (bac à sable) d’un planning, **afin de** faire des essais sans impacter la version officielle.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Dupliquez l'EDT depuis le module
**Gestion des EDT** et travaillez sur la copie : tant qu'elle
n'est pas activée,
la version officielle reste celle que voient les utilisateurs. Activez
la copie lorsqu'elle est prête.

[Visualiser, dupliquer, réorganiser](#page-timetables.visualize-duplicate),
[Publier (activer) un emploi du temps](#page-timetables.publication)

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Génération automatique](#page-timetables.generation)
- [Solveur](#page-glossary.solver)

<a id="page-use-cases.placement-and-modification"></a>

### 15.3  Scénarios — Placement et modification au quotidien

*Source: `help/fr/use-cases/placement-and-modification.md` · id: use-cases.placement-and-modification · Updated: 2026-06-13*

Recherche de salles et de professeurs disponibles, positionnement et modification de séances, détection des conflits et oublis.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Trouver une salle disponible adaptée à un cours (capacité, type, site) et l'affecter

> **En tant que** planificateur, **je veux** trouver une salle disponible adaptée à un cours (capacité, type, site) et l'affecter à une intervention, **afin de** positionner rapidement une séance sans conflit.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Le sélecteur de salle accepte une
recherche textuelle et des filtres de capacité (`>20`, `<=50`,
`=30`, `20-30`). Plusieurs critères séparés par un espace sont
interprétés comme un ET logique ; plusieurs valeurs séparées par une
virgule comme un OU logique. La même recherche accepte "ok" (vs "ko")
pour ne garder que les salles libres sur le créneau.

#### Trouver un professeur disponible enseignant la matière

> **En tant que** planificateur, **je veux** trouver un professeur disponible enseignant la matière, **afin de** remplacer ou compléter une affectation facilement.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** La sélection d'un professeur tient compte
de la matière enseignée et de ses disponibilités. Selon l'écran, le
remplacement se fait directement depuis la séance ou depuis la liste
des cours.

#### Identifier les créneaux disponibles pour une classe ou un groupe

> **En tant que** planificateur, **je veux** identifier les créneaux disponibles pour une classe ou un groupe, **afin de** placer une séance manuellement efficacement.

**Statut** : ◐ Partiel

**Solution dans Omniscol.** Superposez les EDT de la classe ou du
groupe dans les vues de consultation multi-entités pour repérer les
créneaux libres (voir « Visualiser les emplois du temps »).

#### Modifier rapidement une séance (salle, professeur, horaire)

> **En tant que** planificateur, **je veux** modifier rapidement une séance (salle, professeur, horaire), **afin de** ajuster le planning en temps réel.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Ouvrez la séance pour changer la salle, le
professeur ou l'horaire dans sa fenêtre de modification, ou repositionnez-la
via son bouton punaise [thumbtack] (clic sur un créneau coloré) dans la vue planning.
Une **sélection multiple** (Maj+clic sur plusieurs séances) ouvre la même
fenêtre en mode groupé : repositionner, défiger ou supprimer toutes les
séances retenues en une seule opération.

[Modifications ponctuelles](#page-schedules.ad-hoc-changes)

#### Détecter les séances sans professeur ou sans salle

> **En tant que** planificateur, **je veux** détecter les séances sans professeur ou sans salle, **afin de** corriger immédiatement les oublis critiques.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Le diagnostic de l'EDT liste explicitement
les séances positionnées sans salle et les séances sans professeur ;
les vues de planning les signalent également.

[Conflits et diagnostic](#page-timetables.conflicts)

#### Être alerté en cas d’incohérence (absence de salle, de professeur, conflit)

> **En tant que** planificateur, **je veux** être alerté en cas d’incohérence (absence de salle, de professeur, conflit), **afin de** sécuriser la qualité du planning.

**Statut** : ◐ Partiel

**Solution dans Omniscol.** Les incohérences sont signalées dans les
diagnostics et les vues de planning : séance sans salle, sans
professeur, conflits de salle, de classe ou de professeur. Le panneau de
diagnostic se **filtre finement** — par gravité, par type d'alerte, par
entité (classe, professeur, salle), par niveau, site ou campus, et par
intervalle de dates en mode calendrier (fonction Premium ; voir
[Conflits et diagnostic](#page-timetables.conflicts)).

**Contournement (sans Premium).** Utilisez la liste chronologique des
alertes et les filtres de consultation disponibles pour isoler les
séances concernées.
Corrigez les conflits bloquants avant diffusion ou avant réinjection
vers un système tiers.

#### Visualiser rapidement les conflits restants

> **En tant que** planificateur, **je veux** visualiser rapidement les conflits restants, **afin de** finaliser un planning fiable avant diffusion.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Le diagnostic de l'EDT et les vues de
planning signalent les conflits restants. Traitez en priorité les
conflits bloquants avant publication.

[Conflits et diagnostic](#page-timetables.conflicts)

#### Collecter les disponibilités / préférences intervenants

> **En tant que** planificateur, **je veux** collecter les disponibilités / préférences intervenants.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les professeurs saisissent leurs disponibilités et
indisponibilités depuis leur espace ; le planificateur peut aussi les
saisir pour eux. Ces disponibilités sont visibles pendant le placement manuel et
prises en compte par la génération automatique.

[Disponibilités des professeurs](#page-core-concepts.wishes-and-availability)

#### Gérer les créneaux / grilles horaires / hors-grille

> **En tant que** planificateur, **je veux** gérer les créneaux / grilles horaires / hors-grille.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les grilles horaires définissent, site par
site, les créneaux ouverts au placement, pauses comprises.

> _Premium_

Les [séances hors grille](#page-timetables.off-grid-lessons) couvrent les
séances qui ne correspondent à aucun créneau de la grille.

[Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid)

#### Gérer les pauses / hors-grilles

> **En tant que** planificateur, **je veux** gérer les pauses / hors-grilles.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Voir « Gérer les créneaux / grilles horaires / hors-grille » : les pauses se
définissent dans la grille horaire de chaque site, et le hors-grille
couvre les séances en dehors des créneaux.

#### Visualiser les emplois du temps (sélection multiple, vues personnalisées, superposition)

> **En tant que** planificateur, **je veux** visualiser les emplois du temps (sélection multiple, vues personnalisées, superposition, visibilité, export).

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les vues de consultation couvrent la vue
semaine, jour, mois, liste, vis-à-vis et plusieurs modes de
comparaison. La consultation multi-entités permet d'afficher plusieurs
EDT côte à côte, par colonne ou en grille selon le contexte.

Non disponibles dans l'interface actuelle : info-bulle enrichie avec le
code matière, masquage automatique des semaines sans cours, vue
fusionnée unique sans colonne distinctive.

#### Afficher uniquement les salles disponibles

> **En tant que** planificateur, **je veux** afficher uniquement les salles disponibles, **afin de** gagner du temps lors de l'affectation des salles.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Utiliser le filtre de disponibilité dans
le sélecteur de salle pour masquer les salles déjà occupées sur le
créneau (voir aussi « Trouver une salle disponible adaptée à un cours »).

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Consulter et filtrer](#page-schedules.consult-and-filter)
- [Modifications ponctuelles](#page-schedules.ad-hoc-changes)
- [Conflits et diagnostic](#page-timetables.conflicts)

<a id="page-use-cases.multi-entities"></a>

### 15.4  Scénarios — Multi-groupes, multi-salles, multi-intervenants

*Source: `help/fr/use-cases/multi-entities.md` · id: use-cases.multi-entities · Updated: 2026-06-13*

Mutualisation de cours entre plusieurs groupes, plusieurs salles, plusieurs intervenants : co-animation, alignements, groupes de groupes.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Mutualiser des cours (1 cours pour 2 groupes à la même date/heure dans la même salle)

> **En tant que** planificateur, **je veux** mutualiser des cours (1 cours pour 2 groupes à la même date/heure dans la même salle).

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Modélisez la mutualisation avec un
[alignement](#page-core-concepts.alignments) ou un
[groupe de groupes](#page-core-concepts.groups-of-groups) : la séance
commune réunit les groupes sur le même créneau, dans la même salle,
avec le même professeur.

#### Placer une séance avec plusieurs intervenants (coanimation)

> **En tant que** planificateur, **je veux** placer une séance avec plusieurs intervenants (coanimation).

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Une séance peut porter plusieurs
professeurs : ajoutez les co-intervenants dans le sélecteur professeur
**Affecter des professeurs** de la fiche de séance.

[Co-enseignement](#page-higher-ed.co-teaching)

#### Placer une séance avec plusieurs salles

> **En tant que** planificateur, **je veux** placer une séance avec plusieurs salles.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Affectez plusieurs salles à la même séance
depuis le sélecteur de salle **Affecter une salle de classe**.

[Examens multi-salles](#page-higher-ed.multi-room-exams)

#### Placer une séance avec plusieurs groupes

> **En tant que** planificateur, **je veux** placer une séance avec plusieurs groupes.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Vous pouvez **associer directement plusieurs
groupes** — d'une même classe ou de classes différentes — à une même
séance. Pour des regroupements durables ou récurrents, structurez-les
plutôt avec un [groupe de groupes](#page-core-concepts.groups-of-groups)
ou un [alignement](#page-core-concepts.alignments) selon le cas.

#### Pouvoir placer les cours par groupe en masse

> **En tant que** planificateur, **je veux** pouvoir placer les cours par groupe en masse, **afin de** pouvoir attribuer les groupes en masse, en un clic.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Deux leviers couvrent le placement en masse.

- **Sélection multiple, puis punaise.** Sélectionnez plusieurs séances à
  la fois — en **Maj+clic**, ou via le menu **Étendre la sélection** (par
  jour, semaine, mois, jour de la semaine, matière ou partition de
  groupes). La **punaise** affiche alors les créneaux compatibles avec
  toute la sélection : un seul clic les place ensemble sur le même
  créneau.
- **Génération automatique.** Pour placer d'un coup l'ensemble des
  séances sur la grille, laissez le solveur les répartir en respectant
  les contraintes (voir [Génération automatique](#page-timetables.generation)).

Pour réunir plusieurs groupes sur une même séance, voir « Placer une
séance avec plusieurs groupes » ci-dessus ; pour suivre les volumes
placés, appuyez-vous sur la
[répartition des heures](#page-timetables.hour-distribution).

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Multi-salles](#page-glossary.multi-room)
- [Co-enseignement](#page-glossary.co-teaching)
- [Partitions de classe](#page-core-concepts.class-divisions)
- [Alignements de groupes](#page-core-concepts.alignments)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)

<a id="page-use-cases.mass-operations"></a>

### 15.5  Scénarios — Opérations en masse

*Source: `help/fr/use-cases/mass-operations.md` · id: use-cases.mass-operations · Updated: 2026-06-28*

Affectations massives, filtres avancés et automatisations pour gérer rapidement les salles, les capacités et les programmes.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Assigner en masse uniquement les salles non attribuées

> **En tant que** planificateur, **je veux** assigner en masse uniquement les salles non attribuées.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Dans le mode listing de l'écran
**Gestion des EDT**, triez ou filtrez les colonnes pour isoler les
séances **en attente de salle**, cochez-les, puis lancez l'attribution
automatique des salles sur la sélection. La génération automatique
propose aussi un mode limité aux salles : lancée en ignorant les salles
déjà assignées, elle complète uniquement les séances qui n'en ont pas,
sans recalculer le placement.

[Attribution automatique des salles](#page-timetables.auto-room-assignment)

#### Assigner en masse toutes les salles >115 places pour les évènements

> **En tant que** planificateur, **je veux** assigner en masse toutes les salles >115 places pour les évènements, **afin d'**optimiser la gestion des salles.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Repérez les grandes salles dans les
statistiques salles, où la recherche accepte les comparateurs de
capacité (par exemple `>115`). Sélectionnez ensuite les séances
concernées dans le mode listing de l'écran **Gestion des EDT** et
lancez l'attribution automatique des salles : dans le sélecteur de
salles candidates, ne cochez que les salles voulues, la capacité de
chacune étant affichée pour guider le choix.

#### Restreindre l'attribution des salles à un bâtiment ou un étage

> **En tant que** planificateur, **je veux** restreindre l'attribution en masse des salles à un bâtiment ou un étage donné, **afin de** regrouper les cours au même endroit et limiter les déplacements.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Dans l'attribution automatique, le sélecteur de
salles candidates regroupe les salles par **site** puis par **bâtiment** :
cochez un site ou un bâtiment entier pour n'autoriser que ses salles, et
l'algorithme choisit parmi elles. Voir [Attribution automatique des salles](#page-timetables.auto-room-assignment).

#### Réattribuer les salles selon les effectifs réels

> **En tant que** planificateur, **je veux** réattribuer en masse les salles selon les effectifs réels (électifs, langues, groupes), **afin d'**ajuster la taille des salles au nombre d'inscrits.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Isolez les séances concernées dans le mode
listing (tri et filtres par colonne), puis lancez l'attribution automatique :
l'algorithme confronte la **capacité** de chaque salle à l'**effectif** de la
séance et retient la plus petite salle qui convient. Voir
[Attribution automatique des salles](#page-timetables.auto-room-assignment).

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Attribution automatique des salles](#page-timetables.auto-room-assignment)
- [Statistiques salles](#page-dashboard.classrooms)
- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- [Modifications ponctuelles](#page-schedules.ad-hoc-changes)

<a id="page-use-cases.exams-and-events"></a>

### 15.6  Scénarios — Examens et évènements

*Source: `help/fr/use-cases/exams-and-events.md` · id: use-cases.exams-and-events · Updated: 2026-06-13*

Création de séances spécifiques : examens (présentiel ou distanciel, configurations particulières), concours, maintenances.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Créer un évènement (concours)

> **En tant que** planificateur, **je veux** créer un évènement (concours), **afin de** réserver les salles et de disposer de statistiques.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Créez un
[évènement ponctuel](#page-schedules.events) daté, avec ses salles,
participants et ressources : les occupations concurrentes d'une salle,
d'une classe ou d'un professeur sont signalées comme conflits dès lors
que l'évènement engage les participants concernés. Les
évènements ponctuels relèvent des comptes **Premium**.

#### Créer une séance spécifique examen (1 place sur 2, gestion des tiers-temps, etc.)

> **En tant que** planificateur, **je veux** créer une séance spécifique examen (1 place sur 2, gestion des tiers-temps, etc.), **afin de** réserver les salles et de disposer de statistiques.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Créez une séance ou un évènement dédié
avec les salles et la durée adaptées à la configuration de l'épreuve.

[Examens multi-salles](#page-higher-ed.multi-room-exams)

#### Créer un évènement (maintenance)

> **En tant que** planificateur, **je veux** créer un évènement (maintenance), **afin de** réserver les salles et de disposer de statistiques.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Créez un [évènement](#page-schedules.events) sur
le créneau concerné et ajoutez-y la salle ou la ressource à immobiliser :
celle-ci est alors occupée sur le créneau et sort des disponibilités.

#### Créer un examen (à distance ou présentiel, 1h30 ou 3h et autres, électif ou cours obligatoire)

> **En tant que** planificateur, **je veux** créer un examen (à distance ou présentiel, 1h30 ou 3h et autres, électif ou cours obligatoire), **afin de** planifier les épreuves.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Un examen se crée comme une séance de type
**examen** (voir [Types de cours](#page-admin.lesson-types)) : durée libre (1 h 30, 3 h…),
présentiel ou distanciel selon sa [modalité](#page-glossary.lesson-modality),
dans une ou [plusieurs salles](#page-glossary.multi-room). Le caractère
électif se modélise via un [groupe](#page-glossary.group) plutôt que la
classe entière.

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Évènements ponctuels](#page-schedules.events)
- [Séances hors grille](#page-timetables.off-grid-lessons)

<a id="page-use-cases.absences-and-substitutions"></a>

### 15.7  Scénarios — Absences et remplacements

*Source: `help/fr/use-cases/absences-and-substitutions.md` · id: use-cases.absences-and-substitutions · Updated: 2026-06-13*

Déclaration d'absences et gestion des remplacements de professeurs sur courte ou longue période.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Déclarer une absence d’un professeur

> **En tant que** service scolarité, **je veux** déclarer une absence d’un professeur, **afin de** signaler les séances impactées et organiser les remplacements nécessaires.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Déclarez l'absence depuis le module
**Gestion des absences** (le professeur peut aussi la déclarer lui-même, soumise à
validation). Omniscol identifie les séances impactées et vous permet
d'organiser les remplacements.

[Déclarer une absence](#page-absences.declaring)

#### Remplacer un professeur par un autre sur une période donnée

> **En tant que** service scolarité, **je veux** remplacer un professeur par un autre sur une période donnée, **afin de** gérer les changements structurels (maladie, départ…).

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Déclarez une absence pluri-jours avec une
date de début et une date de fin : Omniscol calcule les séances
concernées, qui peuvent être laissées non remplacées, couvertes par une
politique de remplacement ou ajustées par des remplacements ponctuels.

[Absences pluri-jours](#page-absences.multi-day),
[Politiques de remplacement](#page-absences.substitution-policies)

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Vue d'ensemble du module Absences](#page-absences.overview)
- [Déclarer une absence](#page-absences.declaring)
- [Politiques de remplacement](#page-absences.substitution-policies)

<a id="page-use-cases.reporting-and-stats"></a>

### 15.8  Scénarios — Reporting et statistiques

*Source: `help/fr/use-cases/reporting-and-stats.md` · id: use-cases.reporting-and-stats · Updated: 2026-06-13*

Statistiques d'occupation, contrôle de charge enseignante, ratios distanciel/présentiel, volumes horaires par groupe et matière.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Visualiser les tensions d’occupation des salles

> **En tant que** planificateur, **je veux** visualiser les tensions d’occupation des salles, **afin de** anticiper les points de saturation.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les **statistiques salles** du
**Tableau de bord** (voir [Statistiques salles](#page-dashboard.classrooms)) donnent les
taux d'occupation par salle et par période ; le module
**EDT** montre, lui, le planning d'occupation de chaque
salle (créneaux occupés).

#### Vérifier le nombre d’heures enseignées par un professeur

> **En tant que** responsable pédagogique, **je veux** vérifier le nombre d’heures enseignées par un professeur, **afin de** contrôler la charge et la conformité.

**Statut** : ◐ Partiel

**Solution dans Omniscol.** Lors de l'édition d'un emploi du temps dans
le module **Gestion des EDT**, la somme des heures du professeur
s'affiche et se met à jour en direct ; le **Tableau de bord**
fournit le total des heures sur la période.

**Contournement.** Pour contrôler un semestre précis, sélectionnez la
plage de dates correspondante dans le **Tableau de bord** : le total
des heures se recalcule sur la période choisie, sans soustraction manuelle.

#### Extraire des statistiques d’activité (heures, occupation, répartition)

> **En tant que** responsable qualité, **je veux** extraire des statistiques d’activité (heures, occupation, répartition), **afin de** répondre aux exigences d'un audit qualité ou de certification.

**Statut** : ◐ Partiel

**Solution dans Omniscol.** Les exports du **Tableau de bord** et
des vues de planning fournissent les volumes disponibles. Ils ne constituent
pas, à eux seuls, un rapport de certification complet : le cadrage métier
et documentaire reste à la charge de l'établissement.

> _Country: FR_

En France, ces exports alimentent notamment le suivi **Qualiopi**.

#### Analyser l’occupation des salles et des ressources

> **En tant que** direction, **je veux** analyser l’occupation des salles et des ressources, **afin de** optimiser l’utilisation des infrastructures.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Le **Tableau de bord** donne l'occupation
des salles et des ressources ; les exports reprennent ces volumes.

#### Visualiser le taux distanciel / présentiel par programme/promotion

> **En tant que** planificateur, **je veux** visualiser le taux distanciel / présentiel par programme/promotion, **afin de** appliquer les règles (max 20% distanciel, min 20% créneaux indésirables samedi).

**Statut** : ◐ Partiel

> _Premium_

**Solution dans Omniscol.** Le **Tableau de bord** expose des
répartitions par **Modalité** sur les classes et les
matières lorsque les séances portent une modalité (voir
[Édition d'une séance de cours](#page-timetables.lesson-edit)) — **En présentiel**,
**À distance**, **Hybride**
ou **Travail autonome**.
Omniscol ne fournit pas de contrôle réglementaire automatique des
seuils (par exemple « 20 % de distanciel maximum »).

#### Suivre le volume horaire planifié et restant à planifier

> **En tant que** responsable pédagogique, **je veux** suivre le volume horaire planifié et ce qu'il reste à planifier, **afin de** contrôler la cohérence avec la maquette pédagogique.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Pendant l'édition, la
[répartition des heures](#page-timetables.hour-distribution) affiche en
direct, matière par matière, le volume déjà posé et le **temps restant à
placer**. Le **Tableau de bord** en donne le suivi a posteriori, par
classe, matière et groupe.

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [Tableau de bord](#page-glossary.dashboard)
- [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)

<a id="page-use-cases.diffusion-and-sharing"></a>

### 15.9  Scénarios — Diffusion et partage

*Source: `help/fr/use-cases/diffusion-and-sharing.md` · id: use-cases.diffusion-and-sharing · Updated: 2026-06-13*

Export des données, abonnement iCal des intervenants et apprenants, lien public en lecture seule, réservation de ressources.

Pour le format de lecture et la légende des statuts, voir
[Scénarios — vue d'ensemble](#page-use-cases.overview).

#### Exporter les données de planning

> **En tant que** service scolarité, **je veux** exporter les données de planning, **afin de** les réutiliser dans d’autres outils (ERP, reporting…).

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les vues de planning et le Tableau de bord
proposent des exports ; l'API Omniscol permet d'automatiser la
récupération des données.

[Imprimer et partager](#page-schedules.print-and-export),
[API Omniscol](#page-integrations.api-tokens)

#### Consulter son emploi du temps via un lien web sécurisé sans authentification

> **En tant qu'**professeur, **je veux** consulter mon emploi du temps via un lien web sécurisé sans authentification, **afin de** accéder facilement à mes cours.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Le lien de partage est signé et donne un
accès en lecture seule, sans connexion ; il peut porter une date
d'expiration et reste lié au compte qui l'a créé (désactiver ce compte
ou changer son mot de passe invalide le lien).

[Partager un EDT par lien public](#page-schedules.share-link)

#### S’abonner à son emploi du temps via un flux iCal

> **En tant qu'**professeur ou élève, **je veux** m’abonner à mon emploi du temps via un flux iCal, **afin d'**intégrer automatiquement le planning dans mon agenda personnel.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Chaque utilisateur peut s'abonner à son
EDT via un lien iCal dynamique, compatible avec les agendas usuels
(Google Agenda, Outlook, Apple Calendar) ; l'agenda se met à jour au
rythme de ses propres synchronisations.

[iCal — abonnement et lien dynamique](#page-integrations.ical)

#### Exporter l’emploi du temps d’un professeur ou d’un groupe au format Excel

> **En tant que** service scolarité, **je veux** exporter l’emploi du temps d’un professeur ou d’un groupe au format Excel, **afin de** partager ou retraiter les données.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Voir
[Imprimer et partager](#page-schedules.print-and-export).

#### Diffuser les emplois du temps via un lien public contrôlé

> **En tant qu'**établissement, **je veux** diffuser les emplois du temps via un lien public contrôlé, **afin de** communiquer simplement auprès des intervenants et apprenants.

**Statut** : ✓ Disponible

**Solution dans Omniscol.** Les liens de partage publics sont signés,
en lecture seule et **portent une date d'expiration** (par défaut la fin
de l'année scolaire, ou +90 jours, modifiable). Pour une
diffusion institutionnelle, portez les liens par un compte de service
identifié, responsable du partage, plutôt que par un compte personnel.

[Liens de partage publics](#page-portal.share-links)

#### Réserver une ressource (salle, intervenant, séance de cours, ou autre)

> **En tant qu'**utilisateur, **je veux** réserver une ressource (salle, intervenant, séance de cours, ou autre), **afin de** réserver les salles et de disposer de statistiques.

**Statut** : ◐ Partiel

**Solution dans Omniscol.** Aucun module de réservation dédié n'existe
aujourd'hui.

**Contournement (comptes Premium).** Pour bloquer une ressource sur un
créneau précis, créez un [évènement](#page-schedules.events) ; pour la rendre
indisponible sur toute une **période**, utilisez une
[fenêtre de dates](#page-glossary.date-windows).

#### Voir aussi

- [Scénarios — vue d'ensemble](#page-use-cases.overview)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)
- [Lien de partage](#page-glossary.share-link)
- [Liens de partage publics](#page-portal.share-links)
- [Imprimer et partager](#page-schedules.print-and-export)

---

## 16. FAQ — questions fréquentes

<a id="page-faq.general"></a>

### 16.1  FAQ — questions générales

*Source: `help/fr/faq/general.md` · id: faq.general · Updated: 2026-07-24*

Questions générales les plus fréquemment posées par les prospects et
les nouveaux utilisateurs. Pour des questions plus pointues, voir
les FAQ spécialisées : [Création d'EDT](#page-faq.timetables),
[Import des données](#page-faq.data-import),
[Comportement de l'algorithme](#page-faq.solver-behavior),
[Affichage et UX](#page-faq.display-and-ux),
[Sécurité et hébergement](#page-faq.security-and-hosting),
[Tarification et licences](#page-faq.pricing-and-licenses).

#### Comment obtenir une démonstration ?

Le bouton Demandez une démo,
affiché en haut de chaque page du site omniscol.com, réserve un
créneau de 30 minutes en visioconférence avec l'équipe Omniscol. La
démonstration s'appuie sur des situations proches de la vôtre : type
d'établissement, effectifs, organisation des enseignements.

Vous pouvez aussi écrire à l'équipe via la page de contact pour
préparer ce rendez-vous ou poser vos questions au préalable. Une
période d'évaluation est généralement proposée ensuite, pour essayer
Omniscol sur vos propres données avec l'accompagnement de l'équipe.
Voir [Tarification et licences](#page-faq.pricing-and-licenses).

#### Omniscol fonctionne-t-il avec une connexion internet limitée ?

Oui, à condition de disposer d'une connexion suffisante au moment des
chargements et des sauvegardes. L'application web met en cache des
données déjà consultées dans le navigateur, ce qui rend la consultation
plus tolérante aux coupures courtes. Les modifications, imports,
exports et opérations d'administration nécessitent en revanche un accès
réseau disponible au moment de l'action.

#### Quels navigateurs sont supportés ?

Chrome est recommandé. Firefox, Safari et Edge fonctionnent
également. Internet Explorer n'est pas supporté.

#### Faut-il installer un client ?

Non. L'ensemble fonctionne dans le navigateur. Aucune installation
locale n'est requise.

#### Mes données sont-elles sauvegardées ?

Oui. Omniscol s'appuie sur des sauvegardes et mécanismes de redondance
décrits dans le cadre contractuel et les documents sécurité du compte.
Voir [Sécurité et hébergement](#page-faq.security-and-hosting).

Pour des sauvegardes manuelles, un **export complet au format JSON**
est disponible depuis Import/Export. En cas de problème
majeur, ce fichier peut être renvoyé à l'équipe Omniscol pour
réinjection.

#### Puis-je avoir plusieurs EDT en même temps ?

Oui. En compte Standard, sur des plages de semaines disjointes
(par exemple semestre 1 vs semestre 2). En compte
[Premium](#page-overview.plans-and-options), plusieurs EDT peuvent être
publiés **simultanément** sur les mêmes semaines, avec fusion dynamique
des vues — c'est inclus de base. Cette possibilité peut aussi être
activée contractuellement sur certains comptes Standard (cas
exceptionnel, avec cadrage adapté). Voir
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

#### Combien d'administrateurs peuvent travailler en même temps ?

Le nombre de sessions simultanées dépend de votre contrat et de votre
usage. Avec l'option Collaboration temps réel, les administrateurs
voient la présence des autres utilisateurs connectés (un disque rouge
signale un risque de modification simultanée). Les vues
métier ne sont pas toujours rafraîchies automatiquement après une
sauvegarde faite par un collègue. Voir [Collaboration entre administrateurs](#page-core-concepts.collaboration).

#### Comment partager un EDT avec quelqu'un qui n'a pas de compte ?

Le bouton Partage sur l'écran
de l'EDT génère un [lien de partage](#page-glossary.share-link) en
lecture seule, avec date d'expiration obligatoire.

Pour un abonnement agenda dynamique (synchronisation automatique),
l'option iCal est disponible dans le partage. Voir
[iCal — abonnement et lien dynamique](#page-integrations.ical).

#### Quelles langues sont supportées ?

À ce jour : français, anglais, allemand, espagnol, italien,
portugais, néerlandais, polonais, russe, chinois simplifié, arabe,
hébreu, kazakh, vietnamien. Les langues écrites de droite à gauche
(arabe, hébreu) bénéficient d'une interface adaptée (RTL).

#### Mon école est dans un pays non listé. Puis-je utiliser Omniscol ?

Oui. Les paramètres pré-renseignés par pays sont une commodité, pas
une contrainte. Dans le cas le plus défavorable, vous personnalisez
manuellement les niveaux, la grille horaire, les vacances et les
matières.

#### Comment récupérer mes données si je quitte Omniscol ?

Export JSON complet depuis Import/Export. Inclut toutes les
données de l'école, dans un format réutilisable. Vous restez
propriétaire de vos données, conformément au RGPD.

#### Quelle est la différence entre les modules **EDT** et **Gestion des EDT** ?

- **Gestion des EDT** sert à **créer, configurer, générer et
  publier** les emplois du temps. Usage occasionnel (pré-rentrée,
  modifications structurelles).
- **EDT** sert à **consulter et modifier
  ponctuellement** les EDT publiés. Usage quotidien.

Voir [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
et [Consulter et filtrer](#page-schedules.consult-and-filter).

#### Voir aussi

- [Création d'EDT](#page-faq.timetables)
- [Import des données](#page-faq.data-import)
- [Comportement de l'algorithme](#page-faq.solver-behavior)
- [Sécurité et hébergement](#page-faq.security-and-hosting)
- [FAQ — cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)

<a id="page-faq.timetables"></a>

### 16.2  FAQ — Création d'EDT

*Source: `help/fr/faq/timetables.md` · id: faq.timetables · Updated: 2026-07-10*

Questions fréquentes sur la création et la configuration des emplois
du temps. Pour le détail de chaque étape, voir
[Vue d'ensemble du module Gestion des EDT](#page-timetables.overview).

#### Quel type d'EDT choisir : hebdomadaire, cyclique ou calendrier ?

Le choix dépend du rythme de votre établissement :

- **Hebdomadaire** — cours récurrents sur une semaine type. Adapté
  au primaire et au secondaire.
- **Cyclique** — cours récurrents sur un cycle de N jours, différent
  de la semaine de 5 ou 7 (typique des systèmes nord-américains).
- **Calendrier** — séances datées individuellement, sans récurrence
  (typique du supérieur et de la formation continue). Disponible
  sur les comptes Premium.

La génération automatique fonctionne pour tous les types d'emplois
du temps.

Voir [Choisir le bon type d'EDT](#page-overview.timetable-modes).

#### Peut-on créer plusieurs EDT en parallèle ?

Oui. Plusieurs EDT peuvent coexister dans le même compte (brouillons,
versions, semestres, périodes). En compte Standard, les publications
doivent porter sur des plages de semaines disjointes. En compte
Premium, plusieurs EDT peuvent être publiés **simultanément** sur les
mêmes semaines, avec fusion dynamique — une activation contractuelle
équivalente reste possible sur certains comptes Standard. Voir
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

#### Quel est l'ordre recommandé pour configurer un EDT ?

L'ordre des **étapes** : Général, Sites, Professeurs, Classes (avec
leurs groupes), Alignement de groupes, Répartition des heures,
Génération, puis Publication. Les sept premières sont les onglets de
l'éditeur d'EDT (de gauche à droite) ; la **publication** se fait, elle,
depuis l'écran de gestion de l'EDT. Le détail de chaque étape est
documenté dans la section « Création d'un emploi du temps » du sommaire.

#### Pourquoi le bouton de génération reste-t-il grisé ?

Parce que le diagnostic de l'onglet de vérification signale une alerte
bloquante (en rouge). La plus fréquente, en début de construction : il
n'y a **aucune séance à placer**. La génération positionne des séances
existantes, elle n'en crée aucune — il faut d'abord les créer depuis les
volumes horaires, à l'étape [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution).

Sur une alerte bloquante ordinaire, le calcul reste lançable par le menu
d'options du bouton, à vos risques et périls. Sur une alerte
rédhibitoire — aucune séance, aucune classe utilisable, site sans grille
horaire — le menu est désactivé lui aussi. Le détail des cas est sur
[Génération automatique](#page-timetables.generation).

#### La génération automatique a-t-elle des limites ?

Le solveur est puissant mais respecte strictement les contraintes
qu'on lui donne. Si une configuration est structurellement
impossible (disponibilités contradictoires, capacité insuffisante,
alignements incohérents), Omniscol renvoie le meilleur EDT calculé,
laisse les séances manquantes dans la liste des post-its non
positionnés et fournit un diagnostic explicite. Voir
[Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Combien de temps prend une génération ?

La durée dépend de la taille de l'EDT, du nombre de séances et des
contraintes. Chaque génération démarre un environnement de calcul
dédié et parallélisé ; l'initialisation prend souvent autour d'une
dizaine de secondes avant le calcul effectif. La fenêtre peut être
fermée pendant le calcul ; une notification s'affiche à la fin. Pour
les ordres de grandeur, voir
[Comportement de l'algorithme](#page-faq.solver-behavior).

#### Un EDT généré est-il publié automatiquement ?

Non. La publication (« distribution ») est une étape distincte qui
doit être effectuée explicitement après vérification. Sans
publication, l'EDT reste un brouillon non visible des utilisateurs
finaux. Voir [Publier (activer) un emploi du temps](#page-timetables.publication).

#### Peut-on revenir à un état antérieur d'un EDT ?

Oui, sous deux formes :

- **Duplication** d'EDT — chaque modification structurelle peut être
  faite sur une copie, l'original servant de référence (disponible
  sur tous les paliers).
- **Snapshots** — points de sauvegarde restaurables du compte
  entier, automatisés ou manuels (option Snapshots, selon contrat).
  Voir [Points de sauvegarde](#page-admin.snapshots).

#### Comment gérer les semaines alternées (A/B) ?

La fonctionnalité est activée dans les
[Paramètres généraux](#page-admin.parameters), section **Semaines alternées**
(lettres A/B/C ou chiffres 1/2/3, cadence libre sur
autant de semaines que nécessaire).
Sur un cours, Ajouter une semaine ajoute une plage pour
une nouvelle semaine alternée. Voir [Cours alternés](#page-glossary.alternate-lessons).

#### Peut-on décaler la sortie du déjeuner selon les niveaux (deux services de cantine) ?

Oui, et c'est la bonne façon de **lisser la cantine**. On déclare une pause
méridienne large et commune — par exemple **12 h – 14 h** — avec une durée de
déjeuner à préserver d'**une heure**, puis on **fixe** le service de chaque niveau
en peignant une indisponibilité (**Indisponible**) sur son demi-créneau de
repas, dans les contraintes horaires de la classe
(Contraintes horaires de la classe).

Exemple : 6e, 5e, 4e indisponibles sur 12 h – 13 h (premier service) ; 3e, 2de
indisponibles sur 13 h – 14 h (second service). La cantine reçoit ainsi deux flux
distincts. Voir [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid) et
[Contraintes horaires (système général)](#page-core-concepts.time-constraints).

#### Voir aussi

- [Vue d'ensemble du module Gestion des EDT](#page-timetables.overview)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Comportement de l'algorithme](#page-faq.solver-behavior)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)

<a id="page-faq.data-import"></a>

### 16.3  FAQ — Import des données

*Source: `help/fr/faq/data-import.md` · id: faq.data-import · Updated: 2026-05-10*

#### Quels formats d'import sont supportés ?

CSV et TSV, par copier-coller depuis Excel, Google Sheets, Numbers
ou Calc. L'**export JSON** complet du compte est accessible à
l'administrateur (sauvegarde) ; la **réimportation** d'un compte JSON
complet, elle, est une opération de restauration assurée par Omniscol,
pas une action courante de l'écran d'administration.

Pour des migrations dédiées, voir [Vue d'ensemble](#page-migration.overview).

#### L'identifiant est-il généré par le système ?

Oui. À l'import d'élèves, de professeurs ou de classes, Omniscol
génère un identifiant interne stable : pour les personnes il dérive du
prénom et du nom, pour un groupe il inclut la classe parente
(`<classe>:<groupe>`). Le patron de l'**identifiant de connexion**
(prénom-nom, nom-prénom ou numéro d'identification) se règle dans les
[Paramètres généraux](#page-admin.parameters), champ **Identifiant**.

Vous pouvez aussi renseigner votre propre référence via le champ
**identifiant externe / matricule** — utile pour la traçabilité avec
votre système d'information scolaire et pour distinguer les homonymes.

#### Pour les groupes, faut-il toujours référencer la classe ?

Oui. Un groupe est toujours une subdivision d'une classe. L'ID
d'un groupe inclut la classe parente. Dans les fichiers d'import
de cours, les colonnes « classe » et « groupe » fonctionnent
conjointement.

Voir [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups).

#### L'ordre des colonnes du tableau est-il important ?

L'écran d'import ouvre un **canevas de colonnes** typées par position
(la matière, le professeur, la salle… occupent chacune une colonne
attendue). Vous **réorganisez les colonnes du canevas** pour qu'elles
correspondent à l'ordre de votre tableur source : le copier-coller
reste alors propre, sans réécrire votre fichier. Voir
[Import massif des cours via tableur](#page-timetables.mass-import).

#### Quels séparateurs pour les listes (multi-professeur, multi-groupe, etc.) ?

Les séparateurs courants sont reconnus à l'intérieur d'un même champ :
virgule, point-virgule, slash, barre verticale, plus, esperluette ou
retour à la ligne. Le moteur d'import détecte la convention employée
dans le champ.

#### Que se passe-t-il si le tableau contient des matières inconnues ?

À l'étape 4 de l'import, Omniscol propose la **création des entités
inconnues**. Pour les matières personnalisées et certains professeurs,
vous pouvez demander une création côté **Administration** afin de les
rendre disponibles dans toute l'école. Les libellés se corrigent à
l'étape 3, lors de la désambiguïsation.

#### Les cours complexes sont-ils correctement importés ?

Partiellement. Le moteur d'import reconnaît bien :

- les cours simples (matière + classe + professeur + salle + créneau),
- les cours en alternance basique (`A/B`),
- les cours multi-professeurs (co-enseignement),
- les cours multi-salles.

Il reconnaît moins bien, et nécessite donc une finition manuelle :

- les cours associés (alternance demi-groupes),
- les concaténations complexes,
- les groupes de groupes,
- les cours hors-grille avec horaires précis.

#### Que faire si l'import échoue sur un fichier volumineux ?

- Vérifier l'absence de lignes vides ou de cellules fusionnées.
- Découper le fichier en sous-ensembles (par classe, par campus,
  par semestre).
- Privilégier un **export complet** du compte source, souvent plus
  propre qu'un export partiel manuel.

#### Voir aussi

- [Préparer ses données pour un import massif](#page-getting-started.preparing-data)
- [Import massif des cours via tableur](#page-timetables.mass-import)
- [Vue d'ensemble](#page-migration.overview)
- [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases)

<a id="page-faq.solver-behavior"></a>

### 16.4  FAQ — Comportement de l'algorithme de génération

*Source: `help/fr/faq/solver-behavior.md` · id: faq.solver-behavior · Updated: 2026-05-15*

Questions fréquentes sur le comportement du moteur de génération
automatique. Pour la description du solveur lui-même, voir
[Solveur](#page-glossary.solver) ; pour le détail
opérationnel, voir [Génération automatique](#page-timetables.generation).

#### Sur quels types d'EDT le solveur fonctionne-t-il ?

Sur les EDT [hebdomadaires](#page-glossary.weekly-timetable),
[cycliques](#page-glossary.cyclic-timetable) et
[calendrier](#page-glossary.calendar-mode). En mode calendrier, les
séances sont placées sur des dates réelles et les options de
génération incluent des bornes de dates.

#### Comment fonctionne l'algorithme ?

Omniscol lance un traitement de résolution en arrière-plan. Le solveur
évalue les séances à placer, les contraintes déclarées et les préférences
de génération. Le résultat dépend surtout de la qualité des données :
volumes horaires, professeurs, salles, groupes, disponibilités, incompatibilités
et contraintes inter-sites.

Chaque génération démarre un environnement de calcul dédié et
parallélisé. Il n'y a pas de file d'attente à gérer côté école ;
l'initialisation prend souvent autour d'une dizaine de secondes avant
que le calcul effectif commence. Dans le module **Gestion des EDT**,
le bouton **Générer EDT** lance le calcul,
suit son état et permet d'inspecter le résultat.

Le moteur est une IA d'optimisation **métaheuristique Monte-Carlo
neuro-symbolique** : recherche stochastique, contraintes symboliques et
optimisation progressive des scores. Ce n'est pas une promesse de
réussite sur un jeu de contraintes impossible ; dans ce cas, Omniscol
renvoie un diagnostic.

#### Combien de temps prend une génération ?

La durée dépend de la taille de l'EDT, du nombre de séances, du nombre
de contraintes et des options choisies. À titre d'ordre de grandeur, un
collège d'environ 550 élèves, 45 professeurs et 16 classes, avec
beaucoup de disponibilités, peut obtenir en moins d'une minute un EDT complet,
avec très peu ou pas de trous, quand les données sont cohérentes. Un cas
plus dense, très contraint ou avec des optimisations coûteuses peut
prendre nettement plus longtemps.

#### Le solveur respecte-t-il toutes les contraintes ?

Les **contraintes dures** sont respectées strictement :

- un professeur à un seul endroit au même moment ;
- une classe sans double placement, sauf groupes en partition ;
- disponibilités et créneaux marqués **indisponibles** ;
- salle standard occupée par une seule séance à la fois ;
- grande salle utilisée seulement dans ses limites de capacité et de
  nombre de classes ;
- salles spécialisées, capacités, ressources matérielles et trajets
  inter-sites compatibles ;
- séances verrouillées conservées à leur place.

Les **contraintes souples** (disponibilités indésirables, préférences,
pondération pédagogique, équilibre des journées, nombre de jours de
présence, trous dans les EDT) sont optimisées au mieux. Elles créent des
malus : le solveur cherche la solution qui en accumule le moins, mais
peut en conserver si c'est le meilleur compromis compatible avec les
contraintes dures.

#### Que faire si la génération échoue ?

Quand aucune solution complète n'est trouvée, Omniscol renvoie le
meilleur EDT calculé et laisse les séances non positionnées dans la
barre des post-its. L'EDT partiel reste consultable pour comprendre ce
qui a été placé, puis corriger les contraintes ou repositionner
certaines séances manuellement. Les causes les plus fréquentes sont décrites dans la page
[Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Peut-on forcer manuellement la position d'une séance ?

Oui, via le **verrouillage** d'une séance après positionnement
manuel. Le solveur ne déplace pas une séance verrouillée lors d'une
nouvelle génération, mais ajuste les autres autour. Utile pour ancrer les
séances immuables (interventions extérieures à date fixe, examens
datés).

#### Pourquoi le solveur ne propose-t-il pas plusieurs solutions ?

Le solveur optimise selon les contraintes et préférences déclarées
et retourne **la meilleure solution trouvée**. Pour obtenir
plusieurs solutions à comparer, dupliquez l'EDT avant chaque
génération et ajustez légèrement les contraintes ou pondérations
entre deux passes.

#### Le solveur tient-il compte des absences déclarées ?

Le solveur s'applique sur l'EDT **structurel**, indépendamment des
absences. Les absences sont gérées **a posteriori** dans le module
**Gestion des absences** (voir [Vue d'ensemble du module Absences](#page-absences.overview)), avec impact sur
l'affichage de l'EDT publié et sur les statistiques du
[Tableau de bord](#page-glossary.dashboard) (pas sur la structure
sous-jacente).

#### Conflit volontaire et conflit bloquant

Tous les conflits ne sont pas équivalents :

- **Conflits non bloquants** — peuvent être laissés en l'état si
  c'est un choix délibéré (par exemple, une salle dont l'effectif
  affiché excède la capacité parce qu'on sait que tous les inscrits
  ne viendront pas). L'alerte reste visible mais ne bloque pas.
- **Conflits bloquants** — empêchent la génération automatique de
  réussir (pas de salle compatible, alignement incohérent, etc.).
  Le bouton Générer EDT reste
  désactivé tant que ces conflits subsistent.

Voir [Conflit](#page-glossary.conflict).

#### Voir aussi

- [Solveur](#page-glossary.solver)
- [Génération automatique](#page-timetables.generation)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)
- [Conflit](#page-glossary.conflict)
- [Diagnostic](#page-glossary.diagnostic)

<a id="page-faq.display-and-ux"></a>

### 16.5  FAQ — Affichage et interface

*Source: `help/fr/faq/display-and-ux.md` · id: faq.display-and-ux · Updated: 2026-06-25*

Questions fréquentes sur l'affichage, les vues, et l'expérience
utilisateur de l'interface Omniscol.

#### Quelles vues sont disponibles pour consulter un EDT ?

Le composant d'affichage combine :

- des **modes de rendu** : **grille** (calendrier standard),
  **liste**, **tableau** type tableur ;
- des **variantes de lecture** : **jour**, **mois**, **planning**
  (et **planning par heures**), **vis-à-vis**.

Le planning sert à croiser plusieurs entités ou plusieurs jours dans une
même vue ; le planning par heures fait de même sur une échelle horaire. Le
tableau est un rendu tabulaire de la vue en cours.

Voir [Affichage des EDT](#page-schedules.schedule-display) et [Consulter et filtrer](#page-schedules.consult-and-filter).

#### Un affichage vertical d'EDT est-il disponible ?

Dans le module **EDT**, le composant d'affichage des EDT
ne propose pas de vue verticale. Une vue verticale équivalente existe dans
le module **Service du personnel** (cf. [Vue d'ensemble du Service du personnel](#page-staffing.overview)) pour des
contextes apparentés (grilles de surveillance).

#### L'interface est-elle responsive (mobile, tablette) ?

Oui, l'interface s'adapte aux écrans de toutes tailles. Sur
smartphone, le swipe horizontal fait défiler la période affichée (la
semaine par défaut, le jour en vue Jour).

#### Quels paramètres d'affichage des noms sont disponibles ?

Les noms passent par une fonction de formatage paramétrée selon la
configuration de l'école :

- Ordre prénom/nom (selon les conventions du pays).
- Mise en gras du principal (variable selon les pays — gestion du
  *middle name* pour les conventions américaines, vietnamiennes,
  arabes).
- Capitalisation du prénom, du second prénom si actif, et/ou du nom
  de famille via le paramètre de capitalisation des noms.

#### L'interface est-elle accessible aux personnes en situation de handicap ?

Un audit d'accessibilité (RGAA, WCAG) est en place. Un rapport de
conformité peut être fourni sur demande. Les
améliorations identifiées sont traitées en continu. Pour les besoins
spécifiques (lecteur d'écran, contraste renforcé, navigation au
clavier), contacter le support.

#### Les langues écrites de droite à gauche sont-elles supportées ?

Oui. Arabe et hébreu disposent d'une interface de droite à gauche adaptée.
Les 14 langues prises en charge sont listées dans [Questions générales](#page-faq.general).

#### Comment imprimer un EDT ?

Le bouton **Imprimer** du module
**EDT** lance l'impression. Le rendu est optimisé pour le
papier (pas d'éléments interactifs, mise en page adaptée).

#### Comment exporter un EDT vers Excel ou un calendrier externe ?

- Export Excel / CSV via **Tableau**.
- Export / abonnement iCal via **Télécharger**
  (cf. [iCal — abonnement et lien dynamique](#page-integrations.ical)).
- Lien de partage public en lecture seule (cf. [Lien de partage](#page-glossary.share-link)).

#### Le mode sombre est-il disponible ?

Pas dans l'interface actuelle : Omniscol ne propose pas de thème
sombre et ne bascule pas automatiquement avec le réglage sombre du
système d'exploitation. L'interface prend en revanche en compte les
préférences d'accessibilité du système telles que le contraste
renforcé.

#### Puis-je personnaliser les couleurs des matières ?

Oui. Chaque matière (cf. [Matière](#page-glossary.subject)) peut recevoir une couleur
spécifique via **Colorpicker**. Les
types de cours restent de simples libellés textuels, sans couleur ni icône
associées.

#### Voir aussi

- [Consulter et filtrer](#page-schedules.consult-and-filter)
- [FAQ — cas particuliers et configurations avancées](#page-faq.edge-cases)
- [Panneau d'affichage](#page-panels.lobby-panel)
- [Imprimer et partager](#page-schedules.print-and-export)

<a id="page-faq.higher-ed-cases"></a>

### 16.6  FAQ — cas d'usage enseignement supérieur

*Source: `help/fr/faq/higher-ed-cases.md` · id: faq.higher-ed-cases · Updated: 2026-06-13*

Questions fréquentes rencontrées dans les établissements
d'enseignement supérieur (écoles de commerce, écoles d'ingénieurs,
écoles d'art et de design, universités, centres de formation
continue). Les réponses sont applicables transversalement à ces
typologies ; pour le détail métier voir
[Spécificités enseignement supérieur](#page-higher-ed.overview).

#### Plusieurs EDT, chaque utilisateur ne voit que le sien

**Q.** Comment gérer plusieurs EDT en parallèle de sorte que chaque
utilisateur ne voie, dans son calendrier, que les cours qui le
concernent ?

**R.** Trois mécanismes coopèrent :

- Côté administrateur, plusieurs EDT peuvent être publiés en
  parallèle sur les mêmes semaines, avec fusion dynamique — inclus de
  base en compte Premium (voir
  [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)).
- Chaque utilisateur ne voit, par défaut, que les cours qui le
  concernent — sa classe, ses groupes, ses cours pour un professeur.
  Les filtres sont appliqués automatiquement à la connexion selon
  son rôle.
- Pour consulter un autre périmètre (autre classe, autre professeur…),
  l'utilisateur applique manuellement un filtre, sous réserve que
  son rôle l'autorise. Les
  [restrictions de visibilité](#page-admin.visibility-restrictions)
  permettent par exemple de masquer aux professeurs l'EDT de leurs
  collègues.

#### Synchronisation iCal après modification d'un EDT

**Q.** Lorsqu'un cours est modifié dans Omniscol, le flux iCal est-il
mis à jour automatiquement ?

**R.** Oui, à condition d'utiliser un **lien d'abonnement iCal**
(et non un téléchargement statique). Le lien d'abonnement est
dynamique ; l'application agenda re-pull le flux à intervalles
réguliers, avec un délai qui va de quelques minutes à plusieurs
heures selon l'application et sa configuration. C'est l'application
agenda qui décide de la cadence de rafraîchissement, pas Omniscol.

Voir [iCal](#page-glossary.ical) et
[iCal — abonnement et lien dynamique](#page-integrations.ical).

#### Notification à chaque modification

**Q.** Peut-on envoyer une notification à chaque modification d'EDT ?

**R.** Pas de notification automatique à chaque modification : le
volume serait ingérable côté destinataires. Approche actuelle :
publier les modifications par lot via un e-mail récapitulatif sur la
sélection des utilisateurs concernés (Envoyer un mail).

#### Salle parmi un macro-type / catégorie de salles

**Q.** Comment indiquer qu'un cours doit avoir lieu dans une salle
particulière appartenant à un macro-type — selon que l'on veut
forcer une salle précise ou laisser le moteur choisir parmi le
groupe ?

**R.** Via les
[**spécialisations de salles**](#page-glossary.classroom-specialization),
qui sont des champs libres :

- Créez une spécialisation correspondant au macro-type (par exemple
  « ATELIER », « SALLE-INFO », « LABO-CHIMIE »).
- Assignez cette spécialisation aux salles concernées.
- Sur le cours, indiquez la spécialisation requise. Omniscol
  propose prioritairement les salles spécialisées et le solveur en
  choisit une parmi les disponibles.
- Pour **forcer une salle précise**, indiquez-la directement (en
  plus de la spécialisation, ou à la place). Le solveur respecte le
  forçage.

À l'import en masse, vous pouvez n'indiquer que la spécialisation ;
le solveur se charge de l'attribution finale.

#### Vérifier l'occupation des salles avant génération

**Q.** Existe-t-il un reporting permettant de vérifier, avant la
génération, si les heures assignées à une salle ou à un macro-type
de salles tiennent dans le total d'heures disponibles ?

**R.** L'onglet Génération exécute un diagnostic en amont :
contrôles de capacité (nombre de séances à positionner comparé à la
capacité de la grille horaire) et contrôles de compatibilité des
spécialisations de salles. Un avertissement remonte en cas de
surdimensionnement. Le
[tableau de bord](#page-glossary.dashboard) post-publication donne le
détail effectif (en tenant compte des absences et des
remplacements).

#### Durée par cours individuel à l'import

**Q.** Dans le fichier d'import, la colonne « durée » contient le
total horaire d'une activité, qui peut regrouper plusieurs cours.
Où indiquer la durée individuelle de chaque cours ?

**R.** Une **ligne d'import correspond à un cours**. La durée
renseignée est celle de ce cours, pas du module. Pour un module
comportant plusieurs cours de durées différentes, il faut donc une
ligne d'import par cours.

Si la source agrège (« Algèbre = 30 h total »), il faut
décomposer avant import — ou utiliser la
[distribution automatique](#page-timetables.hour-distribution) pour
répartir un volume horaire en cours individuels.

#### Cours uniquement sur certaines semaines

**Q.** Comment indiquer qu'un cours n'a lieu que sur certaines
semaines précises de l'année académique ?

**R.** Cela dépend du mode :

- En mode [hebdomadaire](#page-glossary.weekly-timetable), les
  [semaines alternées](#page-glossary.alternate-lessons) couvrent le
  cas où un cours ne revient qu'une semaine sur N. Pour un cours
  qui ne tombe que sur quelques semaines précises de l'année, le
  mode calendrier est plus adapté.
- En mode [calendrier](#page-glossary.calendar-mode), chaque
  séance est positionnée individuellement à sa date : c'est natif.
- À l'import, renseignez la **date** de chaque séance dans la colonne
  prévue (format `AAAA-MM-JJ`), ou laissez-la vide pour une séance à
  positionner manuellement par la suite.

#### Cours inter-classes / inter-promos

**Q.** Comment modéliser des cours où, dans le même créneau et la
même salle, participent plusieurs groupes d'une même classe ou des
classes différentes, parfois pour des matières différentes, parfois
sur des campus différents ?

**R.** Selon le cas :

- **Plusieurs groupes d'une même classe au même créneau, même
  matière, même professeur, même salle** — un seul cours assigné à
  un super-groupe. Composition figée →
  [partition](#page-glossary.class-division) si applicable. Composition
  évolutive → [groupe de groupes](#page-glossary.groups-of-groups),
  disponible sur tous les comptes et tous les types d'EDT.
- **Plusieurs classes différentes au même créneau, même matière,
  même professeur, même salle** — un
  [alignement](#page-glossary.alignment) lorsque la composition est
  figée, ou un [groupe de groupes](#page-glossary.groups-of-groups)
  (disponible sur tous les comptes, tous types d'EDT) lorsque le
  regroupement doit rester évolutif.
- **Matières différentes au même créneau et même salle** (cas rare)
  — il faut deux cours distincts. Chaque étudiant voit, sur son EDT,
  la matière de son propre groupe.
- **Entre deux sites** (deux classes de lieux différents qui partagent
  un cours) — pris en charge, à condition que la salle commune ou la
  visioconférence soit modélisée correctement (cf.
  [sites virtuels](#page-glossary.site)).

#### Alternance d'intervenants sur un même créneau

**Q.** Comment indiquer que deux professeurs alternent sur le même
créneau, le même jour de la semaine, avec la même classe / matière /
groupe — l'un une semaine, l'autre la suivante ?

**R.** Il s'agit d'une **alternance d'intervenants**, pas d'un
[co-enseignement](#page-glossary.co-teaching) au sens strict (qui
implique deux professeurs simultanément sur la même séance). Deux
implémentations selon la cadence :

- **Alternance régulière en mode hebdomadaire** — utilisez les
  [semaines alternées](#page-glossary.alternate-lessons) avec un
  professeur différent sur chaque semaine.
- **Alternance à dates précises en mode calendrier** — créez un
  cours par séance avec le professeur correspondant. Plus verbeux
  mais plus flexible : chaque séance peut être ajustée
  individuellement.

#### Co-animation ponctuelle (visiting professor)

**Q.** Comment indiquer que, pour une ou quelques séances seulement,
un visiting professor co-anime un cours avec le professeur titulaire ?

**R.** En mode [calendrier](#page-glossary.calendar-mode), créez les
séances ordinaires avec le seul professeur titulaire, puis pour les
séances où le visiting intervient, ajoutez-le en
[co-animateur](#page-glossary.co-teaching) sur la séance précise.
Chaque professeur est crédité dans ses propres statistiques.

#### Lien de visioconférence par cours

**Q.** Le lien de visioconférence ne peut-il être attaché qu'à une
classe entière, ou peut-on le rattacher à un cours ou une séance
précise ?

**R.** Un lien de visioconférence peut être défini à trois niveaux :
sur la **classe** (il s'applique alors par défaut à toutes ses
séances), sur un **cours** précis, ou sur une **séance individuelle**
en mode calendrier. C'est adapté aux sessions hybrides où seuls
certains cours sont en distanciel. Voir
[Liens de visioconférence par cours](#page-higher-ed.videoconference-links).

#### Étudiants en redoublement et hors-cursus

**Q.** Comment gérer un étudiant qui doit suivre une matière d'une
autre année (redoublement, mise à niveau, *fuori corso*, etc.) ?

**R.** Un étudiant peut être affecté à plusieurs classes
simultanément, et restreint à certains groupes d'une classe. Quatre
cas typiques :

1. **Toute une autre classe + un groupe précis d'une troisième** —
   affecter aux deux et choisir le groupe.
2. **Plusieurs groupes d'une autre classe sans toute la classe** —
   affecter directement aux groupes.
3. **Une seule matière d'une autre classe via un groupe précis** —
   créer un groupe dédié dans l'autre classe et affecter l'étudiant
   à ce seul groupe.
4. **Étudiant hors-cursus refaisant une matière isolée** — même
   logique avec un groupe dédié.

#### ID du SIS comme identifiant unique

**Q.** Peut-on utiliser l'identifiant étudiant ou professeur venant
de notre SIS comme identifiant unique dans Omniscol, pour éviter
les homonymies ?

**R.** Oui, via le champ **Matricule / ID externe** sur la fiche
utilisateur — c'est sa raison d'être. Renseignez-le à l'import et
Omniscol l'utilisera comme clé d'identification. Particulièrement
utile pour les synchronisations bidirectionnelles avec votre SIS
(voir [la synchronisation avec des systèmes externes](#page-integrations.extsync) pour Aurion / Auriga ou
[API Omniscol](#page-integrations.api-tokens) pour une intégration
spécifique).

#### Plusieurs adresses e-mail par utilisateur

**Q.** Peut-on importer deux adresses e-mail pour un même
professeur (institutionnelle et personnelle) ?

**R.** Pas dans l'interface actuelle : un e-mail principal par
utilisateur. Si une seconde adresse doit être conservée à titre
informatif, utilisez le champ Commentaire de la fiche utilisateur.
Ce champ n'est pas utilisé comme adresse d'envoi.

#### Apprenants, étudiants, participants — quelle entité ?

**Q.** Notre référentiel distingue **apprenant** (terme général),
**étudiant** (formation initiale), **participant** (formation
continue). Comment ces nuances se mappent-elles ?

**R.** Tous se ramènent à l'entité Omniscol
[étudiant](#page-glossary.student) (rôle `student`). La distinction
formation initiale / continue est gérée par un attribut optionnel
sur la fiche (matricule SIS, statut), pas par des entités séparées.

#### Intervenants : permanents, vacataires, experts, visiting

**Q.** Notre référentiel distingue **professeur permanent** (CDI,
temps réparti), **vacataire** (contrat ponctuel), **expert**
(prestataire externe rare), **visiting professor** (universitaire
invité). Tous correspondent-ils à la même entité Omniscol ?

**R.** Oui, tous se ramènent à l'entité
[professeur](#page-glossary.teacher) (rôle `teacher`). Le **marqueur
nominatif « externe / vacataire »** qui les distingue des permanents est
une option **Premium** (cf.
[intervenant externe](#page-glossary.external-teacher)) ; sans Premium, les
quatre profils restent une même entité professeur, sans marquage dédié.

Les rôles « responsable de cours » et « responsable de programme »
sont des **rôles métier** internes à votre établissement. Omniscol
ne les modélise pas en tant que tels, mais peut les représenter via
les [rôles personnalisés](#page-admin.customroles).

#### Programmes, cursus, parcours pédagogiques

**Q.** Notre offre se hiérarchise en **programmes** (PGE, MBA, MsC,
PhD, etc.), **cours de management** (UE / EC / ECUE), **activités
pédagogiques** (séances). Comment cela se mappe-t-il dans Omniscol ?

**R.** Mapping recommandé :

| Concept métier | Entité Omniscol |
| --- | --- |
| **Programme** | Une [classe](#page-glossary.class) (ou un ensemble de classes pour les promotions parallèles) |
| **Cours / module / UE / EC** | Une [matière](#page-glossary.subject) (avec ou sans [type de cours](#page-glossary.lesson-type)) |
| **Séance / activité pédagogique** | Une [séance](#page-glossary.lesson) — occurrence individuelle positionnée d'un cours |

Pour les nomenclatures hiérarchiques (UE → EC → ECUE), une
convention de nommage sur les matières
(« UE3-EC2-ECUE1 Algèbre linéaire ») ou l'utilisation des **familles
de matières** permet de représenter le regroupement.

#### Mobilité, échanges, double-diplôme

**Q.** Comment gérer la mobilité entrante et sortante (échanges
académiques, double-diplômes, *free movers*, *study abroad*) ?

**R.** Côté EDT, ces apprenants sont des **étudiants ordinaires
affectés à des classes spécifiques**. La gestion administrative
(conventions, crédits, ECTS, statut) relève du SIS de
l'établissement ; Omniscol se concentre sur la question « qui
assiste à quel cours, quand, où ».

#### Recommandations de configuration pour l'enseignement supérieur

Pour un compte enseignement supérieur, considérez :

- **Compte Premium** : mode calendrier, disponibilités calendrier et plusieurs
  EDT actifs y sont inclus de base, tout comme le MCP (connexion d'un
  assistant IA compatible). À compléter selon le besoin par les options
  contractuelles : rôles personnalisés, snapshots, collaboration temps
  réel. (Les **groupes de groupes**, eux, sont disponibles sur tous les
  comptes.)
- **Mode calendrier** pour la majorité des EDT (séances datées
  individuellement, intervenants au gré des sessions).
- **Plusieurs EDT actifs en parallèle** par programme (un EDT par
  master, fusionnés dynamiquement lorsque des cours sont communs).
- **Groupes de groupes** pour les regroupements transversaux
  évolutifs (tronc commun multi-parcours).
- **Multi-salles** pour les examens en amphithéâtres dédoublés ou
  les CM retransmis.
- **Rôles personnalisés** pour modéliser les responsables de cours
  ou de programme avec des permissions ciblées sur leur périmètre.
- **Intégration SIS** ([la synchronisation avec des systèmes externes](#page-integrations.extsync) pour
  Aurion / Auriga, ou [API Omniscol](#page-integrations.api-tokens)
  pour une intégration spécifique) pour synchroniser les apprenants.
- **OIDC / SSO** sur le fournisseur d'identité de l'établissement
  (Google Workspace, Microsoft Entra ID, Keycloak, etc.).

#### Voir aussi

- [Spécificités enseignement supérieur — vue d'ensemble](#page-higher-ed.overview)
- [Multi-salles](#page-glossary.multi-room)
- [Modalité](#page-glossary.lesson-modality)
- [Co-enseignement](#page-glossary.co-teaching)
- [Mode calendrier](#page-glossary.calendar-mode)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)
- [FAQ — Création d'EDT](#page-faq.timetables)
- [FAQ — Import des données](#page-faq.data-import)

<a id="page-faq.edge-cases"></a>

### 16.7  FAQ — cas particuliers et configurations avancées

*Source: `help/fr/faq/edge-cases.md` · id: faq.edge-cases · Updated: 2026-06-13*

Questions concernant des configurations atypiques ou des cas
particuliers : cours qui ne respectent pas la grille horaire,
gestion fine des salles et de leurs spécialisations, conflits non
bloquants, affichages spécifiques, traçabilité des incohérences.

#### Cours avec horaire personnalisé

**Q.** Une partie des cours de notre établissement (environ 20 %)
ne respecte pas la grille horaire standard : durée précise d'examen,
horaires décalés pour certains TP. Comment placer une séance qui doit
commencer à 13h10 sur une grille de pas 10 minutes, et obtenir une
heure de fin cohérente ?

**R.** Oui. Une séance peut être saisie avec un horaire de début et de
fin propres, sans respecter exactement les bornes de la grille standard.
Dans la séance positionnée, utilisez le bouton
Horaire personnalisé (Horaire personnalisé) puis
renseignez le début et la fin.

La séance reste prise en compte dans les conflits : professeur, salle,
classe, groupe et ressource sont considérés occupés dès que l'horaire
personnalisé chevauche un créneau. Pour la génération automatique, cette
position est verrouillée.

La configuration **Hors grille** d'une classe est un cas différent : elle
sert aux classes en mode calendrier configurées hors grille dont toutes
les séances doivent être stockées avec des horaires précis.

Voir [Séances hors grille](#page-timetables.off-grid-lessons)
pour le détail.

#### Création de matières avec parent et famille existante

**Q.** Lors de la création d'une matière personnalisée, est-il
possible de sélectionner une **matière parent** déjà créée et une
**famille** existante, sans devoir passer par une réinjection
externe ?

**R.** Oui. La fenêtre de création ou de modification d'une matière
personnalisée permet de sélectionner directement une matière parent
existante (champ Matière parent) et une famille existante (champ
Famille), sans réinjection externe. Voir
[Gérer les matières](#page-admin.subjects).

#### Modifier ou supprimer une spécialisation de salle

**Q.** Pourquoi la modification ou la suppression directe d'une
spécialisation de salle n'est-elle pas disponible (par exemple pour
corriger une faute d'orthographe) ?

**R.** La liste des spécialisations est calculée **dynamiquement** à
partir des salles. Pour faire disparaître une spécialisation :

- Retirez-la de toutes les salles qui la portent. Au prochain
  enregistrement, elle disparaît du référentiel automatiquement.
- Pour la **renommer**, créez la nouvelle spécialisation avec le bon
  libellé, remplacez sur les salles concernées ; l'ancienne disparaît
  ensuite seule.

L'interface ne propose donc pas de bouton de modification ou de
suppression directe d'une spécialisation.
Voir [Spécialisation de salle](#page-glossary.classroom-specialization).

#### Filtre EDT par matière : distinction matière simple / avec type

**Q.** Lorsque je filtre les emplois du temps par matière, certains
cours n'apparaissent pas alors qu'ils sont bien visibles lorsque je
filtre par classe. Quelle est la cause ?

**R.** Le couple **(matière, type de cours)** est traité comme une
entrée indépendante de la matière seule. Conséquences :

- « Algèbre » sans type et « Algèbre — TD » correspondent à **deux
  entrées différentes** dans l'EDT.
- Pour filtrer sur les deux à la fois, ne précisez pas de type dans
  le filtre.
- Si vous devez auditer tous les types d'une même matière, utilisez
  les filtres disponibles dans la vue puis contrôlez les résultats
  dans la liste des cours.

#### Affichage du nom de famille en majuscule

**Q.** Est-il possible d'afficher les noms de famille en majuscule ?
Utile notamment lorsque le nom de famille est aussi un prénom courant
(par exemple « Martin Pierre » vs « Martin PIERRE »).

**R.** Oui. Le paramètre de capitalisation des noms se règle dans les
paramètres de l'école. Il peut s'appliquer au prénom, au second prénom
si l'option est active, et/ou au nom de famille selon l'ordre des noms
configuré pour l'établissement.

#### Verrouillage de séance qui n'apparaît pas dans toutes les vues

**Q.** Le verrouillage du positionnement d'une séance ne s'affiche pas
systématiquement lorsqu'on change de vue (post-it ↔ liste).

**R.** Le marqueur de verrouillage dépend de la vue et de la nature de
la séance. Dans les vues de répartition et certaines lignes de cours, le
verrou est affiché par une icône [lock]. Si une vue ne le montre
pas, vérifiez le détail de la séance avant de conclure qu'elle est
modifiable par l'algorithme.

#### Affectation de salle : site favori et spécialisations prioritaires

**Q.** Lors de l'affectation d'une salle, les salles d'un autre
site apparaissent en premier alors que le site favori est coché.
Pourquoi ?

**R.** Le tri prend par défaut le **site rattaché à la classe**, pas
le site favori de l'utilisateur. C'est un comportement délibéré : la
classe pilote le choix de la salle. Si l'ordre proposé n'est pas
celui attendu, vérifiez que la classe est bien rattachée au site
souhaité dans Editer.

Pour les **spécialisations**, contrôlez les salles proposées et leurs
alertes de compatibilité dans le sélecteur. Ne présumez pas d'un tri
prioritaire par meilleure compatibilité.

#### Capacité totale = somme des salles (multi-salles)

**Q.** Lorsque plusieurs salles sont affectées à un même cours,
Omniscol calcule-t-il bien la **capacité totale** comme la somme des
capacités individuelles, et évite-t-il ainsi les fausses alertes de
sur-capacité ?

**R.** Oui. La capacité totale est calculée comme la **somme** des
capacités des salles affectées. Si le groupe rentre dans la somme,
aucune alerte n'est déclenchée. Cette fonctionnalité est disponible
**sur tous les types d'EDT** : hebdomadaire, cyclique, calendrier.

Si la somme reste inférieure au groupe, le conflit est signalé.
L'administrateur peut alors :

- ajouter une salle supplémentaire,
- réduire le groupe,
- accepter le conflit s'il est délibéré (cas typique : on sait que
  tous les inscrits ne viendront pas).

Voir [Multi-salles](#page-glossary.multi-room).

#### Détecter les incohérences de groupes en partition

**Q.** Omniscol signale « nombre différent de cours pour les groupes
en partition » sans préciser dans quelles matières les incohérences
se trouvent. Comment investiguer en détail ?

**R.** Le panneau de **statistiques avancées** de l'écran de
répartition des heures permet l'inspection détaillée, notamment en
isolant les groupes qui interagissent sur les créneaux concernés.

Pour les établissements où les déséquilibres sont nombreux et
intentionnels, une heuristique limite l'affichage des alertes au-delà
d'un seuil afin d'éviter une liste ingérable. Il reste possible
d'exporter les cours et de filtrer dans un tableur pour un
diagnostic exhaustif.

#### Plusieurs commentaires avec restrictions différentes

**Q.** Sur un même cours, est-il possible d'ajouter deux commentaires
avec des restrictions de publication distinctes (l'un pour les
administrateurs seulement, l'autre pour les professeurs) ?

**R.** Oui. Chaque commentaire possède sa propre restriction de
publication : administrateurs, professeurs, ou tous les utilisateurs.
Utilisez le bouton Commentaire pour
ajouter plusieurs commentaires et définir leur visibilité séparément.

#### Affichage vertical d'un EDT (charge hebdomadaire)

**Q.** Pour visualiser la charge d'un groupe ou l'occupation d'un
type de salles sur une semaine complète, l'affichage horizontal
oblige à utiliser le défilement. Un affichage vertical est-il
disponible ?

**R.** Dans le module **EDT**, l'affichage des EDT se
fait à l'horizontale. Une vue verticale équivalente existe dans le
module **Service du personnel** pour des contextes apparentés (grilles de
surveillance). Voir [Vue d'ensemble du Service du personnel](#page-staffing.overview) et [Affichage et UX](#page-faq.display-and-ux).

#### Statistiques : séances positionnées vs cours créés

**Q.** Le compteur de l'écran « répartition des heures » indique
combien de cours sont créés. Où voir combien d'heures sont
effectivement **positionnées** dans l'EDT (vs créées sans
positionnement) ?

**R.** Deux écrans donnent deux mesures complémentaires :

- Le **Tableau de bord** travaille sur l'**EDT opérationnel** (séances
  réellement positionnées, éventuelle fusion de plusieurs EDT
  publiés, prise en compte des absences). Les pourcentages affichés
  sont relatifs (« 93 % des heures de cette classe »), pas un taux
  de positionnement.
- L'écran de **répartition des heures** mesure les cours déclarés et
  les volumes créés. Si vous avez besoin du taux de positionnement,
  contrôlez les cours dans la vue de planning ou exportez la liste
  pour filtrer les séances sans position.

#### Vacataire / intervenant externe visible sur l'EDT

**Q.** L'icône qui distingue les vacataires des permanents apparaît-
elle à côté du nom du professeur dans les vues d'emploi du temps ?

**R.** Selon la vue :

- **Vue grille** — l'espace est restreint et les noms peuvent y être
  abrégés ou tronqués en texte simple ; l'icône n'y apparaît pas
  systématiquement.
- **Listes, infobulles et sélecteurs** — partout où le nom complet
  est rendu, une icône [user-tie] précède le nom des
  intervenants dont la fiche porte le marqueur Professeur externe.

Ce marqueur « externe » est une option **Premium** ; sans lui, aucune
icône ne distingue les vacataires. Voir [Vacataire](#page-glossary.external-teacher).

> _Premium_

#### Évènements ponctuels : précisions fréquemment demandées

Quelques précisions sur l'écran d'évènements
(cf. [Évènements ponctuels](#page-schedules.events)) :

- **Horaires proposés** — la plage horaire d'un évènement suit les
  Horaires d'ouverture du site ; si elle est trop courte
  (évènement en soirée par exemple), élargissez ces horaires dans la
  fiche du site.
- **Modification d'horaire en place** — l'horaire d'un évènement se
  modifie directement, d'un clic sur l'évènement.
- **Participants** — la liste des participants propose les classes et
  les groupes, ainsi que les professeurs et les élèves
  individuellement.

#### Voir aussi

- [Séances hors grille](#page-timetables.off-grid-lessons)
- [Évènements ponctuels](#page-schedules.events)
- [Multi-salles](#page-glossary.multi-room)
- [Spécialisation de salle](#page-glossary.classroom-specialization)
- [Affichage et UX](#page-faq.display-and-ux)
- [Comportement de l'algorithme](#page-faq.solver-behavior)

<a id="page-faq.security-and-hosting"></a>

### 16.8  FAQ — Sécurité et hébergement

*Source: `help/fr/faq/security-and-hosting.md` · id: faq.security-and-hosting · Updated: 2026-05-10*

Cette page synthétise les points les plus fréquents en sécurité et
hébergement. Pour une description exhaustive, Omniscol fournit sur
demande (ou sous NDA selon les cas) les documents officiels :

- `SECURITY_OVERVIEW.md` — vue d'ensemble publique,
- `SECURITY_ONE_PAGER.md` — synthèse pour CISO / RSSI,
- `SECURITY_FULL.md` — documentation complète (gouvernance, infra,
  contrôles, conformité, incident response),
- `ISO27001_MAPPING.md` — mapping aux contrôles ISO 27001,
- `SSI_QUESTIONNAIRE_STANDARD.md` — réponses au questionnaire SSI standard.

Pour toute question sécurité : **[security@omniscol.com](mailto:security@omniscol.com)**.

#### Où sont hébergées mes données ?

Les mentions légales indiquent un hébergement dans l'Union
européenne, sur AWS Paris et Scaleway. Les engagements précis de
redondance, sauvegarde, rétention et disponibilité dépendent du cadre
contractuel applicable à votre compte.

#### Omniscol est-il conforme RGPD ?

Omniscol est conçu pour un usage conforme au RGPD. Conséquences
pratiques :

- Hébergement exclusif en UE (France).
- **Isolation logique** par client : aucun accès croisé possible
  entre comptes.
- Aucun **profilage**, aucune **revente** de données, aucun **usage
  secondaire** des contenus de votre école.
- **Réversibilité** : export complet en JSON depuis
  **Télécharger**.
- Traitement des demandes des personnes concernées selon le cadre
  contractuel et réglementaire applicable.

#### Est-ce qu'Omniscol est certifié ISO 27001 ?

Pas certifié à ce jour, mais **les pratiques sont alignées** sur les
principes du référentiel et suivent une approche basée sur les risques
et continuellement revue. Le détail des contrôles peut être fourni dans le cadre contractuel ou sécurité adapté.

#### Comment sont protégés les mots de passe ?

Omniscol protège les mots de passe de la manière suivante :

- **Pré-hashage côté client** avec **scrypt** — votre mot de passe en
  clair n'arrive jamais sur les serveurs.
- Stockage serveur sous forme de hash salé.
- Aucun mot de passe en clair n'est jamais transmis ni stocké.
- Aucun administrateur Omniscol ne peut lire, retrouver ou récupérer
  un mot de passe utilisateur.

En cas de doute sur la compromission d'un compte, le changement du
mot de passe invalide les accès dérivés qui dépendent de ce secret,
notamment les liens de partage liés au mot de passe du créateur.

#### Les communications sont-elles chiffrées ?

Les accès applicatifs publics passent par HTTPS. La configuration d'exposition réseau dépend du déploiement retenu et
doit être vérifiée dans le cadre sécurité ou contractuel du compte concerné.

#### Comment fonctionne l'authentification ?

Les sessions Omniscol utilisent des jetons signés avec une durée de vie
limitée ; l'accès est renouvelé pendant que l'utilisateur travaille dans
l'interface.

Les liens de partage et les jetons API suivent des règles séparées :

- un lien de partage peut avoir une date d'expiration et dépend aussi du
  compte qui l'a créé ; changer le mot de passe de ce compte ou le
  désactiver invalide les accès concernés ;
- un jeton API dépend d'une clé créée dans l'interface ; supprimer cette
  clé ou atteindre sa date d'expiration invalide les jetons associés.

Voir aussi [Lien de partage](#page-glossary.share-link) et [API Omniscol](#page-integrations.api-tokens).

#### API : clés et jetons

L'accès API se gère depuis l'interface avec deux objets visibles :

1. **Clé** — créée avec un libellé et, si besoin, une date d'expiration.
   Cette expiration peut être modifiée plus tard.
2. **Jeton** — généré depuis une clé, avec une liste de points d'accès
   API autorisés et une expiration propre. Cette expiration ne se modifie
   pas après génération ; il faut créer un nouveau jeton.

Bonne pratique : une clé par intégration, avec un libellé explicite et
une expiration adaptée au besoin. En cas de doute, supprimez la clé et
créez-en une nouvelle.

Voir [API Omniscol](#page-integrations.api-tokens).

#### Mes utilisateurs peuvent-ils utiliser leur compte d'entreprise (SSO) ?

Oui, via [OIDC / SSO](#page-integrations.oauth2), quand la configuration
est activée sur le compte. Omniscol prend en charge Google Workspace,
Microsoft Entra ID et les fournisseurs OIDC génériques.

Chaque utilisateur se connecte alors avec son identité d'entreprise et
conserve les droits configurés dans Omniscol.

#### Quelles protections contre les tentatives de connexion abusives ?

- Les réponses d'authentification échouée sont volontairement ralenties.
- Les écrans d'administration bénéficient de protections renforcées.
- Omniscol n'indique pas si l'identifiant existe ou non : le message
  reste générique.

#### Cycle de vie des comptes utilisateurs

- **Désactivation sans suppression** — un compte désactivé ne peut plus
  se connecter, mais ses données associées sont préservées.
- **Changement obligatoire au premier accès** — quand un mot de passe est
  défini manuellement, l'utilisateur doit le changer à la première
  connexion.
- **Réinitialisation** — un administrateur peut déclencher une remise à
  zéro sans connaître le mot de passe existant.

#### Sécurité réseau et exploitation

Les documents sécurité fournis sur demande détaillent l'hébergement, la
séparation réseau, les règles d'accès aux données et les procédures
opérationnelles applicables au compte concerné.

#### Existe-t-il un journal d'audit ?

Oui lorsque l'option de logs et la rétention correspondante sont
activées pour le compte. Le périmètre visible dépend des opérations
journalisées et de la profondeur configurée par Omniscol. Voir
[Journaux d'activité (logs)](#page-admin.logs).

#### OWASP Top 10

Omniscol applique des contrôles alignés avec les risques OWASP Top 10 :
contrôle d'accès, chiffrement, validation des entrées, configuration
sécurisée, suivi des dépendances, protection des sessions et
journalisation. Le périmètre exact peut être détaillé dans les documents
sécurité fournis sur demande.

#### Tests de sécurité automatisés

Des contrôles automatisés sont intégrés au processus de développement et
de déploiement d'Omniscol. Leur périmètre évolue avec le produit ; les
éléments détaillés peuvent être fournis dans le cadre sécurité adapté.

#### Comment effectuer une sauvegarde manuelle ?

Le bouton **Télécharger** télécharge un
export complet du compte au format JSON. Le fichier doit être
conservé avec soin : il contient les hashs de mots de passe et
l'ensemble des données personnelles.

En cas d'incident majeur, ce fichier peut être renvoyé à l'équipe
Omniscol pour réinjection.

Si l'option **Snapshots** est activée sur le compte, vous pouvez aussi
automatiser la création de points de sauvegarde restaurables. Voir
[Points de sauvegarde](#page-admin.snapshots).

#### Historique des incidents

Au plus récent recensement (février 2026) :

- **0 violation de données client** (historique cumulé).
- **0 incident de sécurité** en 2025.

Ces chiffres sont publiés dans `SECURITY_ONE_PAGER.md`, document
revu trimestriellement.

#### Voir aussi

- [Architecture et rôles](#page-overview.architecture-and-roles)
- [Lien de partage](#page-glossary.share-link)
- [Jeton API](#page-glossary.api-token)
- [API Omniscol](#page-integrations.api-tokens)
- [OIDC / SSO](#page-integrations.oauth2)
- [Sauvegardes et snapshots](#page-admin.snapshots)
- [Journaux d'activité (logs)](#page-admin.logs)

<a id="page-faq.pricing-and-licenses"></a>

### 16.9  FAQ — Tarification et licences

*Source: `help/fr/faq/pricing-and-licenses.md` · id: faq.pricing-and-licenses · Updated: 2026-07-24*

Questions fréquentes sur les plans d'abonnement, les fonctions incluses
et les options à la carte, ainsi que la facturation. Pour le détail des fonctionnalités par
plan / option, voir
[Plans et options Omniscol](#page-overview.plans-and-options).

#### Quels plans d'abonnement existent ?

Trois plans principaux, plus un catalogue d'options à la carte :

| Plan | Public cible |
| --- | --- |
| **Lite** | Très petits établissements, indépendants, formateurs solo, tests — génération d'EDT et impression uniquement (pas de publication ni gestion d'élèves) |
| **Standard** | Établissement classique (école, collège, lycée), équipe planning unique, EDT hebdomadaire |
| **Premium** | Enseignement supérieur, formation continue, gros volumes, multi-sites complexes |

S'y ajoutent **Standard Plus** (Standard complété du module **Service du personnel**) et l'offre autonome **Service du personnel** (gestion de
surveillance sans le reste d'Omniscol).

Voir [Plans et options Omniscol](#page-overview.plans-and-options) pour le
détail des fonctionnalités.

#### Quelles fonctions sont incluses en Premium ?

Par défaut sur un compte Premium :

- Mode calendrier — EDT datés séance par séance ;
- Disponibilités calendrier — disponibilités saisies date par date ;
- Plusieurs EDT actifs — publications simultanées sur les mêmes semaines.

(Les **groupes de groupes** ne sont pas une fonction Premium : ils sont
disponibles sur tous les comptes, quel que soit le plan.)

#### Quelles options peuvent être souscrites à la carte ?

Les options contractuelles restantes sont activables selon le besoin
du compte, en complément du plan choisi :

- Plusieurs EDT actifs sur compte Standard — cas exceptionnel
  d'activation contractuelle, avec cadrage et facturation adaptés
  (la fonction est incluse de base en Premium) ;
- Comptes liés — comptes liés et partage d'occupations de
  ressources, activé sur demande par Omniscol ;
- Rôles personnalisés — rôles personnalisés avec matrice de permissions ;
- Points de sauvegarde — états du compte restaurables ;
- Collaboration — édition collaborative temps réel ;
- **Service du personnel** — module de surveillance / encadrement (aussi disponible en
  offre autonome sans le reste d'Omniscol) ;
- Synchronisation avec des systèmes externes — synchronisation avec un
  ERP / SI externe (Aurion,
  Auriga, ou connecteur ajouté sur projet) ;
- Journaux d'activité — consultation des journaux lorsque la profondeur
  de conservation est configurée sur le compte ;
- Modules complémentaires — modules optionnels supplémentaires,
  selon module et contrat.

#### Existe-t-il une offre « Service du personnel seul » ?

Oui. Pour les établissements qui n'ont besoin que de la gestion de
surveillance / encadrement, le module **Service du personnel** est aussi commercialisé
sans le reste d'Omniscol. Le compte expose alors
seulement le module **Service du personnel** et les écrans utilisateurs minimaux.

#### Où trouver les tarifs ?

Chaque établissement est différent : le tarif dépend de la taille, des
fonctionnalités retenues, de la durée d'engagement et de
l'accompagnement souhaité. Plutôt qu'une grille publique, l'équipe
Omniscol étudie votre situation avec vous et établit un devis adapté.
Écrivez à **[contact@omniscol.com](mailto:contact@omniscol.com)**, ou demandez une démonstration pour
en discuter de vive voix (voir [Questions générales](#page-faq.general)).

#### Comment connaître le plan de mon compte ?

Le plan actif et les options souscrites ne sont pas exposés dans
l'interface d'administration courante (la rubrique correspondante des
**Paramètres** est réservée à Omniscol). Pour connaître
le plan d'un compte, contactez l'équipe Omniscol.

#### Peut-on changer de plan ou ajouter des options en cours d'année ?

Oui. L'ajout d'une option est effectif immédiatement, sans
interruption de service. Le passage du Standard au Premium suit le
même principe. La désactivation d'une option exige que les
fonctionnalités correspondantes ne soient plus utilisées sur le
compte (par exemple aucun partage de ressources entre comptes si l'on
retire les comptes liés, ou plus de publications simultanées si l'on
retire plusieurs EDT actifs sur un compte Standard concerné).

#### Y a-t-il une période d'essai ?

Oui. Une période d'évaluation est généralement proposée pour les
nouveaux comptes, avec accompagnement par l'équipe Omniscol pour la
configuration initiale. Conditions sur demande.

#### Comment fonctionne la facturation ?

La facturation est annuelle par défaut, avec engagement sur la
durée choisie. Les conditions spécifiques (rythme de facturation,
modes de paiement) sont définies dans le contrat.

#### Que se passe-t-il à la fin du contrat ?

Vos données restent accessibles pendant une période de transition
définie contractuellement, durant laquelle l'export JSON complet
reste disponible. La réversibilité est garantie par contrat (RGPD).

#### Voir aussi

- [Plans et options Omniscol](#page-overview.plans-and-options)
- [Qu'est-ce qu'Omniscol ?](#page-overview.what-is-omniscol)
- [Sécurité et hébergement](#page-faq.security-and-hosting)

---

<a id="chapter-glossary"></a>

## Glossaire

**Glossaire** — 52 termes

- [Absence](#page-glossary.absence)
- [Alignement de groupes](#page-glossary.alignment)
- [Année scolaire](#page-glossary.school-year)
- [Campus](#page-glossary.campus)
- [Classe](#page-glossary.class)
- [Co-enseignement](#page-glossary.co-teaching)
- [Conflit](#page-glossary.conflict)
- [Cours](#page-glossary.course)
- [Cours alternés / Semaines A-B](#page-glossary.alternate-lessons)
- [Cours associés (alternance demi-groupes)](#page-glossary.associated-lessons)
- [Cours concaténés](#page-glossary.concatenated-lessons)
- [Cours transverse](#page-glossary.transverse-course)
- [Diagnostic](#page-glossary.diagnostic)
- [Disponibilités des professeurs (vœux)](#page-glossary.wishes)
- [Domaine de planification](#page-glossary.planning-domain)
- [EDT cyclique](#page-glossary.cyclic-timetable)
- [EDT hebdomadaire](#page-glossary.weekly-timetable)
- [Élève / Étudiant / Apprenant](#page-glossary.student)
- [Emploi du temps (EDT)](#page-glossary.timetable)
- [Fenêtre de dates](#page-glossary.date-windows)
- [Grande salle (plusieurs séances simultanées)](#page-glossary.large-room)
- [Groupe](#page-glossary.group)
- [Groupe de groupes](#page-glossary.groups-of-groups)
- [Groupe libre](#page-glossary.free-group)
- [iCal (export agenda)](#page-glossary.ical)
- [Incompatibilité (entre matières)](#page-glossary.incompatibility)
- [Jeton API](#page-glossary.api-token)
- [Lien de partage](#page-glossary.share-link)
- [Ligne de temps](#page-glossary.timeline)
- [Matière](#page-glossary.subject)
- [Modalité d'une séance](#page-glossary.lesson-modality)
- [Mode calendrier](#page-glossary.calendar-mode)
- [Mode d'affichage de l'EDT](#page-glossary.schedule-view-mode)
- [Multi-salles (une séance dans plusieurs salles)](#page-glossary.multi-room)
- [Niveau](#page-glossary.level)
- [Panneau d'affichage](#page-glossary.panel)
- [Partition de classe](#page-glossary.class-division)
- [Professeur / Intervenant](#page-glossary.teacher)
- [Publication / Activation d'un EDT](#page-glossary.publication)
- [Remplacement / Suppléance](#page-glossary.substitution)
- [Ressource](#page-glossary.resource)
- [Salle](#page-glossary.classroom)
- [Séance / Leçon](#page-glossary.lesson)
- [Service du personnel](#page-glossary.staffing)
- [Site](#page-glossary.site)
- [Solveur / Algorithme de génération automatique](#page-glossary.solver)
- [Spécialisation de salle](#page-glossary.classroom-specialization)
- [Statut d'une séance](#page-glossary.lesson-status)
- [Tableau de bord](#page-glossary.dashboard)
- [Type de cours](#page-glossary.lesson-type)
- [Vacances](#page-glossary.holidays)
- [Vacataire / Intervenant externe](#page-glossary.external-teacher)

<a id="page-glossary.absence"></a>

### Absence

*Source: `help/fr/glossary/absence.md` · id: glossary.absence · Updated: 2026-05-14*

*Aussi appelé : indisponibilité · congé · arrêt · absence ponctuelle*

Une **absence** dans Omniscol est la déclaration qu'une entité ne sera
pas présente sur une période donnée. Les entités gérées sont les
professeurs, les classes, les élèves et, si le Service du personnel est
actif, les membres du personnel.

Une absence acceptée peut modifier l'affichage des séances de cours :

- **professeur absent non remplacé** : séance marquée comme impactée, avec
  le professeur barré ;
- **professeur absent avec [remplaçant](#page-glossary.substitution)** :
  remplaçant affiché à côté du titulaire barré ;
- **classe absente** : séance de la classe retirés de l'affichage sur la
  période ;
- **élève absent** : suivi attaché à l'élève, sans modifier les
  cours de sa classe.

#### Statuts d'une absence

- **accepté** : l'absence est validée et prise en compte.
- **en attente** : demande déclarée par l'utilisateur concerné, à
  valider par un administrateur.
- **refusé** : demande rejetée.
- **abandonné** : demande annulée par son déclarant.

Seules les absences au statut **accepté** impactent l'affichage
des emplois du temps.

#### Champs d'une absence

- **Entité** : professeur, classe, élève ou personnel si le Service du personnel est
  actif.
- **Plage de dates** : début et fin. Une absence réellement ouverte doit
  être suivie explicitement ; la fin de l'année scolaire peut servir de
  borne technique si aucune fin n'est fournie.
- **Plage horaire** : journée entière ou créneaux précis.
- **Filtres** : classes, matières ou affectations selon le type
  d'entité.
- **Motif** : choisi dans la liste proposée ; un administrateur peut
  saisir un motif personnalisé.
- **Commentaire** : texte libre court.
- **Statut** : accepté, en attente, refusé ou abandonné.

#### Voir aussi

- [Remplacement / suppléance](#page-glossary.substitution)
- [Module Absences — vue d'ensemble](#page-absences.overview)
- [Déclarer une absence](#page-absences.declaring)

<a id="page-glossary.alignment"></a>

### Alignement de groupes

*Source: `help/fr/glossary/alignment.md` · id: glossary.alignment · Updated: 2026-06-26*

*Aussi appelé : regroupement transversal*

Un **alignement** regroupe plusieurs [groupes](#page-glossary.group)
issus de **classes différentes** qui
doivent partager **le même créneau horaire, le même professeur et la même
salle**.

L'exemple classique : les latinistes de 8A, 8B et 8C suivent ensemble un
unique cours de latin. Au lieu de créer trois cours en parallèle (qui se
disputeraient professeur et salle), vous créez un **groupe « Latinistes »** dans
chacune des trois classes, puis vous les **alignez**. Le solveur place alors
un seul cours, lié aux trois groupes simultanément.

Cas typiques :

- LV1 / LV2 inter-classes (groupes Anglais réunis depuis plusieurs classes),
- options inter-classes (Latin, Grec, Sciences PO),
- enseignements de spécialité au lycée français (depuis la réforme),
- co-modules dans le supérieur (un même cours de tronc commun pour plusieurs
  parcours).

#### Pouvoir et restrictions

L'alignement est extrêmement puissant — il évite la duplication, garantit la
cohérence des changements (une séance déplacée est déplacée partout), et simplifie
la consultation. **Mais il est aussi très restrictif** :

- Une fois aligné, un groupe ne peut plus avoir de séance indépendante à ce
  créneau précis : si une classe parmi les trois a une séance en dérogation,
  il faut **dupliquer** son groupe et désaligner le clone.
- Tous les groupes alignés doivent avoir, dans leurs classes respectives,
  exactement le même volume horaire et la même configuration. Un déséquilibre
  produit une alerte de cohérence (cf. l'onglet Génération).
- Les changements (rajouter une séance, changer la salle) doivent être faits
  une seule fois, sur l'alignement — Omniscol propage. Mais éditer la séance
  via une seule des classes peut produire des effets de bord.

#### Différences importantes

| Concept | Périmètre | Contrainte |
| --- | --- | --- |
| [Partition](#page-glossary.class-division) | Groupes d'**une** classe | Même créneau, **différents** professeur/salle |
| **Alignement** | Groupes de **plusieurs** classes | Même créneau, **même** professeur, **même** salle |
| [Groupe de groupes](#page-glossary.groups-of-groups) | Mêmes que l’alignement | Même créneau, professeur/salle uniques, **édition flexible a posteriori** |

#### En mode calendrier

Dans un emploi du temps en mode [calendrier](#page-glossary.calendar-mode), on
préfère le [groupe de groupes](#page-glossary.groups-of-groups) à l'alignement :
plus facile à éditer, on peut ajouter ou retirer un groupe au fur et à mesure
sans devoir recréer la structure.

#### Voir aussi

- [Groupe](#page-glossary.group)
- [Partition](#page-glossary.class-division)
- [Groupes de groupes](#page-glossary.groups-of-groups)
- [Cours transverse](#page-glossary.transverse-course)
- [Alignements de groupes](#page-core-concepts.alignments)

<a id="page-glossary.school-year"></a>

### Année scolaire

*Source: `help/fr/glossary/school-year.md` · id: glossary.school-year · Updated: 2026-05-10*

*Aussi appelé : année universitaire · année académique · exercice*

Une **année scolaire** dans Omniscol est la période de référence sur
laquelle des emplois du temps sont publiés. C'est un objet déclaré au
niveau de l'école dans Années scolaires.

#### Pourquoi c'est obligatoire

Vous devez avoir au moins **une** année scolaire déclarée pour pouvoir
publier un EDT. L'année scolaire matérialise la **ligne de temps**
sur laquelle vous activerez ensuite les EDT pour des plages
spécifiques.

#### Conventions de nommage

Pour un affichage propre, nommez vos années par leurs dates : « 2025-2026 »
plutôt que « Année en cours ». Vous pouvez ainsi conserver l'historique
des années passées et préparer la suivante en parallèle.

#### Vacances

Vous pouvez renseigner les vacances de l'année scolaire :

- **par copier-coller** d'un tableau (depuis Excel, Numbers, etc.),
- **par import automatique** des dates pré-renseignées pour votre pays
  (proposé à la création de l'année si la base de données les connaît),
- **en saisissant manuellement** les périodes.

Les vacances sont retirées de la ligne de temps — les EDT publiés ne
s'appliquent pas dessus.

#### Décalages d'alternance

Si votre école utilise des [semaines alternées](#page-glossary.alternate-lessons)
(A/B), les vacances peuvent perturber l'alternance. Vous pouvez créer
un **décalage virtuel** pour gérer ces cas (cliquez sur les semaines
concernées dans la ligne de temps).

#### Plusieurs années en parallèle

À tout moment, vous pouvez avoir plusieurs années scolaires définies :
l'année en cours, l'année précédente (historique), et la prochaine en
préparation. Le bouton Année scolaire suivante (▶︎)
sur la ligne de temps bascule entre années.

L'**année courante** est définie dans
Année scolaire courante. C'est elle qui
détermine ce que voient par défaut les utilisateurs.

#### Voir aussi

- [Cours alternés / semaines A/B](#page-glossary.alternate-lessons)
- [Gérer une année scolaire](#page-admin.school-year)
- [Préparer la rentrée suivante](#page-timetables.next-school-year)

<a id="page-glossary.campus"></a>

### Campus

*Source: `help/fr/glossary/campus.md` · id: glossary.campus · Plan: premium · Updated: 2026-06-13*

> **Premium**

*Aussi appelé : implantation · faculté · pôle*

> _Premium_

Un **campus** permet de distinguer plusieurs implantations, facultés
ou pôles au sein d'un même compte Omniscol.

La notion de campus est **réservée aux comptes Premium** et reste
optionnelle : n'en créez que si elle vous aide réellement à refléter
votre organisation.

La notion est **organisationnelle**. Elle ne remplace pas le
[site](#page-glossary.site), qui décrit plutôt une réalité géographique
ou physique : lieu, grille horaire, salles, temps de trajet.

Le campus devient particulièrement utile quand la notion de site ne
recoupe pas votre organisation logique. Exemples :

- plusieurs facultés partagent les mêmes bâtiments ;
- plusieurs écoles d'un même groupe partagent plusieurs sites, de
  manière croisée ;
- un même site physique accueille plusieurs pôles ou programmes.

Même quand campus et site se recoupent largement, la notion peut rester
intéressante pour faciliter les filtres et les regroupements.

#### À quoi sert un campus

Un campus sert principalement à :

- regrouper des classes selon une même organisation ;
- faciliter certains filtres et regroupements, notamment dans le
  diagnostic des conflits.

Le campus ne définit pas à lui seul une grille horaire, un temps de
trajet ou une contrainte de placement stricte. Ces comportements restent
portés par les sites, les salles, les ressources et les contraintes de
l'EDT.

#### Où le configurer

Les campus se créent dans les
[paramètres généraux](#page-admin.parameters), sous les niveaux de classe.
Chaque classe peut ensuite être rattachée à un campus, ce qui alimente
les filtres et regroupements correspondants.

#### Voir aussi

- [Site](#page-glossary.site)
- [Salle](#page-glossary.classroom)
- [Classe](#page-glossary.class)
- [Niveau](#page-glossary.level)
- [Détecter et résoudre les conflits](#page-timetables.conflicts)

<a id="page-glossary.class"></a>

### Classe

*Source: `help/fr/glossary/class.md` · id: glossary.class · Updated: 2026-07-05*

*Aussi appelé : promotion · session · cohorte*

Dans Omniscol, une **classe** est l'entité principale qui rassemble des élèves
suivant un même cursus dans une même école, sur une période donnée. C'est le
sujet des cours : un cours s'adresse à une classe (en totalité, ou via un
[groupe](#page-glossary.group) qui en est une subdivision), pas l'inverse.

Une classe porte :

- un **nom** (par exemple « 6A », « FISE2-S3 », « Master 1 Marketing »),
- un **niveau** (les niveaux sont définis dans Créer —
  par exemple 6e/5e/4e/3e en collège, L1/L2/L3 en licence),
- éventuellement un **campus** (option Premium ; implantation, faculté,
  pôle ou autre regroupement organisationnel),
- un **site** par défaut (lieu physique et salles utilisées par défaut),
- éventuellement une **salle dédiée** dans laquelle les cours auront lieu par défaut,
- un **effectif théorique** (nombre d'étudiants attendu ; optionnel mais utile au dimensionnement
  des salles).

#### Vocabulaire selon le contexte

Le mot « classe » prend des nuances très différentes selon le type d'établissement.
Tous se ramènent à la même entité Omniscol :

- **Primaire / secondaire** — « classe » au sens scolaire classique (CM2, 6A, Terminale ES).
- **Enseignement supérieur** — souvent « promo », « promotion », « session », « cohorte »,
  parfois « parcours » ou « spécialisation ». Une promotion de 200 étudiants est une classe ;
  les sous-groupes de TD/TP sont des [groupes](#page-glossary.group), pas des classes.
- **Formation continue** — « session », « cohorte », « groupe d'apprenants ».

> _Premium_

Dans le supérieur, « classe » désigne ici un groupe stable d'étudiants ou d'élèves partageant le même emploi du temps ou le même parcours global.
Cela correspond souvent à une cohorte, à un groupe de formation ou parfois à un parcours.
À ne pas confondre avec une UE (unité d'enseignement), un module ou un cours.

Quand vous lisez « classe » dans Omniscol, lisez « la cohorte qui suit ce parcours
sur cette période », pas « le local physique » (lequel est une [salle](#page-glossary.classroom)).

#### Distinction classe vs groupe

Un piège classique : confondre une classe et un groupe. Les groupes sont **toujours**
des subdivisions d'une classe. Si vous avez besoin de mélanger des étudiants venus
de plusieurs classes (par exemple les latinistes de 8A, 8B et 8C qui suivent un même
cours de latin), vous ne créez pas une nouvelle classe : vous utilisez un
[alignement de groupes](#page-glossary.alignment) ou un [groupe de groupes](#page-glossary.groups-of-groups).

#### Voir aussi

- [Groupe](#page-glossary.group)
- [Niveau](#page-glossary.level)
- [Partition de classe](#page-glossary.class-division)
- [Alignement de groupes](#page-glossary.alignment)
- [Campus](#page-glossary.campus)
- [Site](#page-glossary.site)
- [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups)

<a id="page-glossary.co-teaching"></a>

### Co-enseignement

*Source: `help/fr/glossary/co-teaching.md` · id: glossary.co-teaching · Updated: 2026-05-10*

*Aussi appelé : binôme · double intervenant · intervenant principal et secondaire*

Le **co-enseignement** désigne une séance assurée simultanément par
**deux ou plusieurs professeurs**, dans la même salle, avec le même
public d'étudiants.

Omniscol modélise simplement ce cas : un cours peut avoir **plusieurs
intervenants**. Chacun est crédité de la séance dans ses statistiques
et son service horaire.

#### Cas typiques

- **Encadrement renforcé** — un professeur titulaire + un AED, deux professeurs
  pour un effectif important.
- **Visiting professor ponctuel** — un cours dont la session du jour
  est co-animée par un intervenant externe (cf.
  [vacataire / intervenant externe](#page-glossary.external-teacher)).
- **Co-titulaires** — module enseigné en binôme tout au long du
  semestre.
- **Double expertise** — un module pluridisciplinaire (par exemple
  « informatique pour la santé » avec un médecin et un informaticien).

#### Différence avec l'alternance

Le co-enseignement, c'est **deux professeurs en même temps sur la même
séance**. L'**alternance** ([cours alternés](#page-glossary.alternate-lessons)),
c'est **deux professeurs sur le même créneau, mais à des semaines différentes**.

Si vos deux professeurs alternent toutes les semaines mais ne sont jamais
ensemble, ce sont des cours alternés, pas du co-enseignement.

Si l'un d'eux n'intervient que pour quelques séances ponctuelles, le
plus simple est de créer un cours séparé pour ces dates précises avec
le visiting professeur, en plus du cours principal — surtout en mode
[calendrier](#page-glossary.calendar-mode).

#### Voir aussi

- [Séance / Leçon](#page-glossary.lesson)
- [Vacataire](#page-glossary.external-teacher)
- [Co-enseignement dans le supérieur](#page-higher-ed.co-teaching)

<a id="page-glossary.conflict"></a>

### Conflit

*Source: `help/fr/glossary/conflict.md` · id: glossary.conflict · Updated: 2026-06-25*

*Aussi appelé : alerte · incompatibilité détectée · chevauchement · collision*

Un **conflit** dans Omniscol est une situation où deux contraintes ne
peuvent pas être satisfaites simultanément. Exemples :

- un professeur affecté à deux séances au même créneau,
- une salle réservée par deux séances en même temps,
- un groupe d'élèves devant être à deux endroits à la fois,
- une séance qui ne respecte pas la spécialisation requise pour sa matière,
- une séance dont la capacité totale (somme des salles affectées) est
  inférieure à l'effectif du groupe,
- un alignement où les groupes alignés ont des volumes horaires différents.

#### Détection en temps réel

Omniscol détecte les conflits **au fil de la saisie**, pas seulement
au moment de la génération :

- bandeau rouge en haut de l'écran de répartition des heures,
- icône [triangle-exclamation] sur les séances et les classes concernées,
- liste des conflits cliquable (la « loupe » mène au détail).

#### Conflits volontaires

Tous les conflits ne doivent pas être résolus. Certains sont volontaires :

- même groupe sur un examen + une salle de tiers-temps (la même cohorte
  d'élèves est attendue dans deux salles selon des conditions),
- effectif > capacité de la salle quand vous savez que tous les inscrits
  ne viendront pas.

Vous pouvez **laisser le conflit** ; l'alerte reste affichée mais ne bloque
pas le fonctionnement.

#### Conflits bloquants

Certaines incohérences empêchent la **génération automatique** de réussir :

- pas de salle compatible avec une matière + un volume horaire,
- disponibilités d'un professeur totalement incompatibles avec ses cours,
- alignement structurellement impossible.

Ces conflits sont marqués comme **critiques** ; tant qu'ils existent, le
bouton Générer EDT reste indisponible.

#### Voir aussi

- [Diagnostic](#page-glossary.diagnostic)
- [Solveur](#page-glossary.solver)
- [Détecter et résoudre les conflits](#page-timetables.conflicts)

<a id="page-glossary.course"></a>

### Cours

*Source: `help/fr/glossary/course.md` · id: glossary.course · Updated: 2026-06-26*

*Aussi appelé : matière de classe · cours d'une classe · ligne de cours*

Un **cours** est l'enseignement d'une [matière](#page-glossary.subject) à une
[classe](#page-glossary.class) (ou à un de ses [groupes](#page-glossary.group)),
sur une période donnée. C'est l'unité de base de votre **offre
pédagogique** : ce qui doit être enseigné, à qui et en quel volume —
indépendamment du moment où cela tombera dans l'emploi du temps.

Un cours porte :

- une **matière** (la discipline enseignée),
- éventuellement un **[type de cours](#page-glossary.lesson-type)** (CM, TD,
  TP, examen…) — le couple `(matière, type)` forme un cours distinct,
- un **volume horaire** visé (heures par semaine, ou nombre de séances),
- un ou plusieurs **professeurs** affectés,
- éventuellement des **contraintes** : poids pédagogique, salle
  spécialisée requise, incompatibilités, préférences de placement.

#### Cours, matière, séance : ne pas confondre

- La [matière](#page-glossary.subject) est la discipline pure (les
  mathématiques), au catalogue de l'école.
- Le **cours** est cette matière *rapportée à une classe*, avec un volume
  et des attributs : « les mathématiques en 3e A, 4 h par semaine, en TD ».
- Les [séances](#page-glossary.lesson) sont les **occurrences** concrètes qui
  implémentent le cours dans la grille (les quatre créneaux hebdomadaires
  réellement posés).

Un cours donne donc lieu à une ou plusieurs séances ; supprimer une
séance ne supprime pas le cours.

#### Un concept implicite dans l'interface

L'interface ne dit pas « cours » à cet endroit : vous le construisez en
**affectant une matière à une classe** (onglet Cours d'une classe),
puis en renseignant volume, type et professeurs. La notion reste utile
pour raisonner — particulièrement dans l'enseignement supérieur, où l'on
distingue nettement le cours (la définition) de ses séances (les
occurrences).

#### L'ensemble des cours : le programme

L'ensemble des cours d'une classe — ou d'une formation — constitue son
**programme**. Selon le niveau et le vocabulaire de l'établissement, on
parle aussi de **maquette pédagogique**, **plaquette**, **cursus** ou
**syllabus**. Omniscol n'impose pas ce vocabulaire : il manipule des
cours (des matières de classe, typées) ; leur somme *est* la maquette.

#### Voir aussi

- [Matière](#page-glossary.subject)
- [Séance / Leçon](#page-glossary.lesson)
- [Type de cours](#page-glossary.lesson-type)
- [Cours, séances, types de cours](#page-core-concepts.lessons-and-types)
- [Organisation des données : matières, classes, EDT](#page-core-concepts.data-model)
- [Configurer les matières par classe](#page-timetables.creating-classes)

<a id="page-glossary.alternate-lessons"></a>

### Cours alternés / Semaines A-B

*Source: `help/fr/glossary/alternate-lessons.md` · id: glossary.alternate-lessons · Updated: 2026-05-10*

*Aussi appelé : semaines alternées · semaines A/B · semaine paire impaire · alternance hebdomadaire*

Les **cours alternés** sont des cours qui ne reviennent pas chaque
semaine, mais alternent avec d'autres cours sur le même créneau. Le cas
classique : un cours en semaine A, un autre en semaine B, sur le même
jour à la même heure.

#### Configuration de la cadence

L'alternance se configure dans Enregistrer.
Trois options :

- **Désactivée** — pas d'alternance.
- **Lettres** — semaine A, B (et C, D… si vous en mettez plus).
- **Chiffres** — semaine 1, 2 (et 3, 4… si vous étendez).

Omniscol n'impose pas un cycle de 2 — vous pouvez alterner sur 3, 4 ou
plus de semaines.

#### Création d'un cours alterné

Au moment de configurer la répartition des heures :

1. Positionnez la souris sur la séance à alterner. Une icône
   [plus] apparaît en haut à droite, cliquez.
2. Une nouvelle plage libre est ajoutée pour la semaine alternée.
3. Créez la séance correspondant à cette nouvelle plage.
4. Positionnez-la avec son bouton punaise [thumbtack], puis cliquez le
   créneau jour/heure voulu parmi les pastilles colorées.

Vous pouvez répéter pour ajouter d'autres semaines alternées au même
cours.

#### Combinaison avec d'autres complexités

Un cours alterné peut être :

- **simple** — alternance pure entre deux cours,
- **[concaténé](#page-glossary.concatenated-lessons)** — un cours qui
  alterne et qui est aussi un double-créneau,
- **[associé](#page-glossary.associated-lessons)** — cumulé avec des cours
  associés (permutation de groupes : A en bio puis physique, B en
  physique puis bio). La permutation de groupes est une complexité
  **distincte** de l'alternance A/B, mais peut s'y combiner.

#### Décalage par les vacances

Si vous étiez en semaine A juste avant les vacances et voulez reprendre
en semaine B après, créez un **décalage virtuel** sur la ligne de temps des
semaines de l'année (cf. [année scolaire](#page-glossary.school-year)).
Sans décalage, l'alternance reprend simplement dans son cycle normal.

#### Voir aussi

- [Séance / Leçon](#page-glossary.lesson)
- [Cours complexes](#page-core-concepts.complex-lessons)
- [Année scolaire et vacances](#page-glossary.school-year)

<a id="page-glossary.associated-lessons"></a>

### Cours associés (alternance demi-groupes)

*Source: `help/fr/glossary/associated-lessons.md` · id: glossary.associated-lessons · Updated: 2026-05-10*

*Aussi appelé : alternance groupe a/b · swap*

Les **cours associés** sont deux cours simultanés en demi-groupes qui
**alternent consécutivement**. Le cas typique :

```
Créneau 1 : groupe A en bio,    groupe B en physique
Créneau 2 : groupe A en physique, groupe B en bio
```

Les deux groupes ont vu les deux matières au bout des deux créneaux,
mais dans un ordre différent. Cette structure est très répandue en
sciences expérimentales (TP de bio + TP de physique avec deux professeurs
spécialistes qui « tournent »), en arts (un demi-groupe en pratique,
l'autre en théorie, puis permutation), etc.

#### Création

1. Créez d'abord deux cours [concaténés](#page-glossary.concatenated-lessons)
   (un sous l'autre).
2. Survolez la frontière entre les deux : un bouton « association »
   apparaît.
3. Cliquez et désignez les **deux groupes** qui doivent alterner —
   idéalement déclarés en [partition](#page-glossary.class-division).

#### Cohérence avec les groupes

Les groupes utilisés dans une association doivent être déclarés en
**partition** dans la classe — sinon le solveur émet une alerte de
cohérence (un groupe ne peut être à deux endroits en même temps).

#### Voir aussi

- [Cours concaténés](#page-glossary.concatenated-lessons)
- [Partition de classe](#page-glossary.class-division)
- [Cours complexes](#page-core-concepts.complex-lessons)

<a id="page-glossary.concatenated-lessons"></a>

### Cours concaténés

*Source: `help/fr/glossary/concatenated-lessons.md` · id: glossary.concatenated-lessons · Updated: 2026-05-10*

*Aussi appelé : séances accolées · cours consécutifs · cours doubles · doublons consécutifs*

Des **cours concaténés** sont deux séances qui doivent être positionnées
**consécutivement** dans la journée. Le solveur garantit qu'ils
s'enchaînent sans intercalation.

Cas typiques :

- **TP de 2h** à partir de deux blocs de 1h,
- **CM + TD** à la suite (CM d'introduction puis TD d'application),
- **double séance d'examen** de 2h sur un créneau d'1h × 2.

#### Création

Glissez-déposez une séance sous une autre dans la vue de répartition.
Les deux séances apparaissent alors **collées** l'une sous l'autre,
formant un bloc unique.

#### Détacher

Le bouton « ciseaux » qui apparaît au survol entre deux séances
concaténées permet de **séparer** la concaténation. Les deux séances
redeviennent alors indépendantes.

#### Pourquoi pas créer un seul cours plus long ?

Bonne question. Deux raisons principales de concaténer plutôt que
d'allonger :

1. Les cours peuvent avoir des **types différents** (CM concaténé avec
   TD), ou des **professeurs différents**, ou des **salles différentes**.
2. Vous voulez compter dans les statistiques deux séances distinctes
   (deux entrées de cahier de texte) plutôt qu'une.

Si tous les attributs sont identiques, allonger un cours unique est
plus simple. Concaténer apporte de la souplesse là où il en faut.

#### Voir aussi

- [Cours associés](#page-glossary.associated-lessons)
- [Cours complexes](#page-core-concepts.complex-lessons)

<a id="page-glossary.transverse-course"></a>

### Cours transverse

*Source: `help/fr/glossary/transverse-course.md` · id: glossary.transverse-course · Updated: 2026-06-21*

*Aussi appelé : cours transverses · cours mutualisé · cours commun · UE transversale · enseignement transversal · regroupement transversal*

Un **cours transverse** réunit des étudiants de **plusieurs classes,
parcours ou promotions** autour d'un même cours — tronc commun, mineures,
options inter-parcours, conférences inter-promos.

Dans Omniscol, on le modélise le plus souvent avec un **[groupe de
groupes](#page-glossary.groups-of-groups)** (d'autres logiciels parlent de
« regroupement ») : vous agrégez les groupes concernés en une entité unique,
sur laquelle vous posez le cours. Il apparaît alors dans toutes les classes
parentes et reste **modifiable a posteriori** — on ajoute ou retire un
groupe sans toucher à la structure. C'est l'option à privilégier, en
particulier dans le supérieur et en mode calendrier.

Pour un besoin **ponctuel**, sans créer d'entité nommée, vous pouvez aussi
**affecter plusieurs groupes directement à la séance** depuis son sélecteur
de groupe. Plus rapide, mais moins lisible et moins réutilisable.

Quand les classes sont **parallèles et de structure identique** (mêmes
volumes horaires), surtout en emploi du temps hebdomadaire ou cyclique,
l'**[alignement](#page-glossary.alignment)** reste pertinent : un seul cours
partagé entre les groupes, même créneau, même professeur, même salle — au
prix d'une composition figée.

#### Voir aussi

- [Groupe de groupes](#page-glossary.groups-of-groups)
- [Alignement de groupes](#page-glossary.alignment)
- [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)

<a id="page-glossary.diagnostic"></a>

### Diagnostic

*Source: `help/fr/glossary/diagnostic.md` · id: glossary.diagnostic · Updated: 2026-06-26*

*Aussi appelé : vérification · contrôle · alerte de configuration · alerte de cohérence*

Un **diagnostic** dans Omniscol est une vérification de cohérence
exécutée en continu par le système, qui pointe les problèmes de
configuration de l'EDT avant qu'ils ne fassent échouer la génération
ou ne produisent un résultat incorrect.

#### Niveaux de gravité

- **Critique** (rouge, bloquant) — empêche la génération de réussir :
  alignement structurellement impossible, capacité totale insuffisante,
  professeur sans aucun créneau libre…
- **Avertissement** (orange) — peut être laissé en l'état mais signale
  un risque ou une incohérence à valider : déséquilibre dans les volumes
  alignés, salle légèrement sous-dimensionnée, disponibilité très contraignante.
- **Information** (bleu) — note non bloquante : « certaines salles ne
  sont jamais utilisées », « un professeur a un service très inférieur à ses
  pairs ».

#### Où voir les diagnostics

- En **bandeau supérieur** sur l'écran de répartition des heures et la
  visualisation d'EDT.
- À côté du **nom de la classe** ou du professeur concerné dans les listes.
- Détaillés dans l'onglet Génération
  (ou vérification selon le mode de l'EDT)
  avec une explication contextuelle pour chaque diagnostic.

#### Diagnostics fréquents

| Diagnostic | Cause typique | Comment résoudre |
| --- | --- | --- |
| Pas de salle compatible | Spécialisation requise sans salle correspondante | Créer la salle ou lever la spécialisation |
| Volume horaire incohérent dans un alignement | Une classe a 2h, l'autre 3h sur le même groupe aligné | Aligner les volumes, ou désaligner |
| Capacité insuffisante | Effectif > capacité de la salle | Affecter une salle plus grande, ou plusieurs salles ([multi-salles](#page-glossary.multi-room)) |
| Disponibilité sans créneau possible | Tous les créneaux sont marqués impossibles pour ce professeur | Assouplir les disponibilités ou redistribuer les séances |
| Séance hors-période d'absence | Séance positionnée dans une plage où le professeur est absent | Déplacer la séance ou retirer l'absence |

#### Voir aussi

- [Conflit](#page-glossary.conflict)
- [Solveur](#page-glossary.solver)
- [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation)

<a id="page-glossary.wishes"></a>

### Disponibilités des professeurs (vœux)

*Source: `help/fr/glossary/wishes.md` · id: glossary.wishes · Updated: 2026-06-21*

*Aussi appelé : indisponibilités · préférences · voeux*

Les **disponibilités** d'un professeur indiquent au logiciel les créneaux qui
sont **impossibles** (noir, contraintes dures), **indésirables** (rouge,
contraintes molles) ou **préférés** (vert). On parle aussi de **vœux** dans
l'éducation secondaire — c'est le même concept, lorsque le professeur renseigne
ses disponibilités théoriques hebdomadaires et que l'établissement en dispose pour
la génération de l'emploi du temps (possiblement en les ayant modifiées ou pondérées).

Le solveur respecte **strictement** les impossibilités et tente au mieux
de respecter les indésirables / préférés en fonction des autres
contraintes.

#### Deux modes selon le type d'EDT

- **EDT hebdomadaire** — disponibilités saisies sur la semaine type, validées
  par l'administration avant la génération. Une modification ultérieure est
  signalée mais n'interfère pas.
- **EDT calendrier** (sur les comptes Premium) — disponibilités
  saisies date par date, consolidées en temps réel. Les conflits sont
  détectés au fur et à mesure.

#### Saisie par le professeur lui-même

Les professeurs peuvent saisir leurs propres disponibilités depuis leur compte
([portail professeur](#page-portal.teacher-portal)) — gain de temps majeur
pour l'administration. Ils peuvent aussi recevoir un **lien de partage
direct vers l'écran des disponibilités** (sans devoir se connecter), généré
depuis Télécharger avec une date d'expiration.

#### Voir aussi

- [Professeur](#page-glossary.teacher)
- [Solveur](#page-glossary.solver)
- [Disponibilités et contraintes horaires des professeurs](#page-core-concepts.wishes-and-availability)
- [Disponibilités en mode calendrier](#page-timetables.calendar-wishes)

<a id="page-glossary.planning-domain"></a>

### Domaine de planification

*Source: `help/fr/glossary/planning-domain.md` · id: glossary.planning-domain · Plan: premium · Options: customroles · Updated: 2026-08-07*

> **Premium · Option: Rôles personnalisés**

*Aussi appelé : périmètre de planification*

Un **domaine de planification** attribue à un administrateur un
**périmètre** — les données qu'il gère — et des **droits** — les actions
qu'il peut y mener. Sur un compte qui réunit plusieurs
[campus](#page-glossary.campus), filières ou établissements dans un même
[emploi du temps](#page-glossary.timetable), chaque planificateur travaille
ainsi sur sa part.

Tant qu'un administrateur n'a aucun domaine, il garde l'accès complet au
compte.

#### Le périmètre

Le périmètre se décrit par dimensions, de la plus large à la plus fine :
les campus et les [matières](#page-glossary.subject) d'un côté, puis
l'emploi du temps, ses [sites](#page-glossary.site) et leurs
[salles](#page-glossary.classroom), ses [classes](#page-glossary.class) et leurs
[groupes](#page-glossary.group). Chaque dimension se contraint par un critère
— valeur exacte, préfixe, valeur contenue, seuil numérique — et une
[séance](#page-glossary.lesson) entre dans le périmètre quand elle satisfait
toutes les dimensions contraintes.

#### Les droits

Les droits disent ce que le planificateur fait de son périmètre : créer,
modifier ou supprimer les entités et les séances, et en modification fine
la position sur la grille, le professeur, la salle, la modalité, le lien
de visioconférence, le statut, la durée, le commentaire et la génération.
Le principe est soustractif : tout est accordé, on décoche ce que le
domaine interdit.

La lecture reste toujours ouverte : un domaine cadre ce que l'on écrit,
jamais ce que l'on voit.

#### Domaine ou rôle personnalisé

Un [rôle personnalisé](#page-admin.customroles) décide **quelles opérations**
un administrateur mène — quels modules, en consultation, modification ou
suppression. Un domaine décide **sur quelles données** il agit. Les deux
se donnent à la même personne et se complètent.

#### Plusieurs domaines

Un administrateur peut recevoir plusieurs domaines, chacun avec son propre
périmètre et ses propres droits. Ils s'additionnent sans se fondre : une
action est autorisée dès qu'un domaine la couvre.

#### Voir aussi

- [Domaines](#page-admin.planning-domains)
- [Rôles personnalisés](#page-admin.customroles)
- [Campus](#page-glossary.campus)
- [Site](#page-glossary.site)

<a id="page-glossary.cyclic-timetable"></a>

### EDT cyclique

*Source: `help/fr/glossary/cyclic-timetable.md` · id: glossary.cyclic-timetable · Updated: 2026-05-10*

*Aussi appelé : emploi du temps cyclique · cycle · jours numérotés*

Un **EDT cyclique** définit des cours récurrents sur un nombre arbitraire
de jours (Day 1, Day 2, … Day 6, etc.), pas nécessairement aligné sur
la semaine de 5 ou 7 jours.

C'est typiquement utilisé dans les **systèmes nord-américains** (cycles de
6 ou 8 jours), dans certaines écoles internationales, et plus rarement
en Europe.

#### Différence avec l'hebdomadaire

| Aspect | Hebdomadaire | Cyclique |
| --- | --- | --- |
| Unité de répétition | Semaine (5-7 jours) | Cycle de N jours |
| Numérotation | Lundi, mardi… | Day 1, Day 2… |
| À la publication | On choisit les semaines actives | On choisit les jours de semaine où le cycle s'applique |
| Génération auto | Oui | Oui |

#### Quand l'utiliser

Si votre établissement fonctionne sur un cycle de 6 jours (par exemple
Day 1 lundi, Day 2 mardi, Day 3 mercredi, Day 4 jeudi, Day 5 vendredi,
Day 6 lundi suivant, Day 1 mardi suivant…), le mode hebdomadaire ne
convient pas — le cyclique est fait pour ce cas.

Si vous êtes en Europe avec un cycle 5 jours strictement aligné sur la
semaine, restez en hebdomadaire — c'est plus simple à configurer et à
publier.

#### Voir aussi

- [Emploi du temps](#page-glossary.timetable)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)

<a id="page-glossary.weekly-timetable"></a>

### EDT hebdomadaire

*Source: `help/fr/glossary/weekly-timetable.md` · id: glossary.weekly-timetable · Updated: 2026-05-15*

*Aussi appelé : emploi du temps hebdomadaire · semaine type · récurrent · planning hebdomadaire*

Un **EDT hebdomadaire** repose sur une **semaine type** : les cours sont
définis comme récurrents sur les jours de la semaine. À la publication,
on choisit les **plages de semaines** de l'année où la semaine type
s'applique.

C'est le mode utilisé en :

- enseignement primaire et secondaire (écoles, collèges, lycées),
- premier cycle universitaire dans certaines facultés,
- centres de formation linguistique avec horaires fixes.

#### Génération automatique

Le solveur de génération automatique fonctionne sur ce mode. Il cherche
le placement optimal des séances dans la semaine type en respectant :

- disponibilités des professeurs,
- spécialisations de salles requises,
- partitions, alignements, incompatibilités,
- pondération pédagogique (équilibrage matières sur les jours).

Voir [Solveur](#page-glossary.solver).

#### Semaines alternées

Avec la fonction [semaines alternées](#page-glossary.alternate-lessons),
vous pouvez avoir des séances qui n'apparaissent qu'une semaine sur deux
(ou une sur trois, etc.) — semaines A/B, 1/2, etc. Configuré dans
Enregistrer.

#### Vacances et alternance

Les vacances scolaires peuvent perturber l'alternance A/B. Si vous étiez
en semaine A juste avant les vacances et que vous voulez reprendre en
semaine B après, vous pouvez créer un **décalage virtuel** sur la
ligne de temps (clic sur les semaines concernées).

#### Disponibilités validées a priori

Les disponibilités des professeurs sont validées en amont (avant la
génération). Toute modification ultérieure d'un professeur est signalée mais
n'interfère pas avec l'EDT déjà calculé. C'est différent du mode
[calendrier](#page-glossary.calendar-mode), où les disponibilités sont
consolidées en temps réel.

#### Voir aussi

- [Emploi du temps](#page-glossary.timetable)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Génération automatique](#page-glossary.solver)
- [Cours alternés](#page-glossary.alternate-lessons)

<a id="page-glossary.student"></a>

### Élève / Étudiant / Apprenant

*Source: `help/fr/glossary/student.md` · id: glossary.student · Updated: 2026-05-14*

*Aussi appelé : participant · stagiaire*

Un **élève** dans Omniscol est un individu inscrit à une
[classe](#page-glossary.class), suivant des cours, et éventuellement
membre d'un ou plusieurs [groupes](#page-glossary.group) au sein de
cette classe. **Élève** est le terme canonique de l'interface ;
selon le contexte de l'établissement, le vocabulaire courant
change :

- **Primaire / secondaire** — « élève »,
- **Supérieur** — « étudiant »,
- **Formation continue** — « apprenant », « participant », « stagiaire ».

Tous renvoient à la même entité Omniscol.

#### Les élèves sont **optionnels**

Point important : Omniscol fonctionne très bien **sans aucun élève
saisi**. Les EDT, les disponibilités des professeurs, la génération, les statistiques de
tableau de bord fonctionnent au niveau classe / groupe / professeur.

L'intérêt de saisir les élèves individuellement :

- **EDT personnalisés** — chaque étudiant voit son propre EDT après connexion,
  filtré par sa classe et ses groupes.
- **Statistiques détaillées** — tableau de bord par étudiant (heures de cours,
  jours de présence).
- **Absences** — un étudiant peut déclarer ses propres absences (avec
  validation administrative).
- **Étudiants en redoublement / hors-cursus** — gestion des étudiants qui
  doivent suivre des cours d'une autre classe que la leur.

Si vous n'avez pas besoin de ces fonctionnalités, ne saisissez pas les
étudiants — vous ne perdez rien d'essentiel.

#### Affectation à une classe et à des groupes

L'affectation d'un étudiant à sa classe et à ses groupes se fait dans
Élèves, après publication du premier EDT de
l'année. Vous pouvez aussi affecter en masse via l'opération
Assigner à une classe sur une sélection multiple.

#### Cas du redoublement et du hors-cursus

Un étudiant peut être affecté à plusieurs classes (par exemple, un
étudiant de 3e année qui doit aussi suivre un module de 2e année) ou
n'être affecté qu'à certains groupes d'une classe (un *fuori corso* qui
ne refait qu'une matière). Ces cas sont gérés via la sélection
multi-classes / multi-groupes de l'écran d'affectation.

#### Voir aussi

- [Classe](#page-glossary.class)
- [Groupe](#page-glossary.group)
- [Gérer les étudiants](#page-admin.students)

<a id="page-glossary.timetable"></a>

### Emploi du temps (EDT)

*Source: `help/fr/glossary/timetable.md` · id: glossary.timetable · Updated: 2026-06-13*

*Aussi appelé : planning hebdomadaire · planning de cours · agenda de cours*

Un **emploi du temps** (EDT) dans Omniscol représente l'organisation
complète des cours d'une école sur une période. C'est l'objet central
du logiciel.

Un EDT regroupe :

- des [classes](#page-glossary.class) avec leurs [groupes](#page-glossary.group)
  et leurs [partitions](#page-glossary.class-division),
- des [professeurs](#page-glossary.teacher) affectés,
- des [sites](#page-glossary.site) avec leurs grilles horaires, salles et
  ressources,
- des contraintes (disponibilités, incompatibilités, alignements),
- des [séances](#page-glossary.lesson) (positionnées ou non).

#### Trois modes d'EDT

Au moment de créer un EDT, vous choisissez son mode :

- **[Hebdomadaire](#page-glossary.weekly-timetable)** — les cours suivent une
  semaine type, récurrente. Typique du primaire et du secondaire.
- **[Cyclique](#page-glossary.cyclic-timetable)** — les cours sont récurrents
  sur un nombre arbitraire de jours (5, 6, 7… selon votre cycle).
  Typique des systèmes nord-américains.
- **[Calendrier](#page-glossary.calendar-mode)** — les cours sont datés
  individuellement, comme un agenda. Typique du supérieur (écoles d'ingénieurs,
  formation continue).

#### Plusieurs EDT par école

Vous pouvez avoir plusieurs EDT en parallèle dans le même compte :

- des **brouillons** non publiés,
- des EDT pour des **périodes** différentes (S1 vs S2, préparation de la
  rentrée vs EDT en cours),
- en Premium (ou, exceptionnellement, sur un compte Standard avec une
  activation cadrée par contrat), des EDT **simultanément actifs** sur
  les mêmes semaines (par exemple un EDT matinal récurrent + un EDT
  après-midi en mode calendrier) — voir
  [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).

#### Cycle de vie d'un EDT

```
Création  →  Configuration  →  (Génération automatique?)  →  Visualisation  →  Publication  →  Modifications quotidiennes
```

- **Création** — choix du mode, label, paramètres de base.
- **Configuration** — sites, salles, professeurs, classes, groupes, matières,
  cours.
- **Génération** — automatique via le solveur (disponible sur les trois
  modes : hebdomadaire, cyclique, calendrier) ou positionnement manuel.
- **Visualisation** — vérification avant publication.
- **Publication** — l'EDT devient l'EDT actif sur les semaines choisies de
  l'année scolaire. Visible dans le module *EDT* par tous les
  utilisateurs autorisés.
- **Modifications quotidiennes** — au fil de l'année (déplacements de séances,
  changements de salle, gestion des absences) sans repasser par la phase de
  génération.

#### Voir aussi

- [Hebdomadaire vs cyclique vs calendrier](#page-overview.timetable-modes)
- [Création d'un EDT](#page-timetables.overview)
- [Publier un EDT](#page-timetables.publication)

<a id="page-glossary.date-windows"></a>

### Fenêtre de dates

*Source: `help/fr/glossary/date-windows.md` · id: glossary.date-windows · Plan: premium · Updated: 2026-06-20*

> **Premium**

*Aussi appelé : fenêtres de dates · fenêtre d'inclusion · fenêtre d'exclusion · calque de dates*

> _Premium_

Une **fenêtre de dates** est une période d'**inclusion** ou
d'**exclusion** de dates, **réutilisable**, qui restreint quand
certaines séances peuvent être planifiées. Définie une fois sur l'écran
d'édition d'un EDT calendrier, elle s'applique ensuite comme un
**calque** sur les contraintes horaires de plusieurs entités — classes,
groupes, matières ou salles.

Réservée aux **EDT de type calendrier**, sur les comptes **Premium**.

#### Deux types

- **Cours autorisés** — les séances ne peuvent être planifiées que
  pendant ces dates.
- **Cours exclus** — les séances ne peuvent pas y être
  planifiées.

Plusieurs fenêtres se cumulent ; en cas de chevauchement, une exclusion
l'emporte sur une autorisation.

#### Voir aussi

- [Fenêtres de dates](#page-timetables.date-windows)
- [Mode calendrier](#page-glossary.calendar-mode)

<a id="page-glossary.large-room"></a>

### Grande salle (plusieurs séances simultanées)

*Source: `help/fr/glossary/large-room.md` · id: glossary.large-room · Updated: 2026-06-25*

*Aussi appelé : nombre maximal de classes · salle d'examen · théâtre · gymnase · piscine · extérieur*

Une **grande salle** est une [salle](#page-glossary.classroom) qui peut
accueillir **plusieurs séances différentes au même moment**, avec des
professeurs différents et des groupes sans relation entre eux. On la
déclare en renseignant le champ **Nombre maximal de classes** sur la
salle : ce nombre fixe combien de séances distinctes peuvent s'y dérouler
en parallèle.

Exemples typiques : une **salle d'examen**, un **hall**,
un **espace extérieur** (cour, théâtre, terrain de sport, musée...), un
**gymnase**, une **piscine** — autant de lieux où plusieurs activités
indépendantes cohabitent.

#### Réservé aux salles spécialisées

Le champ Nombre maximal de classes n'apparaît que sur une salle dotée
d'une **[spécialisation](#page-glossary.classroom-specialization)**. Il faut
donc d'abord donner une spécialisation à la salle (sport, examen,
piscine, extérieur…), puis indiquer son nombre maximal de classes simultanées.
C'est cohérent : une grande salle partagée est toujours un espace
spécialisé pour une activité particulière, et la spécialisation sert donc aussi
à y orienter les bonnes matières.

#### Comment Omniscol s'en sert

À chaque créneau, le [solveur](#page-glossary.solver) et la détection de
conflits autorisent à placer dans la salle autant de séances que le
Nombre maximal de classes le permet, tant que la somme de leurs
effectifs reste dans la **[capacité](#page-glossary.classroom)** de la salle.
Au-delà de l'un ou l'autre de ces plafonds — trop de séances en parallèle,
ou capacité dépassée — Omniscol signale un conflit.

Une salle laissée sans Nombre maximal de classes se comporte comme une
salle ordinaire : une seule séance à la fois.

#### Grande salle ou multi-salles ?

Les deux notions jouent sur le couple salle ↔ séance, dans deux sens
opposés :

- une **grande salle** réunit **plusieurs séances dans une même salle** ;
- une séance en **[multi-salles](#page-glossary.multi-room)** occupe au
  contraire **plusieurs salles pour une même séance** (sa capacité est
  alors la somme des salles affectées).

#### Voir aussi

- [Salle](#page-glossary.classroom)
- [Spécialisation de salle](#page-glossary.classroom-specialization)
- [Multi-salles](#page-glossary.multi-room)
- [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms)

<a id="page-glossary.group"></a>

### Groupe

*Source: `help/fr/glossary/group.md` · id: glossary.group · Updated: 2026-05-10*

*Aussi appelé : sous-groupe · demi-groupe · groupe d'option · td-a · td-b*

Dans Omniscol, un **groupe** est une **subdivision d'une classe**. Tous les
élèves d'un groupe sont également élèves de la classe parente.

On crée un groupe à chaque fois qu'un sous-ensemble d'élèves d'une classe doit
suivre un cours différent du reste de la classe — même temporairement, pour
une seule séance. Exemples :

- demi-groupes de TP (« TP-A », « TP-B »),
- groupes d'option (« Latinistes », « Hellénistes », « LV2 Espagnol », « LV2 Allemand »),
- groupes de niveau (« Anglais Renforcé », « Anglais Standard »).

#### Recommandation forte : un groupe par cours

Même si les latinistes et les hellénistes d'une classe sont en pratique les
mêmes élèves, **créez deux groupes distincts**. Sinon les
[alignements](#page-glossary.alignment) avec d'autres classes deviennent ambigus
et les conflits sont difficiles à diagnostiquer.

Inversement : pas la peine de créer un groupe « Toute la classe ». Quand un
cours s'adresse à toute la classe, on n'attache pas de groupe, le cours est
simplement assigné à la classe.

#### Effectif théorique

Indiquez le nombre d'élèves attendu dans le groupe. Champ optionnel mais
recommandé : il sert au [moteur de génération](#page-glossary.solver) pour choisir
les [salles](#page-glossary.classroom) de capacité adéquate.

#### Pour mélanger des élèves de plusieurs classes

Le concept de groupe s'arrête au périmètre d'une classe. Pour mélanger les
latinistes de 8A, 8B et 8C qui ont cours ensemble :

- créez un groupe « Latinistes » dans chacune des trois classes,
- puis créez un [alignement](#page-glossary.alignment) qui associe les trois.

Vous pouvez aussi utiliser un [groupe de groupes](#page-glossary.groups-of-groups),
plus souple à l'édition quand le regroupement doit évoluer.

#### Groupes libres

Pour des inscriptions ouvertes (ateliers du soir, options non contraintes par
classe), voyez la notion de [groupe libre](#page-glossary.free-group) — la
composition n'est pas fixée à l'avance, les élèves peuvent rejoindre ou
quitter sans générer de conflit. C'est un cas **exceptionnel** (un
sous-groupe satellite semi-autonome) : pour simplement **réunir ou mettre
ensemble des groupes existants** sur une séance commune, utilisez un groupe
de groupes, pas un groupe libre.

#### Voir aussi

- [Classe](#page-glossary.class)
- [Partition de classe](#page-glossary.class-division)
- [Alignement de groupes](#page-glossary.alignment)
- [Groupes de groupes](#page-glossary.groups-of-groups)
- [Groupe libre](#page-glossary.free-group)

<a id="page-glossary.groups-of-groups"></a>

### Groupe de groupes

*Source: `help/fr/glossary/groups-of-groups.md` · id: glossary.groups-of-groups · Updated: 2026-05-10*

*Aussi appelé : supergroupe · regroupement de groupes*

Un **groupe de groupes** est un regroupement, plus souple qu'un
[alignement](#page-glossary.alignment), de plusieurs [groupes](#page-glossary.group)
provenant de la même classe ou de classes différentes.

Disponible comme mécanisme de regroupement de base dans Omniscol.

#### Différence-clé avec l'alignement

L'alignement est **figé à la création** : la liste des groupes alignés
est fixée et tout désalignement nécessite de cloner le groupe.

Un groupe de groupes, lui, **se modifie a posteriori**. Vous pouvez ajouter
ou retirer des groupes sans avoir à recréer la structure. C'est ce qui le
rend précieux dans le supérieur, où la composition des regroupements évolue
souvent au fil de l'année (un nouveau parcours qui rejoint un cours commun,
un sous-groupe qui se détache pour un projet).

#### Quand l'utiliser

- Cours communs à plusieurs parcours (école d'ingénieurs ou de commerce),
- Conférences inter-promos, séminaires transversaux,
- Cours de tronc commun en formation continue,
- Évènements pédagogiques ouverts (visite, intervention extérieure).

Un cours assigné à un groupe de groupes est visible (et éditable) depuis
chacune des classes parentes des groupes membres.

#### Particularité

Le groupe de groupes est surtout utile quand la composition du public
évolue au fil de l'année ou quand vous voulez éviter les contraintes de
symétrie d'un alignement.

#### Voir aussi

- [Alignement de groupes](#page-glossary.alignment)
- [Cours transverse](#page-glossary.transverse-course)
- [Mode calendrier](#page-glossary.calendar-mode)
- [Groupes de groupes](#page-core-concepts.groups-of-groups)

<a id="page-glossary.free-group"></a>

### Groupe libre

*Source: `help/fr/glossary/free-group.md` · id: glossary.free-group · Updated: 2026-06-13*

*Aussi appelé : groupe satellite · groupe semi-autonome · groupe ouvert · groupe à inscriptions*

Un **groupe libre** est un **groupe de travail semi-autonome** : une
partie de la classe travaille en autonomie, généralement **dans la même
salle et avec le même professeur** que le cours principal, en parallèle
de celui-ci — une sorte de **groupe satellite** du cours. Le planificateur veut le
**faire figurer sur l'EDT** sans monter, en face, une partition de
groupes formelle.

C'est de là que vient le mot **libre** : comme ce sous-groupe partage la
salle et le professeur du cours dont il est issu, un
[groupe](#page-glossary.group) classique (même en partition) déclencherait
un **conflit de salle et de professeur**. Le groupe libre est le
**joker** qui **désactive tous les conflits** — ni avec le reste de la
classe, ni avec le professeur, ni avec la salle. Il coexiste donc avec sa
séance d'origine.

On rencontre notamment ce besoin dans les **écoles d'art** et les
**formations en travail social**, où une partie du temps se déroule en
**travail encadré autonome** : un sous-groupe avance sur son projet dans
un coin de la salle pendant que le reste de la classe suit le cours. Plus
largement, le groupe libre modélise tout groupe dont la composition n'est
**pas figée**, sans générer de conflit.

#### Différence avec un groupe classique

Un groupe classique est pris en compte par le solveur : il vérifie que
ses élèves ne sont pas double-réservés (deux séances en même temps) et
que sa **salle** comme son **professeur** sont libres. C'est exactement
ce qui empêcherait le groupe satellite : la salle et le professeur du cours
principal sont déjà pris.

Un groupe libre **lève ces contrôles**. Sa séance peut donc partager la
salle et le professeur du cours dont elle est issue ; et un élève peut
appartenir à plusieurs groupes libres qui se chevauchent sans qu'aucune
alerte ne se déclenche.

#### En pratique : placement manuel

La génération automatique **prend en charge** les groupes libres, mais il
est recommandé de **ne pas** l'utiliser pour ce cas : **posez et
verrouillez à la main** la séance principale et sa séance satellite sur
le créneau voulu. Le solveur ne sait pas laquelle est la principale et
laquelle est le satellite — livrées à la génération, elles
pourraient tomber n'importe où. Vu son caractère très ponctuel et
spécifique, le groupe libre relève d'un **usage manuel**.

#### Création

Au moment de créer le groupe, cocher l'option « groupe libre » sur
Ajouter un groupe. Visuellement, ces groupes sont marqués
dans l'interface pour ne pas être confondus avec les groupes contraints.

> _Premium_

Les groupes libres sont une capacité des comptes Premium.

#### Voir aussi

- [Groupe](#page-glossary.group)
- [Groupes libres](#page-core-concepts.free-groups)

<a id="page-glossary.ical"></a>

### iCal (export agenda)

*Source: `help/fr/glossary/ical.md` · id: glossary.ical · Updated: 2026-05-15*

*Aussi appelé : ics · abonnement calendrier · lien ical · export ical*

**iCal** (extension `.ics`) est le format standard d'échange de
calendriers, lu par toutes les applications agenda du marché : Apple
Calendar, Google Calendar, Outlook, Thunderbird, Fastmail, etc.

Omniscol propose deux types d'export iCal :

#### 1. Téléchargement statique

Bouton Télécharger sur un EDT
sélectionné. Vous récupérez un fichier `.ics` à importer dans votre
agenda. **Snapshot** au moment du téléchargement : pas mis à jour si
l'EDT bouge ensuite.

Utile pour partager un planning ponctuel par e-mail.

#### 2. Lien d'abonnement dynamique

Le bouton Télécharger sur un EDT (ou un écran de
professeur, etc.) génère une URL d'abonnement iCal. Une fois copiée dans
votre application agenda en tant qu'**abonnement**, l'agenda se met
à jour automatiquement à mesure que l'EDT évolue dans Omniscol.

C'est ainsi que les professeur et les élève synchronisent leur EDT
Omniscol avec leur agenda perso, sans devoir re-télécharger un fichier
à chaque modification.

Les liens iCal Omniscol sont signés, expirables et liés au compte qui
les a générés. L'expiration est inscrite dans le jeton de l'URL ; pour
la changer, il faut générer un nouveau lien. Un changement de mot de
passe, une désactivation ou une suppression du compte porteur invalide
les liens associés.

#### Synchronisation et mises à jour

L'iCal d'abonnement est **rafraîchi par l'application agenda**, à une
cadence variable selon le client :

- Apple Calendar : 5-15 min en général.
- Google Calendar : jusqu'à 24h dans le cas le pire (mais souvent plus
  rapide).
- Outlook : variable.

Cette latence est inhérente au protocole iCal et ne dépend pas
d'Omniscol — un changement dans l'EDT Omniscol apparaît dans l'agenda
abonné dès que celui-ci re-pull le flux.

#### Voir aussi

- [Lien de partage](#page-glossary.share-link)
- [iCal — abonnement et lien dynamique](#page-integrations.ical)

<a id="page-glossary.incompatibility"></a>

### Incompatibilité (entre matières)

*Source: `help/fr/glossary/incompatibility.md` · id: glossary.incompatibility · Updated: 2026-06-13*

*Aussi appelé : exclusion · anti-chaînage · interdiction de séquence*

Une **incompatibilité** est une contrainte pédagogique qui interdit à
une matière d'en **suivre** une autre. C'est une règle **orientée** : on
déclare que « la matière A ne doit pas être suivie de la matière B » — le
sens compte, A-puis-B et B-puis-A sont deux règles distinctes. Le cas
typique : « pas de cours de maths juste après le sport ».

Configurée au niveau de la classe dans l'onglet
Incompatibilités de l'EDT en cours.

#### Portée de l'interdiction

Vous choisissez la fenêtre dans laquelle l'interdiction s'applique au
moment de créer la règle :

- **Consécutif** — pas dans la séance qui suit immédiatement, le même jour.
- **Demi-journée** — pas plus tard dans la même demi-journée.
- **Journée** — pas plus tard dans la même journée.
- **Semaine** — pas plus tard dans la même semaine.
- **Toujours** *(EDT cycle ou calendrier)* — jamais après, sur toute la
  période. C'est l'outil de **séquencement** : finir un module avant
  d'enchaîner sur celui qui en dépend.

À part : l'option **auto-incompatibilité** d'une matière (paramètre global)
empêche qu'une même matière revienne deux fois dans la journée pour un
élève — souvent plus simple qu'une multitude de règles deux à deux.

#### Différence avec les contraintes horaires de matière

À ne pas confondre avec les **contraintes horaires** d'une matière
([clock]), qui fixent le placement
**absolu** d'une seule matière dans la grille. L'incompatibilité, elle,
porte sur l'ordre **relatif** de deux matières.

| Contrainte | Porte sur | Exemple |
| --- | --- | --- |
| **Incompatibilité** | l'**ordre** de deux matières | « pas de maths après le sport » |
| Contrainte horaire de matière | le **placement** absolu d'une matière | « pas de maths en première heure » |
| Spécialisation | la **salle** requise par une matière | « la chimie exige un laboratoire » |

#### Une contrainte d'optimisation, pas un blocage

Une incompatibilité n'est pas une contrainte bloquante : le solveur la
traite comme un malus qu'il cherche à éliminer, au même titre que les
disponibilités indésirables. Si les autres contraintes ne laissent aucune
alternative, une incompatibilité peut donc subsister dans l'EDT généré ;
le [diagnostic](#page-glossary.diagnostic) la signale alors pour que vous
puissiez arbitrer. Évitez l'avalanche d'incompatibilités : chacune
réduit la liberté du solveur et allonge le calcul. Pour équilibrer une
matière sur la semaine, la pondération pédagogique de la matière est
souvent plus efficace.

#### Voir aussi

- [Matière](#page-glossary.subject)
- [Solveur — comment il arbitre les contraintes](#page-glossary.solver)

<a id="page-glossary.api-token"></a>

### Jeton API

*Source: `help/fr/glossary/api-token.md` · id: glossary.api-token · Updated: 2026-05-15*

*Aussi appelé : token api · clé api · jeton d'authentification*

Un **jeton API** (token) permet à un logiciel tiers d'appeler les
points d'accès API d'Omniscol au nom de l'école, en lecture et, si des points d'accès API
d'écriture sont sélectionnés, en écriture.

C'est puissant — donc à manier avec précaution.

#### Génération

Un jeton est généré dans Partage
(Import/Export > Partage). Vous fournissez :

- une clé (générée dans Omniscol, avec libellé et expiration
  éventuelle ; sa date d'expiration peut être modifiée plus tard),
- une portée : la liste des points d'accès API que ce jeton pourra appeler
  (ne donnez que ce qui est strictement nécessaire),
- éventuellement une **expiration du jeton**. Cette date est inscrite
  dans le JWT généré et ne peut pas être modifiée ensuite.

Supprimer la clé, ou atteindre son expiration, révoque immédiatement
les jetons dérivés. Pour changer l'expiration d'un jeton individuel,
générez un nouveau JWT.

#### Utilisation

Le jeton se transmet dans l'en-tête HTTP `Authorization: Bearer <token>`,
ou (moins recommandé pour la production) dans l'URL via `?auth=<token>`.

#### Bonnes pratiques

- **Une clé par intégration** — facilite la révocation indépendante.
- **Scope minimal** — ne cochez que les API nécessaires, pas tout par
  défaut.
- **Expiration au bon niveau** — utilisez l'expiration de la clé pour
  piloter une intégration dans la durée ; utilisez l'expiration du
  jeton pour un accès temporaire non modifiable.
- **Rotation périodique** — régénérez la clé tous les 6-12 mois.
- **Pas dans Git** — le jeton ne doit pas finir versionné dans un repo
  public. Utilisez les variables d'environnement de votre serveur.

#### Différence avec OIDC / SSO

Pour connecter des utilisateurs réels avec leur identité
institutionnelle, utilisez [OIDC / SSO](#page-integrations.oauth2). Le
jeton API est destiné aux intégrations techniques serveur à serveur,
pas à la connexion quotidienne des utilisateurs.

#### Voir aussi

- [Lien de partage](#page-glossary.share-link)
- [API Omniscol](#page-integrations.api-tokens)
- [MCP — connecter un agent IA externe](#page-integrations.mcp)

<a id="page-glossary.share-link"></a>

### Lien de partage

*Source: `help/fr/glossary/share-link.md` · id: glossary.share-link · Updated: 2026-06-13*

*Aussi appelé : lien partagé · lien public · partage par jeton*

Un **lien de partage** dans Omniscol est une URL signée donnant accès
à une ressource sans connexion préalable :

- l'EDT d'une classe ou d'un professeur,
- un écran de saisie ciblé, par exemple des disponibilités,
- le module Gestion des absences en consultation,
- une vue spécifique pour une équipe externe (audit, communication).

Pour les EDT publics, l'accès est en lecture seule. Certains liens de
partage internes peuvent toutefois autoriser une action limitée, comme
la saisie d'un formulaire précis. Le cas typique est le lien de saisie
des disponibilités des professeurs : l'établissement peut l'envoyer à un professeur
avec une date limite, sans lui créer de login Omniscol.

#### Sécurité

Chaque lien embarque un **JWT** signé. Pour les liens web et API, la
signature dépend du compte qui a généré le lien et du hash de son mot
de passe. Pour les liens iCal, le hash de vérification est construit
sur le même principe. Quatre conséquences :

1. **Date d'expiration obligatoire** — le lien expire automatiquement
   à la date choisie. C'est un garde-fou important : pas de lien
   éternel.
2. **Invalidation au changement de mot de passe** — si le compte porteur
   change son mot de passe (ou le remet à l'identique, ce qui change
   le sel aléatoire), tous les liens qu'il a générés sont invalidés
   immédiatement.
3. **Invalidation par le compte porteur** — si ce compte est désactivé
   ou supprimé, les liens qu'il portait cessent de fonctionner.
4. **Périmètre limité** — le lien n'ouvre que la vue ou l'action
   prévue. Ne le décrivez pas comme un accès global au compte.

Pour une diffusion collective, utilisez un compte de service clairement
identifié plutôt qu'un compte personnel. Le compte de service devient le
porteur administratif des liens émis et peut être tourné ou désactivé
si une campagne de partage doit être invalidée.

#### Différence avec un jeton API

| Aspect | Lien de partage | [Jeton API](#page-glossary.api-token) |
| --- | --- | --- |
| Public | Humain dans un navigateur | Logiciel tiers |
| Permission | Périmètre borné, souvent lecture seule | Selon endpoints sélectionnés |
| Cas d'usage | Diffusion ponctuelle | Intégration logicielle |
| Auth | JWT dans l'URL | JWT dans l'en-tête `Authorization` |
| Niveau requis | Rôle du créateur | Droits d'administration |

#### Création d'un lien

Le bouton Partage apparaît sur les écrans partageables (EDT,
disponibilités, absences). Cliquez, choisissez une date d'expiration, puis
copiez l'URL du format utile.

#### Voir aussi

- [Jeton API](#page-glossary.api-token)
- [Partager un EDT](#page-schedules.share-link)
- [Liens de partage publics](#page-portal.share-links)

<a id="page-glossary.timeline"></a>

### Ligne de temps

*Source: `help/fr/glossary/timeline.md` · id: glossary.timeline · Updated: 2026-06-29*

*Aussi appelé : banderole de semaines · frise de temps*

La **ligne de temps** est la bande horizontale présente en haut de tout
écran qui affiche un planning ou des statistiques. C'est avec elle qu'on
**navigue dans le temps** : choisir l'année scolaire, la période affichée
et, selon l'écran, basculer entre une vue semaine, mois ou année.

Ses **flèches gauche / droite** font reculer ou avancer d'une année
scolaire entière. L'année (ou la période) affichée est nommée en clair
au-dessus de la ligne de temps.

[Ligne de temps et navigation temporelle](#page-core-concepts.timeline-navigation)

<a id="page-glossary.subject"></a>

### Matière

*Source: `help/fr/glossary/subject.md` · id: glossary.subject · Updated: 2026-05-10*

*Aussi appelé : discipline · unité d'enseignement · UE · module*

Une **matière** est la discipline enseignée par un
[cours](#page-glossary.course) : maths, physique, anglais, droit comptable,
machine learning, méthodologie de projet… La matière est la discipline
pure ; le cours, c'est cette matière rapportée à une classe précise.

Omniscol fournit pour chaque pays un **catalogue de matières communes**
(parfois quelques centaines, parfois quelques milliers selon les
nomenclatures officielles), pré-rempli au niveau du compte. Si une
matière manque, vous créez une **matière personnalisée** dans
Créer.

#### Vocabulaire dans le supérieur

Les nomenclatures pédagogiques du supérieur français utilisent des
niveaux d'agrégation différents :

- **UE** (unité d'enseignement) — ensemble de cours / modules,
- **EC** (élément constitutif) — sous-unité d'une UE,
- **ECUE** (élément constitutif d'une UE) — encore plus fin,
- **module** — terme générique en formation continue.

Tous ces niveaux se ramènent à l'entité Omniscol « matière ». Si vous
avez besoin de représenter la hiérarchie pédagogique elle-même (UE →
EC → ECUE), faites-le via une convention de nommage (par exemple
préfixer les codes : `UE3-EC2-ECUE1 Algèbre linéaire`) ou via les
[familles de matières](#page-admin.subjects).

#### Matière copiée dans l'EDT

Quand vous affectez une matière à une classe dans un EDT, Omniscol fait
une **copie interne** de la matière dans la structure de l'EDT. C'est
un choix délibéré : si vous supprimez ou renommez la matière au niveau
de l'école par la suite, les EDT existants conservent leur version
historique. Par conséquent, **soignez l'orthographe** des matières
personnalisées avant de les utiliser dans des EDT — un correctif a
posteriori ne se propage pas dans les EDT déjà configurés.

#### Type de cours associé

Au moment d'affecter une matière à une classe, vous pouvez préciser un
**[type de cours](#page-glossary.lesson-type)** (TD, TP, examen, magistral…).
Le couple `(matière, type)` constitue un identifiant indépendant : par
exemple, le « cours de maths » et le « TD de maths » sont deux entrées
indépendantes dans la structure de l'EDT.

#### Spécialisation de salle requise

Une matière peut **requérir une spécialisation de salle** (chimie →
laboratoire de chimie, sport → gymnase). Cette contrainte est respectée
strictement par le solveur. Voir
[spécialisation de salle](#page-glossary.classroom-specialization).

#### Pondération pédagogique

Vous pouvez définir un **poids pédagogique** sur une matière dans une
classe : le solveur cherchera alors à équilibrer la matière sur les
jours de la semaine plutôt que de tout concentrer.

#### Voir aussi

- [Cours](#page-glossary.course)
- [Type de cours](#page-glossary.lesson-type)
- [Séance / Leçon](#page-glossary.lesson)
- [Gérer les matières](#page-admin.subjects)
- [Spécialisation de salle](#page-glossary.classroom-specialization)

<a id="page-glossary.lesson-modality"></a>

### Modalité d'une séance

*Source: `help/fr/glossary/lesson-modality.md` · id: glossary.lesson-modality · Plan: premium · Updated: 2026-06-25*

> **Premium**

*Aussi appelé : en présentiel · distanciel · cours à distance · hybride · travail autonome · visioconférence*

> _Premium_

Sur les comptes **Premium**, la **Modalité** indique
**comment** une [séance](#page-glossary.lesson) se déroule. Elle se choisit
dans le sélecteur de salle Affecter une salle de classe,
à côté de l'affectation. Quatre valeurs, chacune avec sa propre icône sur
la séance :

- **En présentiel** — la séance a lieu dans une
  [salle](#page-glossary.classroom) (le cas par défaut).
- **À distance** — la séance se tient à distance
  (icône [video]) ; aucune salle n'est requise.
- **Hybride** — la séance a lieu en salle **et**
  est retransmise à distance (par exemple un cours magistral diffusé en
  visioconférence) : elle occupe donc une salle et a besoin d'un lien.
- **Travail autonome** — travail mené en autonomie,
  sans salle requise. C'est équivalent au verrouillage sur l'absence
  de salle (qui désactive l'alerte si une salle n'est pas attribuée
  à la séance).

#### Effet sur la salle et la génération

La modalité a un effet concret sur la planification : une séance
**À distance** ou en
**Travail autonome** **ne demande pas de salle**. Le
[solveur](#page-glossary.solver) ne lui en réserve pas, et l'affectation
automatique des salles l'ignore. Les séances
**En présentiel** et
**Hybride** réclament au contraire une salle.

#### Lien de visioconférence

Pour les séances à distance ou hybrides, vous pouvez renseigner un **lien
de visioconférence** dans le même sélecteur de salle. Un lien peut aussi
être défini par défaut sur la classe et s'appliquer alors à ses séances.
En cas d'absence de lien, une alerte est affichée.

#### Statistiques par modalité

Le [diagnostic](#page-glossary.diagnostic) propose un tableau de répartition
**par modalité** : il totalise le temps d'enseignement assuré en
présentiel, à distance, en hybride et en travail autonome. C'est utile
pour mesurer, par exemple, la part de distanciel d'une formation.

Quand la modalité n'est pas renseignée explicitement, Omniscol la
**déduit** des éléments présents : une salle **et** un lien de
visioconférence donnent une séance hybride ; une salle seule, du
présentiel ; un lien de visioconférence seul, du distanciel ; une séance
explicitement sans salle, du travail autonome. Un choix explicite
l'emporte toujours sur cette déduction.

#### Voir aussi

- [Édition d'une séance de cours](#page-timetables.lesson-edit)
- [Statut](#page-glossary.lesson-status)
- [Séance / Leçon](#page-glossary.lesson)
- [Salle](#page-glossary.classroom)

<a id="page-glossary.calendar-mode"></a>

### Mode calendrier

*Source: `help/fr/glossary/calendar-mode.md` · id: glossary.calendar-mode · Plan: premium · Updated: 2026-06-13*

> **Premium**

*Aussi appelé : mode agenda · planning daté · sans récurrence*

> _Premium_

Un emploi du temps en **mode calendrier** organise les séances **par date**,
sans semaine type récurrente. Chaque séance est positionnée individuellement
sur une date précise, comme dans un agenda.

C'est le mode privilégié de :

- **l'enseignement supérieur** (écoles d'ingénieurs, écoles de commerce,
  universités),
- **la formation continue** (sessions ponctuelles, programmes courts),
- **les centres de formation** où les cours ne reviennent pas chaque semaine.

Mode disponible sur les comptes **Premium**.

#### Différences avec le mode hebdomadaire

| Aspect | Hebdomadaire | Calendrier |
| --- | --- | --- |
| Récurrence | Semaine type | Date par date |
| Génération auto | Oui | Oui (avec fenêtre de dates et compactage des journées) |
| Disponibilités | Validées à l'avance | Consolidées en temps réel |
| Édition d'une séance | Affecte toutes les semaines actives | Affecte une date précise |
| Groupes de groupes | Oui | Oui |
| Publication | Sur des plages de semaines | Binaire (publié ou non) |
| Affichage par défaut | Vue semaine | Vue semaine ou mois |
| Effacement par vacances | Automatique | Aucun (les séances sont déjà datées) |

#### Génération automatique en mode calendrier

Le solveur fonctionne aussi en mode calendrier : il place les séances
non positionnées sur les dates disponibles, en respectant les mêmes
contraintes (un professeur ou une classe ne peuvent être à deux endroits
à la fois, salles compatibles, disponibilités bloquantes). L'écran de génération
expose en plus des réglages propres au calendrier : une **fenêtre de
dates cible** pour limiter le calcul à une période, et le **compactage
des journées** (regrouper en début ou en fin de fenêtre, ou laisser le
solveur décider). L'aide au placement manuel reste disponible en
parallèle : conflits détectés en temps réel, propositions de salle
filtrées, disponibilités prises en compte instantanément.

#### Disponibilités en mode calendrier

Sur un EDT calendrier, les disponibilités des intervenants externes
peuvent évoluer au fil du temps. Omniscol consolide en temps réel et
émet des alertes de conflits à mesure que les disponibilités changent.
Voir [Disponibilités en mode calendrier](#page-timetables.calendar-wishes).

#### Combiner hebdomadaire + calendrier dans une même école

En Premium, vous pouvez **publier simultanément** un EDT
hebdomadaire (les cours récurrents du matin, prépa intégrée) et
un EDT calendrier (les masterclasses ponctuelles de l'après-midi, cycle grande école)
sur les mêmes semaines, grâce à
[plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables).
Si les deux EDT partagent des entités (professeurs,
salles), Omniscol fusionne dynamiquement les vues et détecte leurs conflits croisés.

#### Voir aussi

- [Emploi du temps](#page-glossary.timetable)
- [Choisir le bon type d'EDT](#page-overview.timetable-modes)
- [Mode calendrier](#page-timetables.calendar-mode)
- [Groupes de groupes](#page-glossary.groups-of-groups)

<a id="page-glossary.schedule-view-mode"></a>

### Mode d'affichage de l'EDT

*Source: `help/fr/glossary/schedule-view-mode.md` · id: glossary.schedule-view-mode · Updated: 2026-06-13*

*Aussi appelé : vue grille · vue liste · vue tableau · basculer la vue*

Trois représentations interchangeables des mêmes séances sur le même
EDT, choisies par les boutons du bandeau de titre :

- **Grille** (Vision en grille) : vue calendrier classique, séances
  positionnées sur une grille jour × heure. Mode par défaut pour la
  consultation rapide.
- **Liste** (Vision en liste) : succession chronologique des séances,
  une par ligne, avec jour, horaires, durée, classe, groupe, matière,
  professeurs, site et salle. Pratique pour parcourir séquentiellement.
- **Tableau** (Tableau) : rendu type tableur de la vue en
  cours — jours en colonnes et créneaux horaires en lignes (ou
  l'inverse), ou une séance par ligne quand la vue liste est active.
  Utile pour un audit, une copie vers un tableur, ou un export fichier
  selon l'écran (PDF, CSV, Excel / XLSX). Ce mode est réservé aux
  administrateurs, sur ordinateur.

Les trois modes opèrent sur le **même jeu de données** ; basculer ne
modifie ni ne filtre, c'est strictement une présentation différente.
Le choix n'est pas enregistré : il vaut pour l'affichage en cours.

<a id="page-glossary.multi-room"></a>

### Multi-salles (une séance dans plusieurs salles)

*Source: `help/fr/glossary/multi-room.md` · id: glossary.multi-room · Updated: 2026-06-13*

*Aussi appelé : salles multiples · dédoublement de salle · dédoublement de cours*

Omniscol permet d'affecter **plusieurs salles** à une même séance.
Cette fonctionnalité est disponible **sur tous les types
d'EDT** : [hebdomadaire](#page-glossary.weekly-timetable),
[cyclique](#page-glossary.cyclic-timetable) et
[calendrier](#page-glossary.calendar-mode).

#### Cas d'usage typiques

- **Examens en amphithéâtres dédoublés** — un examen de 200 candidats
  réparti en trois amphithéâtres (capacité 70 + 60 + 80) avec un seul
  intervenant responsable. La capacité est calculée comme la somme des
  salles affectées.
- **Cours magistral retransmis** — un CM dans un amphithéâtre principal, retransmis
  par visio dans une salle satellite (par exemple sur un autre site, voire
  depuis une promotion entièrement à distance).
- **TP dédoublés sans dédoublement de groupe** — quand un TP de 30 étudiants
  ne tient dans aucune salle informatique unique, mais peut être surveillé
  simultanément dans deux salles voisines (15 + 15) par le même professeur.

#### Capacité totale = somme des salles

Quand vous affectez plusieurs salles à une séance, Omniscol additionne
leurs capacités pour vérifier que le groupe rentre. Plus de fausse alerte
de sur-capacité dès lors que la somme suffit.

> **Astuce.** Si vous voyez des alertes de sur-capacité disparaître
> après ajout d'une seconde salle, c'est exactement le comportement
> attendu : la somme couvre désormais l'effectif.

#### Limitation à connaître

Si la somme des capacités reste **inférieure** au groupe, Omniscol affiche
toujours un conflit — c'est à l'administrateur de décider de le résoudre
(en ajoutant une salle, en réduisant le groupe, ou en acceptant le conflit
s'il est délibéré, par exemple si on sait que tous les inscrits ne viendront
pas).

#### Voir aussi

- [Salle](#page-glossary.classroom)
- [Examens multi-salles dans le supérieur](#page-higher-ed.multi-room-exams)
- [Site](#page-glossary.site)

<a id="page-glossary.level"></a>

### Niveau

*Source: `help/fr/glossary/level.md` · id: glossary.level · Updated: 2026-06-21*

*Aussi appelé : niveau de classe · grade*

Un **niveau** classe les [classes](#page-glossary.class) par **progression
pédagogique** : 6e, 5e, 4e, 3e en collège ; L1, L2, L3 en licence ;
Bachelor, Master, année 1, année 2… selon l'établissement.

C'est une **étiquette d'organisation**, pas une contrainte de placement :
le niveau n'impose rien au solveur. Il sert à **ranger et retrouver** les
classes — dans les écrans de classes, dans plusieurs filtres et dans
certaines vues de diagnostic.

#### Où le configurer

Les niveaux font partie des réglages **généraux** du compte. Depuis les
[paramètres généraux](#page-admin.parameters), sous **Niveaux**, vous pouvez en
créer via Créer, les supprimer, et les
**glisser-déposer pour les réordonner** — l'ordre traduit la progression.

Chaque classe se voit ensuite attribuer un niveau au moment de sa création
(cf. [Créer les classes](#page-timetables.creating-classes)).

#### Niveau, campus et site

Trois notions voisines à ne pas confondre :

- le **niveau** situe la classe dans une **progression** (où en est la
  classe dans le cursus) ;
- le [campus](#page-glossary.campus) la rattache à une **entité
  organisationnelle** (faculté, pôle, implantation) ;
- le [site](#page-glossary.site) en donne le **lieu physique** et les salles
  utilisées par défaut.

Une même classe porte généralement les trois : un niveau, éventuellement un
campus, et un site par défaut.

#### Voir aussi

- [Classe](#page-glossary.class)
- [Campus](#page-glossary.campus)
- [Site](#page-glossary.site)
- [Créer les classes et leurs groupes](#page-timetables.creating-classes)
- [Paramètres généraux](#page-admin.parameters)

<a id="page-glossary.panel"></a>

### Panneau d'affichage

*Source: `help/fr/glossary/panel.md` · id: glossary.panel · Updated: 2026-06-13*

*Aussi appelé : écran d'accueil · écran d'entrée · écran de hall*

Un **panneau** dans Omniscol est un écran d'affichage public, configuré
pour montrer en continu un EDT filtré. Cas typiques :

- **panneau de hall** — écran à l'entrée de l'école, défile sur les
  séances du jour pour toutes les classes,
- **panneau devant une salle** — écran fixé à côté d'une porte,
  affichant l'occupation de cette salle dans la journée,
- **panneau d'amphithéâtre / laboratoire** — affichage des prochaines
  séances dans un espace spécialisé.

#### URL unique pour chaque panneau

Chaque panneau créé a une **URL unique** à ouvrir en plein écran dans
un navigateur. Le défilement et le rafraîchissement se font automatiquement.

#### Personnalisation

Au moment de définir un panneau, vous configurez :

- **filtre des séances affichées** : quel(s) niveau(x), quelle(s)
  classe(s), quel(s) site(s), quelle(s) salle(s),
- **plage horaire** affichée,
- **taille de police**,
- **bandeau d'informations** (texte défilant, logo),
- **couleurs et thème**.

Pour les déploiements à forte identité visuelle, il est aussi possible
de remplacer entièrement la page web qui affiche le panneau, afin de
l'intégrer à un dispositif d'affichage dynamique existant. Voir
[Personnalisation visuelle](#page-panels.customization).

#### Voir aussi

- [Panneau de hall](#page-panels.lobby-panel)
- [Panneau devant une salle](#page-panels.room-panel)
- [Personnalisation visuelle](#page-panels.customization)

<a id="page-glossary.class-division"></a>

### Partition de classe

*Source: `help/fr/glossary/class-division.md` · id: glossary.class-division · Updated: 2026-05-10*

*Aussi appelé : partition de groupes · division*

Une **partition** regroupe plusieurs [groupes](#page-glossary.group)
d'**une même classe** qui doivent
**partager le même créneau horaire**.

Concrètement : les élèves n'étant pas dédoublés (un même élève ne peut pas
être à deux endroits en même temps), si vos demi-groupes TP-A et TP-B doivent
faire deux TP différents simultanément, le solveur a besoin de savoir qu'ils
constituent une partition. Le moteur sait alors :

- placer les deux TP au même créneau,
- avec deux salles différentes,
- avec deux professeurs différents,
- sans déclencher d'alerte de conflit.

#### Quand créer une partition

À chaque fois qu'un même créneau doit héberger des séances différentes
pour des sous-ensembles disjoints d'une classe :

- demi-groupes de TP (TP-A vs TP-B, demi-classe Maths vs Français, etc.),
- groupes de langues (LV2 Espagnol vs LV2 Allemand),
- options exclusives (Latin vs Grec moderne),
- demi-groupes informatiques (parce qu'on n'a que 15 postes en salle informatique).

Le critère de validité : **aucun élève ne doit appartenir à deux groupes
de la même partition**. Sinon, vous êtes dans un alignement plutôt que dans
une partition (ce qui n'est de toute façon pas possible si les groupes font
partie de la même classe).

#### Comment créer une partition

Sur la page des [groupes d'une classe](#page-core-concepts.classes-and-groups),
sélectionnez les groupes concernés et cliquez sur Ajouter une partition.
Plusieurs partitions peuvent coexister dans une même classe (une pour les TP de
sciences, une pour les langues, une pour les options philo).

#### Différence avec un alignement

Une **partition** = groupes d'**une seule classe** qui doivent être au même créneau.
Un [**alignement**](#page-glossary.alignment) = groupes de **classes différentes** qui
doivent être au même créneau, **avec le même professeur et la même salle**.

#### Voir aussi

- [Groupe](#page-glossary.group)
- [Alignement de groupes](#page-glossary.alignment)
- [Page complète sur les partitions](#page-core-concepts.class-divisions)

<a id="page-glossary.teacher"></a>

### Professeur / Intervenant

*Source: `help/fr/glossary/teacher.md` · id: glossary.teacher · Updated: 2026-05-10*

*Aussi appelé : enseignant · formateur · instructeur*

Dans Omniscol, **professeur** désigne toute personne qui assure l'animation
pédagogique d'un cours. Le terme regroupe :

- les **enseignants permanents** (titulaires, faculty),
- les **vacataires** (intervenants externes ponctuels),
- les **visiting professors** (universitaires invités, conférenciers),
- les **formateurs** (formation continue, ateliers),
- les **experts** (intervenants ponctuels recrutés pour leur expertise).

Selon la culture de votre établissement, vous parlerez de « professeur »,
d'« enseignant », d'« intervenant », de « formateur » — Omniscol s'adapte
à votre vocabulaire via les libellés (cf. paramètres) mais sous le capot
ils sont tous représentés par la même entité.

#### Création

Les professeurs sont créés au niveau de l'école dans
Professeurs. Vous renseignez :

- prénom, nom, login, mot de passe,
- e-mail (utilisé pour l'invitation et pour le « mot de passe oublié »),
- éventuellement un identifiant externe (matricule, ID SIS),
- les **matières enseignées** (simplifie l'affectation aux cours par la suite),
- le **service horaire** (nombre d'heures hebdomadaires prévues, repris par défaut
  dans les nouveaux EDT).

#### Affectation à un emploi du temps

Une fois créés au niveau de l'école, les professeurs doivent être **affectés
à un EDT** depuis Affecter des professeurs. Cette
étape distingue le « personnel disponible » (au niveau école) du « personnel
mobilisé sur ce planning » (au niveau EDT).

#### Disponibilités

Un professeur peut renseigner ses [disponibilités](#page-glossary.wishes)
(plages indisponibles, indésirables, préférées). Pour les EDT hebdomadaires,
elles nécessitent une validation administrative ; pour les EDT calendriers,
elles sont consolidées en temps réel. Dans le secondaire, on parle aussi de
**vœux**.

#### Vacataires (intervenants externes)

Pour les **vacataires**, voir l'entrée dédiée :
[Vacataire / intervenant externe](#page-glossary.external-teacher).

#### Professeur virtuel

Le bouton Virtuel crée un
*professeur virtuel* — une fiche provisoire pour un poste à pourvoir,
qui apparaît avec un fantôme à côté de son nom. Une fois la personne
réelle recrutée, vous transformez la fiche en véritable professeur via
le bouton sur sa ligne. Pratique pour préparer la rentrée avant que tous
les recrutements soient finalisés.

#### Voir aussi

- [Vacataire (intervenant externe)](#page-glossary.external-teacher)
- [Disponibilités](#page-glossary.wishes)
- [Gérer les enseignants](#page-admin.teachers)
- [Affecter les professeurs à un EDT](#page-timetables.assigning-teachers)

<a id="page-glossary.publication"></a>

### Publication / Activation d'un EDT

*Source: `help/fr/glossary/publication.md` · id: glossary.publication · Updated: 2026-06-13*

*Aussi appelé : mise en service · activer un emploi du temps · semaines actives*

**Publier** (ou *activer*) un EDT, c'est le rendre **visible** dans le
module EDT consulté par tous, sur les **semaines de l'année
scolaire** que vous choisissez.

Un EDT généré n'est **pas automatiquement publié**. Tant qu'il n'est
pas publié, c'est un brouillon : visible uniquement dans le module
Gestion des EDT par les administrateurs.

#### Comment publier

Sur la page d'accueil du module Gestion des EDT :

1. Sélectionnez l'année scolaire concernée.
2. Cliquez sur Ajouter une période
   (Répartition des EDT).
3. Sur la grille qui apparaît, choisissez les semaines de chaque EDT.
4. Sauvegardez.

#### Une seule publication par semaine (compte standard)

Avec un compte standard, **une seule publication** par semaine est
permise. Si vous voulez publier deux EDT différents, ils doivent
porter sur des plages de semaines disjointes.

#### Publications simultanées

En Premium — ou, exceptionnellement, sur un compte Standard avec une
activation cadrée par contrat — plusieurs EDT peuvent être publiés sur
les mêmes semaines et fusionnés à la consultation. Ce cas est détaillé
dans
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
et dans la page complète sur la publication.

#### EDT calendrier : publication binaire

Un EDT en mode [calendrier](#page-glossary.calendar-mode) ne se publie
pas par plages de semaines (les séances sont déjà datées
individuellement) : la publication est binaire — l'EDT est publié,
ou il ne l'est pas.

#### Voir aussi

- [Emploi du temps](#page-glossary.timetable)
- [Année scolaire](#page-glossary.school-year)
- [Publier un EDT — page complète](#page-timetables.publication)
- [Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)

<a id="page-glossary.substitution"></a>

### Remplacement / Suppléance

*Source: `help/fr/glossary/substitution.md` · id: glossary.substitution · Updated: 2026-05-14*

*Aussi appelé : substitution · remplaçant*

Un **remplacement** désigne l'affectation d'un autre professeur à un
cours dont le titulaire est [absent](#page-glossary.absence).

#### Remplacement ponctuel

Pour une séance précise, l'administrateur ouvre la gestion des
remplaçants de l'absence et utilise Assigner un remplaçant.
Cette affectation vaut uniquement pour la séance choisie et prime sur les
règles longues.

#### Règle de remplacement

Pour une absence longue, l'administrateur crée une ou plusieurs règles
avec Assigner un remplaçant. Une règle peut préciser :

- le remplaçant ;
- des dates de validité ;
- des créneaux horaires ;
- des matières ;
- des classes ;
- un commentaire.

Les règles s'appliquent dans l'ordre affiché. Si aucune règle ne couvre
une séance, celle-ci reste impactée par l'absence du titulaire.

#### Affichage des remplacements

Sur l'emploi du temps, le professeur remplacé reste visible comme
titulaire absent et le remplaçant apparaît sur la séance. Les détails du
motif et du commentaire d'absence dépendent des droits de consultation.

#### Voir aussi

- [Absence](#page-glossary.absence)
- [Politiques de remplacement](#page-absences.substitution-policies)
- [Remplacement ponctuel d'une séance](#page-absences.single-lesson-replacement)

<a id="page-glossary.resource"></a>

### Ressource

*Source: `help/fr/glossary/resource.md` · id: glossary.resource · Updated: 2026-05-10*

*Aussi appelé : matériel · équipement mobile · vidéoprojecteur · valise · kit*

Une **ressource** dans Omniscol est un équipement **mobile**, non rattaché
à une salle particulière. Chaque ressource porte un **nom** et une
**quantité disponible**.

Exemples : trois vidéoprojecteurs portables, une valise de 30 tablettes
(la valise compte pour 1, pas pour 30 — vous saisissez la quantité de
valises, pas la quantité de tablettes), un kit microphones, un cluster
de mannequins de secourisme.

#### Comment c'est utilisé

Au moment de configurer un cours, vous indiquez les ressources qui lui
sont nécessaires. Le solveur garantit que **les séances simultanées ne
demandent pas plus de ressources qu'il n'en existe** : si vous avez 3
vidéoprojecteurs portables, jamais plus de 3 séances simultanées ne
pourront en demander un chacune.

#### Différence avec les salles

Une [salle](#page-glossary.classroom) est attachée à un [site](#page-glossary.site)
et n'en bouge pas. Une ressource n'est attachée à aucune salle (mais elle
est rattachée à un site, ce qui empêche d'utiliser une valise du site
A pour un cours du site B).

#### Cas typiques où on n'utilise pas de ressource

Beaucoup de cours n'ont aucune ressource déclarée — c'est le défaut.
Ne déclarez une ressource que si elle constitue **une vraie limite** :
si vous avez 30 vidéoprojecteurs portables et 4 séances simultanées
maximum, inutile de modéliser ; si vous en avez 3 et plusieurs séances
qui en demandent, vous voulez que le solveur arbitre.

#### Voir aussi

- [Site](#page-glossary.site)
- [Salle](#page-glossary.classroom)

<a id="page-glossary.classroom"></a>

### Salle

*Source: `help/fr/glossary/classroom.md` · id: glossary.classroom · Updated: 2026-06-13*

*Aussi appelé : salle de classe · salle de cours · local · room · salle dédiée*

Une **salle** dans Omniscol est un local physique dans lequel un cours
peut avoir lieu. Chaque salle est rattachée à un [site](#page-glossary.site).
Une salle porte :

- un **nom** (« A102 », « Amphi Newton », « Lab. Chimie 3 »),
- une **capacité** (nombre d'élèves pouvant être accueillis ; champ
  capital pour le solveur),
- éventuellement un Nombre maximal de classes quand c'est une
  **[grande salle](#page-glossary.large-room)** capable d'accueillir
  plusieurs séances en même temps (salle d'examen, théâtre, gymnase,
  piscine, extérieur),
- éventuellement une **[spécialisation](#page-glossary.classroom-specialization)**
  (chimie, informatique, sport, multimédia, etc. — un seul libellé par salle),
- éventuellement des **tags** ou commentaires libres (paper board,
  vidéoprojecteur fixe, prises électriques pour élèves, etc.),
- éventuellement un **bâtiment**,
- des **horaires d'ouverture** (utile pour les salles partagées avec un
  autre établissement, ou pour les salles ouvertes seulement certains jours).

#### Affectation aux séances

Une séance peut avoir une ou [plusieurs salles](#page-glossary.multi-room).
Quand vous affectez manuellement une salle, Omniscol :

- **pré-filtre** les salles inadéquates (mauvaise spécialisation,
  capacité insuffisante, indisponibilité, mauvais site) en les affichant
  en semi-transparence,
- **trie** les salles compatibles par adéquation (étoiles : remplissage
  optimal, etc.),
- vous laisse forcer une affectation incohérente, mais émet une alerte.

#### Capacité et dimensionnement

La capacité est un champ critique. En cas de doute et si vous êtes certain
que la salle sera assez grande, mettez un chiffre élevé. Si vous
sous-dimensionnez, le solveur refusera des configurations valides ou
émettra des alertes.

#### Grande salle : plusieurs séances simultanées

Le champ **Nombre maximal de classes** transforme une salle en
**[grande salle](#page-glossary.large-room)** : elle peut alors accueillir
plusieurs séances différentes au même moment (professeurs et groupes
distincts), dans la limite de ce nombre et de sa capacité totale —
typiquement une salle d'examen, un théâtre, un gymnase, une piscine ou un
espace extérieur. Ce réglage n'apparaît que sur une salle dotée d'une
**[spécialisation](#page-glossary.classroom-specialization)**. Laissé vide,
la salle n'accueille qu'une séance à la fois.

#### Spécialisation

La **spécialisation** (chimie, informatique, sport, multimédia, salle de
devoirs surveillés…) est un libellé libre, unique par salle. Elle sert ensuite à
indiquer, lors de l'affectation d'une matière à une classe, qu'une salle
portant exactement ce libellé est requise. Le moteur respecte strictement
cette contrainte.

#### Salle dédiée à une classe

Beaucoup de configurations primaire/secondaire associent une salle à
chaque classe (les cours s'y déroulent par défaut, seuls les professeurs se
déplacent). Vous pouvez le configurer sur la classe (cf.
[création de classe](#page-timetables.creating-classes)).

#### Salles dans deux sites virtuels

Si vous avez créé deux [sites](#page-glossary.site) virtuels pour un même
lieu physique (typiquement un collège et un lycée qui partagent les
locaux), une salle ne peut appartenir qu'à un seul des deux sites à la
fois. Pour la rendre utilisable côté collège **et** côté lycée, dupliquez-la
dans les deux sites et **renseignez des horaires d'ouverture exclusifs**.
Omniscol ne distingue pas une même salle partagée entre deux sites de deux
salles homonymes : il ne recoupe donc pas automatiquement les deux entrées,
et c'est à vous d'éviter une double réservation du local physique réel.

#### Voir aussi

- [Site](#page-glossary.site)
- [Campus](#page-glossary.campus)
- [Spécialisation de salle](#page-glossary.classroom-specialization)
- [Multi-salles](#page-glossary.multi-room)
- [Grande salle](#page-glossary.large-room)
- [Ressource](#page-glossary.resource)

<a id="page-glossary.lesson"></a>

### Séance / Leçon

*Source: `help/fr/glossary/lesson.md` · id: glossary.lesson · Updated: 2026-06-13*

*Aussi appelé : créneau · vacation · intervention*

Une **séance** (ou *séance de cours*) est l'unité planifiée posée sur la
grille d'un emploi du temps : c'est elle que vous placez, déplacez,
verrouillez, modifiez, annulez ou remplacez. Une séance porte :

- une **classe** ou un [groupe](#page-glossary.group) (le public),
- une **matière** ([subject](#page-glossary.subject)),
- un ou plusieurs **professeurs** ([co-enseignement](#page-glossary.co-teaching)),
- une ou plusieurs **salles** (voir [multi-salles](#page-glossary.multi-room)),
- une ou plusieurs **ressources** (vidéoprojecteur mobile, valise tablettes…),
- une **durée** (généralement 1 ou 2 unités de temps de la grille du site),
- éventuellement un **type** (TD, TP, CM, examen, etc., défini dans
  Créer),
- éventuellement un **mémo** (commentaire libre, avec restriction de
  publication : administrateurs seulement, administrateurs + professeurs,
  ou tout le monde).

#### Séance ou cours ?

L'interface d'Omniscol dit « séance » pour l'unité posée sur la grille.
Le **[cours](#page-glossary.course)** reste le mot juste pour l'enseignement
lui-même — la matière enseignée à une classe, avec son volume et ses
attributs : on parle du cours d'anglais, des heures de cours, des journées
de cours, et un même cours donne lieu à une ou plusieurs séances dans
l'EDT. Le libellé Type de cours et la notion de
[cours complexes](#page-core-concepts.complex-lessons) conservent eux aussi
le mot « cours ».

#### Vocabulaire selon le contexte

- **Séance** — terme de l'interface pour l'unité planifiée, quel que
  soit le type d'établissement.
- **Leçon** — synonyme courant dans le primaire et le secondaire.
- **Intervention** — terme usuel de l'enseignement supérieur : l'intervenant
  réalise une intervention (usage repris par les connecteurs Auriga et Aurion).
- **Créneau** — désigne plutôt l'emplacement horaire sur la grille que
  la séance qui l'occupe.
- Une **vacation** désigne une séance assurée par un intervenant vacataire
  (par opposition à un permanent) ; ce n'est pas un type de cours différent,
  c'est juste l'intervenant qui change.

#### Séances simples, cours complexes

Une séance simple = un public, un professeur, une salle, à un créneau.

Les **cours complexes** combinent plusieurs séances :

- **[Concaténés](#page-glossary.concatenated-lessons)** — deux séances qui se
  suivent (un TP de 2h = un TP de 1h concaténé avec un autre TP de 1h).
- **[Associés](#page-glossary.associated-lessons)** — alternance de groupes
  sur deux séances consécutives (groupe A en bio puis en physique, groupe B
  en physique puis en bio).
- **[Alternés](#page-glossary.alternate-lessons)** — séances qui ne reviennent
  qu'une semaine sur deux (semaine A vs semaine B), une semaine sur trois,
  etc. Configuré dans Enregistrer.

#### Séances et classes hors grille horaire

Par défaut, les séances s'alignent sur les créneaux de la grille horaire
du site. Mais Omniscol gère aussi les séances qui n'y rentrent pas (un
examen de 2h commençant à 10h20 sur une grille de pas 50 min). Voir
[séances de cours et classes hors grille](#page-timetables.off-grid-lessons).

#### Voir aussi

- [Cours](#page-glossary.course)
- [Type de cours (TD, TP, CM…)](#page-glossary.lesson-type)
- [Statut d'une séance](#page-glossary.lesson-status)
- [Modalité d'une séance](#page-glossary.lesson-modality)
- [Matière](#page-glossary.subject)
- [Cours complexes](#page-core-concepts.complex-lessons)
- [Multi-salles](#page-glossary.multi-room)

<a id="page-glossary.staffing"></a>

### Service du personnel

*Source: `help/fr/glossary/staffing.md` · id: glossary.staffing · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13*

> **Option: Service du personnel**

*Aussi appelé : planning de surveillance · grille de surveillance · grille d'encadrement*

Le **Service du personnel** planifie le **personnel par tâches**
plutôt que par cours. Il a été conçu à l'origine pour la vie scolaire :
équipes AED, CPE, surveillants et personnels équivalents qui couvrent
au fil de la journée la cour, l'accueil, les couloirs, le CDI, le
réfectoire, les sorties EPS, les permanences, etc.

Le module gère également :

- la **surveillance d'examens** (sessions de partiels, bac,
  concours),
- les **encadrements ponctuels** (sorties, voyages, conseils de
  classe),
- les **pédagogies actives** (Montessori) où les professeurs sont
  planifiés par activité plutôt que par cours.

#### Modèle de données

- **Tâches** = besoins à pourvoir, définis par lieu + créneau +
  nombre de personnes + liste éventuelle du personnel autorisé.
- **Grille** = ensemble des tâches sur une plage de dates, avec
  granularité au quart d'heure typiquement.
- **Affectation** = associer un membre du personnel à une case de la
  grille.
- **Tableau de service** = vue par personne de ses tâches.

#### Indépendance vis-à-vis des cours

Le Service du personnel peut s'utiliser :

- en **complément** des EDT pédagogiques (les tâches AED
  s'ajoutent aux cours dans le compte) ;
- en **offre autonome**, sans gestion d'EDT pédagogique.

#### Rôle Personnel

Le rôle **Personnel** est conçu pour l'équipe de vie scolaire (CPE,
AED, surveillants, appariteurs) : accès au Service du personnel, à ses
propres absences et à son planning personnel ; pas d'accès à la
configuration globale.

Il peut être cumulé avec le rôle Professeur quand une même personne est
à la fois enseignante et planifiée dans le Service du personnel. Voir
[Utilisateurs et rôles](#page-admin.users-and-roles).

#### Voir aussi

- [Vue d'ensemble du Service du personnel](#page-staffing.overview)
- [Construire une grille de service](#page-staffing.building-grids)
- [Définir les tâches à couvrir](#page-staffing.assignments)
- [Affecter le personnel](#page-staffing.planner)
- [Tableaux de service](#page-staffing.roster)

<a id="page-glossary.site"></a>

### Site

*Source: `help/fr/glossary/site.md` · id: glossary.site · Updated: 2026-05-10*

*Aussi appelé : lieu · bâtiment principal · antenne*

Un **site** dans Omniscol représente un lieu physique où ont lieu des
cours. Un site héberge des [salles](#page-glossary.classroom) et des
[ressources](#page-glossary.resource).

Ne le confondez pas avec le [campus](#page-glossary.campus), qui est une
notion organisationnelle : implantation, faculté, pôle ou regroupement
interne. Le site porte les horaires, les salles et les temps de trajet ;
le campus sert plutôt à classer et filtrer.

Chaque emploi du temps a au moins un site. Si tous vos bâtiments sont
au même endroit géographique, un seul site suffit. Si votre établissement
est multi-sites avec des intervenants ou des élèves qui se déplacent,
créez autant de sites que nécessaire — et **renseignez le temps de trajet
entre eux**, sinon le solveur risque de téléporter vos professeurs ou vos élèves.

#### Grille horaire au niveau du site

Chaque site porte sa propre **grille horaire** (heures de cours, pauses,
déjeuner, fermetures). Elle est devinée automatiquement à partir des
informations saisies, mais à personnaliser en ajoutant les pauses, la
pause méridienne, les fermetures (mercredi après-midi, samedi).

#### Cas pratique : deux sites virtuels pour un même lieu

Configuration parfois utile (mais rare) : créer deux « sites virtuels »
pour un lieu physique unique partagé entre deux entités (collège +
lycée) qui n'ont pas la même grille horaire mais ont des professeurs en commun.
Le temps de trajet entre les deux sites virtuels est alors zéro. Attention
à dupliquer les salles partagées dans les deux sites et à renseigner des
horaires d'ouverture exclusifs (cf. [salle](#page-glossary.classroom)).

#### Quand préférer deux comptes plutôt que deux sites

Si deux établissements distincts n'ont **aucun intervenant en commun** (ou si les rares
professeurs communs sont affectés séquentiellement à un site puis à l'autre
sur des jours bien définis), il est souvent plus simple d'utiliser deux
comptes Omniscol séparés. Les sites multiples s'imposent dès qu'il y a
une vraie circulation des intervenants ou des élèves à modéliser.

En **Premium**, une autre option est de publier **deux emplois du temps
actifs simultanément** sur le même compte (voir
[Plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)), correspondant chacun à un
site, plutôt que de configurer deux sites dans un même EDT.

Que ce soit avec plusieurs comptes ou plusieurs EDT en parallèle, il est possible
de partager les occupations des professeurs et des salles, avec une détection de
conflits croisés (qui peut être désactivée par le planificateur). S'il s'agit de
plusieurs comptes, il faut se rapprocher de l'équipe d'Omniscol pour configurer
le lien entre eux. Seuls les emplois du temps opérationnels, publiés, servent
de source pour déterminer les occupations des entités communes.

#### Voir aussi

- [Salle](#page-glossary.classroom)
- [Ressource](#page-glossary.resource)
- [Campus](#page-glossary.campus)
- [Multi-sites pour le supérieur](#page-higher-ed.multi-site)

<a id="page-glossary.solver"></a>

### Solveur / Algorithme de génération automatique

*Source: `help/fr/glossary/solver.md` · id: glossary.solver · Updated: 2026-06-13*

Le **solveur** d'Omniscol calcule automatiquement le placement des
séances d'un EDT [hebdomadaire](#page-glossary.weekly-timetable),
[cyclique](#page-glossary.cyclic-timetable) ou
[calendrier](#page-glossary.calendar-mode). Il place les séances créées qui
ne sont pas encore positionnées, peut déplacer les séances déjà
positionnées si cela améliore l'EDT, et conserve les séances
verrouillées à leur place.

#### Comment ça fonctionne

Quand vous lancez une génération, Omniscol démarre un environnement de
calcul dédié et parallélisé. Il n'y a pas de file d'attente à gérer côté
école ; l'initialisation prend souvent autour d'une dizaine de secondes
avant les premiers calculs visibles. Le résultat dépend de la qualité
des données saisies : sites, salles, professeurs, groupes, volumes
horaires, disponibilités et incompatibilités. Plus les contraintes sont nombreuses
ou contradictoires, plus la génération peut être longue ou produire un
résultat partiel.

Le moteur est une IA d'optimisation **métaheuristique Monte-Carlo
neuro-symbolique** : il combine recherche stochastique, règles métier
symboliques et scoring des contraintes. Le point important est
opérationnel : le solveur est conçu pour des cas très contraints, tout
en signalant les situations impossibles plutôt que de masquer les
conflits.

#### Contraintes strictes

Le solveur respecte strictement les contraintes qui rendraient l'EDT
invalide :

- un professeur ne peut pas être à deux endroits en même temps ;
- une classe ne peut pas suivre deux séances en même temps, sauf cas
  prévu par des groupes en partition ;
- les disponibilités et contraintes de niveau **indisponible** bloquent le
  placement ;
- une salle standard ne peut pas accueillir deux séances au même moment ;
- une grande salle peut accueillir plusieurs séances seulement dans les
  limites de capacité et de nombre de classes configurées ;
- les salles spécialisées, capacités, ressources matérielles et trajets
  inter-sites doivent rester compatibles ;
- une séance verrouillée conserve sa position.

#### Contraintes d'optimisation

Les contraintes souples servent à noter et améliorer les solutions
trouvées. Elles ne sont pas ignorées : elles deviennent des malus que le
solveur cherche à réduire.

Exemples fréquents :

- disponibilités ou contraintes **indésirables** pour un professeur, une salle,
  une matière, un groupe ou une classe ;
- incompatibilités pédagogiques entre matières, par exemple éviter un
  TP avant le cours correspondant, éviter le sport juste après un cours
  très dense, ou imposer l'ordre d'une progression ;
- éviter d'avoir deux fois la même matière dans la même journée pour
  une classe ;
- minimum ou maximum d'heures de cours par jour ou par semaine ;
- équilibre des journées ;
- réduction des trous dans les EDT des classes et des professeurs ;
- nombre de jours de présence des professeurs, selon les usages de
  l'établissement ou du pays.

La recherche d'une solution valide est la première étape. L'optimisation
des malus peut ensuite devenir la partie la plus longue du calcul.

#### Disponibilité

- **EDT hebdomadaires** — disponible.
- **EDT cycliques** — disponible.
- **EDT calendriers** — disponible avec des séances datées et une plage
  de dates.

#### Que faire si la génération échoue

Si aucune solution complète n'est trouvée, Omniscol conserve le meilleur
EDT calculé et laisse les séances impossibles à placer dans la liste des
post-its non positionnés. Vous pouvez alors inspecter l'EDT partiel,
lire le diagnostic et corriger les contraintes.

Causes fréquentes :

- disponibilités trop restrictives (un professeur n'a aucun créneau libre compatible),
- pas assez de salles, ou pas de salle spécialisée disponible,
- alignement incohérent (volumes horaires différents entre les groupes
  alignés),
- incompatibilités trop nombreuses ou trop strictes,
- effectif théorique de la classe > capacité de toutes les salles
  candidates.

Voir [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation).

#### Forcer le placement d'une séance

Vous pouvez **verrouiller** la position d'une séance avant de relancer
la génération : le solveur ne la déplace alors plus, mais ajuste les
autres autour. Pratique pour ancrer les séances « immuables »
(interventions extérieures fixées par contrat, examens datés, etc.).

#### Voir aussi

- [EDT hebdomadaire](#page-glossary.weekly-timetable)
- [Disponibilités](#page-glossary.wishes)
- [Diagnostic et conflits](#page-glossary.conflict)
- [Génération automatique](#page-timetables.generation)

<a id="page-glossary.classroom-specialization"></a>

### Spécialisation de salle

*Source: `help/fr/glossary/classroom-specialization.md` · id: glossary.classroom-specialization · Updated: 2026-05-10*

*Aussi appelé : type de salle · salle spécialisée · salle dédiée matière*

Une **spécialisation de salle** indique qu'une salle est dédiée à un
certain type d'activité : laboratoire de chimie, salle informatique,
gymnase, salle multimédia, salle de devoirs surveillés, atelier d'art,
studio de musique, etc.

C'est un champ **libre** — vous créez les spécialisations qu'il vous
faut, avec votre propre nomenclature. Pas de liste fermée imposée par
Omniscol.

#### Comportement du solveur

Quand une matière requiert une spécialisation, le solveur n'affecte
**que** les salles qui portent cette spécialisation. Une salle de
TP de chimie ne sera jamais utilisée pour un cours de littérature
si vous avez requis « chimie » sur la matière TP.

Forcer une affectation incohérente (donner manuellement à un cours
de chimie une salle qui n'a pas la spécialisation chimie) **ne
bloque pas** mais affiche une alerte.

#### Trier ou supprimer une spécialisation

Une spécialisation existe tant qu'elle est utilisée par au moins une
salle. Pour la supprimer, retirez-la de toutes les salles qui la
portent — au prochain enregistrement, elle disparaît du référentiel.

Pour **renommer**, créez la nouvelle spécialisation avec le bon nom,
remplacez-la sur les salles, et l'ancienne disparaîtra automatiquement
(sous réserve qu'elle ne soit plus référencée nulle part, y compris
côté matières).

#### Voir aussi

- [Salle](#page-glossary.classroom)
- [Matière](#page-glossary.subject)
- [Spécialisations de salles](#page-core-concepts.classroom-specializations)

<a id="page-glossary.lesson-status"></a>

### Statut d'une séance

*Source: `help/fr/glossary/lesson-status.md` · id: glossary.lesson-status · Plan: premium · Updated: 2026-06-25*

> **Premium**

*Aussi appelé : statut de séance · statut de cours · planifié · brouillon · séance annulée · séance réalisée*

> _Premium_

Sur les comptes **Premium**, le **Statut** indique où en
est une [séance](#page-glossary.lesson) dans le cycle de planification. Il se
règle séance par séance — depuis l'icône Statut —
ou **en masse** depuis le mode listing. Quatre valeurs :

- **Planifié** — État standard de la séance positionnée.
  C'est l'état d'une séance ordinaire, posée sur la grille.
- **Brouillon** — séance en préparation, **ignorée par la
  génération automatique** et les **tableaux de bord**. Pratique pour préparer
  une séance sans encore l'imposer à l'emploi du temps ni au
  [solveur](#page-glossary.solver).
- **Annulé** — la séance reste **affichée comme
  annulée** (conservée pour mémoire) mais est elle aussi **ignorée par la
  génération automatique** et les **tableaux de bord**.
- **Réalisé** — la séance est marquée **réalisée**,
  ce qui l'intègre avec cette précision au **tableau de bord** des
  professeurs, pour la **facturation**.

#### Affichage

Lorsqu'elles sont affichées sur la grille de planning, ces séances se
reconnaissent à leur rendu :

- une séance **Brouillon** porte un **liseré orange en
  pointillés** et reste légèrement estompée ;
- une séance **Annulé** est **barrée** et fortement
  estompée — elle redevient lisible au survol, ce qui permet de la garder
  pour mémoire sans encombrer la grille.

#### Effet sur la génération

Les séances **Brouillon** et
**Annulé** sont mises de côté par le
[solveur](#page-glossary.solver) : il ne les place pas, et elles ne pèsent
pas dans les conflits (occupation des salles, collisions de professeurs,
capacités). Les séances **Planifié** restent les
séances réelles que la génération positionne.

#### « Réalisé » : uniquement en mode calendrier

Le statut **Réalisé** n'est proposé que sur les
emplois du temps de type **[calendrier](#page-glossary.calendar-mode)** : c'est
là, sur des séances datées, que marquer une séance comme effectivement
assurée a un sens. Il alimente alors le **suivi des heures réellement
faites par les professeurs** (tableau de bord des professeurs) et leur
**facturation**. Sur un emploi du temps hebdomadaire ou cyclique, ce
statut n'apparaît pas.

#### Voir aussi

- [Édition d'une séance de cours](#page-timetables.lesson-edit)
- [Modalité](#page-glossary.lesson-modality)
- [Séance / Leçon](#page-glossary.lesson)
- [Mode calendrier](#page-glossary.calendar-mode)

<a id="page-glossary.dashboard"></a>

### Tableau de bord

*Source: `help/fr/glossary/dashboard.md` · id: glossary.dashboard · Updated: 2026-05-18*

*Aussi appelé : dashboard · statistiques · indicateurs*

Le module **Tableau de bord** fournit des statistiques
calculées sur l'EDT effectif (séances positionnées, absences prises en
compte, remplacements appliqués) sur une période choisie : semaine,
mois, année scolaire, ou plage de dates personnalisée.

#### Indicateurs disponibles

Les statistiques sont organisées par axes d'analyse : professeurs,
salles, ressources, matières, classes et élèves. La page complète
du module détaille les indicateurs disponibles pour chaque axe.

#### Cas d'usage

- **Reporting RH** — relevé des heures enseignées pour la paie, les
  certifications, les accréditations.
- **Optimisation salles** — détecter les salles sous-utilisées ou
  surchargées.
- **Contrôle ressources** — vérifier l'utilisation effective du
  matériel mobile.
- **Audit pédagogique** — vérifier que tous les volumes prévus ont
  bien été dispensés.

#### Export

Le bouton Imprimer ouvre un tableau qu'on peut
copier-coller, imprimer, ou exporter en CSV pour un traitement
externe (Excel, Power BI, etc.).

#### Calcul

Important : le Tableau de bord travaille sur l'**EDT opérationnel** (les
séances réellement positionnées et publiées, fusionnant
[plusieurs EDT actifs en parallèle](#page-timetables.multiple-active-timetables)
le cas échéant) et
**tient compte des absences validées et des remplacements**. C'est
un calcul de réalité, pas de configuration prévisionnelle.

#### Voir aussi

- [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters)
- [Statistiques professeurs](#page-dashboard.teachers)
- [Statistiques salles](#page-dashboard.classrooms)
- [Statistiques matières](#page-dashboard.subjects)
- [Statistiques classes](#page-dashboard.classes)

<a id="page-glossary.lesson-type"></a>

### Type de cours

*Source: `help/fr/glossary/lesson-type.md` · id: glossary.lesson-type · Updated: 2026-05-10*

*Aussi appelé : CM · TD · TP · cours magistral · travaux dirigés · travaux pratiques*

Un **type de cours** qualifie la modalité pédagogique d'une séance.
Exemples canoniques :

- **CM** — cours magistral,
- **TD** — travaux dirigés,
- **TP** — travaux pratiques,
- **Examen** — épreuve évaluée,
- **Conférence** — invitation extérieure,
- **Atelier**, **Séminaire**, **Forum**, **Soutenance**…

Les types de cours sont définis au niveau de l'école dans
Créer. Vous pouvez en créer autant que votre
nomenclature pédagogique l'exige (les écoles supérieures ont parfois
25-30 types).

#### Couplage matière + type

Un type de cours s'attribue à un cours, en complément de sa
[matière](#page-glossary.subject). Le couple `(matière, type)` est traité
comme un identifiant indépendant : par exemple, dans les statistiques
ou les filtres, le « cours de maths » et le « TD de maths » apparaissent
séparément.

Si vous voulez requêter sur les deux à la fois (sans distinction de
type), utilisez un filtre ouvert ne précisant pas le type.

#### Filtrage et affichage

- **Filtre dans le module EDT** — sélection d'un type pour ne voir que
  les TP, ou que les CM.
- **Statistiques** — décompte des heures de TD vs TP vs CM par classe
  ou par professeur.
- **Affichage** — couleur ou marqueur visuel par type sur la grille,
  selon les paramètres d'affichage.

#### Voir aussi

- [Cours](#page-glossary.course)
- [Matière](#page-glossary.subject)
- [Séance / Leçon](#page-glossary.lesson)
- [Configurer les types de cours](#page-admin.lesson-types)

<a id="page-glossary.holidays"></a>

### Vacances

*Source: `help/fr/glossary/holidays.md` · id: glossary.holidays · Updated: 2026-06-26*

*Aussi appelé : congés · fériés · vacances scolaires*

Les **vacances** sont des périodes de fermeture de l'établissement
rattachées à une [année scolaire](#page-glossary.school-year) : vacances
scolaires, ponts et jours fériés. Chacune porte un nom, une date de début
et une date de fin.

À la création d'une année scolaire, Omniscol peut proposer l'import des
vacances communes du pays configuré, lorsque des données existent pour la
plage choisie. La liste se complète et s'ajuste ensuite manuellement.

#### Effet sur l'emploi du temps

L'effet d'une période de vacances dépend du type d'emploi du temps :

- **EDT récurrent (hebdomadaire ou cyclique)** : à la publication, les
  vacances annulent les séances des journées concernées — les cours
  récurrents n'ont pas lieu ces jours-là et les statistiques en tiennent
  compte.
- **EDT calendrier** : une séance peut être positionnée sur un jour de
  vacances, mais cela crée un conflit ; la génération automatique se
  réserve alors le droit de repositionner cette séance si elle n'est pas
  verrouillée.

Les vacances décrivent une fermeture **générale** de l'établissement. Pour
neutraliser une période sur un périmètre plus restreint :

- une [absence de classe](#page-absences.class-and-student-absences)
  retire une classe sur une période donnée ;
- en EDT calendrier, les [fenêtres de dates](#page-glossary.date-windows)
  restreignent la période d'activité d'un cours précis.

#### Où les configurer

Les vacances se gèrent par année scolaire, dans les
[années scolaires](#page-admin.school-year), une par une ou en tableau.

#### Voir aussi

- [Année scolaire](#page-glossary.school-year)
- [Fenêtre de dates](#page-glossary.date-windows)
- [Années scolaires](#page-admin.school-year)

<a id="page-glossary.external-teacher"></a>

### Vacataire / Intervenant externe

*Source: `help/fr/glossary/external-teacher.md` · id: glossary.external-teacher · Updated: 2026-06-13*

*Aussi appelé : intervenant occasionnel · prof externe · visiting professor*

Un **vacataire** (ou *intervenant externe*, *visiting professor*, *expert*
selon les contextes) est un professeur dont la relation contractuelle avec
l'établissement est temporaire ou occasionnelle. Du point de vue du
solveur, un vacataire est un [professeur](#page-glossary.teacher) comme un
autre — mêmes disponibilités, mêmes affectations.

La distinction est principalement **administrative** :

- contrat court (à l'heure, à la séance, à la mission),
- volume d'heures plus restreint que les permanents,
- utilisateur souvent pas hébergé sur les mêmes systèmes que les permanents
  (e-mail différent, pas d'accès aux mêmes outils internes).

> _Premium_

Le marqueur dédié Professeur externe, coché sur la fiche de
l'utilisateur, est réservé aux comptes Premium. Il sert à identifier
explicitement les intervenants externes et alimente l'affichage
spécifique décrit ci-dessous.

#### Affichage spécifique

Une icône [user-tie] distingue les vacataires des permanents dans certains écrans
(notamment l'infobulle de séance et la vue liste des EDT). Sur la grille
horaire principale, l'affichage par défaut ne distingue pas pour des
raisons de place, mais l'information reste lisible dans l'infobulle au
survol.

#### Cas particulier : visiting professor pour quelques séances

Pour une séance ponctuelle où un visiting professor co-anime avec
l'intervenant principal sans alterner, voir
[co-enseignement](#page-glossary.co-teaching). Pour une alternance hebdomadaire
de deux intervenants sur le même créneau, voir
[cours alternés](#page-glossary.alternate-lessons).

#### Voir aussi

- [Professeur](#page-glossary.teacher)
- [Co-enseignement](#page-glossary.co-teaching)
- [Intervenants externes dans le supérieur](#page-higher-ed.external-faculty)

---

<a id="chapter-index"></a>

## Index

### A

- **Absence** — [Définition](#page-glossary.absence) · [Déclarer une absence](#page-absences.declaring) · [Politiques de remplacement](#page-absences.substitution-policies) · [Statistiques étudiants et ressources](#page-dashboard.students-resources) · [Statistiques professeurs](#page-dashboard.teachers) · [Vue d'ensemble du module Absences](#page-absences.overview)
- **Alignement de groupes** — [Définition](#page-glossary.alignment) · [Alignements de groupes](#page-core-concepts.alignments) · [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups) · [Groupes de groupes](#page-core-concepts.groups-of-groups) · [Modèle de données complet](#page-integrations.data-model-full) · [Vue d'ensemble](#page-k12.overview)
- **Année scolaire** — [Définition](#page-glossary.school-year) · [Configurer le compte de l'école](#page-getting-started.setup-school) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Organisation des données](#page-core-concepts.data-model) · [Paramètres généraux](#page-admin.parameters) · [Prérequis](#page-timetables.prerequisites) · [Publier (activer) un emploi du temps](#page-timetables.publication) · [Visite guidée](#page-getting-started.onboarding-tour)

### C

- **Campus** — [Définition](#page-glossary.campus) · [Conflits et diagnostic](#page-timetables.conflicts) · [Créer les classes et leurs groupes](#page-timetables.creating-classes) · [Domaines](#page-admin.planning-domains) · [Paramètres avancés et personnalisation](#page-admin.advanced-parameters) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- **Classe** — [Définition](#page-glossary.class) · [Architecture et rôles](#page-overview.architecture-and-roles) · [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups) · [Créer les classes et leurs groupes](#page-timetables.creating-classes) · [Domaines](#page-admin.planning-domains) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Organisation des données](#page-core-concepts.data-model) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Statistiques classes](#page-dashboard.classes) · [Visite guidée en cinq minutes](#page-overview.quick-tour)
- **Co-enseignement** — [Définition](#page-glossary.co-teaching) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Cours complexes](#page-core-concepts.complex-lessons)
- **Conflit** — [Définition](#page-glossary.conflict) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Comportement de l'algorithme](#page-faq.solver-behavior) · [Conflits et diagnostic](#page-timetables.conflicts) · [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation) · [Génération automatique](#page-timetables.generation) · [Modifications ponctuelles](#page-schedules.ad-hoc-changes) · [Philosophie générale d'Omniscol](#page-overview.philosophy) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Verrouiller une séance](#page-timetables.lesson-lock)
- **Cours** — [Définition](#page-glossary.course)
- **Cours alternés** — [Définition](#page-glossary.alternate-lessons) · [Cours complexes](#page-core-concepts.complex-lessons) · [Paramètres généraux](#page-admin.parameters) · [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- **Cours associés** — [Définition](#page-glossary.associated-lessons) · [Cours complexes](#page-core-concepts.complex-lessons) · [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- **Cours concaténés** — [Définition](#page-glossary.concatenated-lessons) · [Cours complexes](#page-core-concepts.complex-lessons) · [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution)
- **Cours transverse** — [Définition](#page-glossary.transverse-course)

### D

- **Diagnostic** — [Définition](#page-glossary.diagnostic) · [Comportement de l'algorithme](#page-faq.solver-behavior) · [Conflits et diagnostic](#page-timetables.conflicts) · [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation) · [Génération automatique](#page-timetables.generation)
- **Disponibilités des professeurs (vœux)** — [Définition](#page-glossary.wishes) · [Affecter les professeurs](#page-timetables.assigning-teachers) · [Contraintes horaires (système général)](#page-core-concepts.time-constraints) · [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability) · [Groupes de groupes](#page-core-concepts.groups-of-groups) · [Modèle de données complet](#page-integrations.data-model-full)
- **Domaine de planification** — [Définition](#page-glossary.planning-domain) · [Domaines](#page-admin.planning-domains) · [Rôles personnalisés](#page-admin.customroles)

### E

- **EDT cyclique** — [Définition](#page-glossary.cyclic-timetable) · [Choisir le bon type d'EDT](#page-overview.timetable-modes) · [Création d'EDT](#page-faq.timetables)
- **EDT hebdomadaire** — [Définition](#page-glossary.weekly-timetable) · [Choisir le bon type d'EDT](#page-overview.timetable-modes) · [Comportement de l'algorithme](#page-faq.solver-behavior) · [Création d'EDT](#page-faq.timetables) · [Vue d'ensemble](#page-k12.overview) · [Vue d'ensemble du module](#page-timetables.overview)

### É

- **Élève / Étudiant / Apprenant** — [Définition](#page-glossary.student) · [Architecture et rôles](#page-overview.architecture-and-roles) · [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users) · [OneRoster](#page-integrations.oneroster) · [Préparer ses données pour un import massif](#page-getting-started.preparing-data) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Statistiques étudiants et ressources](#page-dashboard.students-resources) · [Utilisateurs et rôles](#page-admin.users-and-roles) · [Visite guidée](#page-getting-started.onboarding-tour)

### E

- **Emploi du temps** — [Définition](#page-glossary.timetable) · [Affichage des EDT](#page-schedules.schedule-display) · [Affichage et UX](#page-faq.display-and-ux) · [Choisir le bon type d'EDT](#page-overview.timetable-modes) · [Consulter et filtrer](#page-schedules.consult-and-filter) · [Création d'EDT](#page-faq.timetables) · [Domaines](#page-admin.planning-domains) · [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid) · [Paramètres généraux](#page-timetables.general-settings) · [Philosophie générale d'Omniscol](#page-overview.philosophy) · [Publier (activer) un emploi du temps](#page-timetables.publication) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Recherche et filtres](#page-core-concepts.search-and-filter) · [Séances hors grille](#page-timetables.off-grid-lessons) · [Statistiques professeurs](#page-dashboard.teachers) · [Statistiques salles](#page-dashboard.classrooms) · [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters) · [Visite guidée](#page-getting-started.onboarding-tour) · [Visite guidée en cinq minutes](#page-overview.quick-tour) · [Vue d'ensemble du module](#page-timetables.overview) · [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)

### F

- **Fenêtre de dates** — [Définition](#page-glossary.date-windows)

### G

- **Grande salle** — [Définition](#page-glossary.large-room) · [Attribution automatique des salles](#page-timetables.auto-room-assignment) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- **Groupe** — [Définition](#page-glossary.group) · [Alignements de groupes](#page-core-concepts.alignments) · [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups) · [Créer les classes et leurs groupes](#page-timetables.creating-classes) · [Domaines](#page-admin.planning-domains) · [Édition d'une séance de cours](#page-timetables.lesson-edit) · [Groupes de groupes](#page-core-concepts.groups-of-groups) · [Groupes libres](#page-core-concepts.free-groups) · [Hiérarchie de groupes](#page-core-concepts.group-hierarchy) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Partitions de classe](#page-core-concepts.class-divisions) · [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution) · [Séances hors grille](#page-timetables.off-grid-lessons) · [Statistiques classes](#page-dashboard.classes) · [Statistiques étudiants et ressources](#page-dashboard.students-resources)
- **Groupe de groupes** — [Définition](#page-glossary.groups-of-groups) · [Alignements de groupes](#page-core-concepts.alignments) · [Alignements et groupes de groupes](#page-timetables.alignments-and-groups-of-groups) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Groupes de groupes](#page-core-concepts.groups-of-groups) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Plans et options Omniscol](#page-overview.plans-and-options) · [Vue d'ensemble](#page-higher-ed.overview)
- **Groupe libre** — [Définition](#page-glossary.free-group) · [Groupes libres](#page-core-concepts.free-groups) · [Modèle de données complet](#page-integrations.data-model-full)

### I

- **iCal (export agenda)** — [Définition](#page-glossary.ical) · [Vue d'ensemble des intégrations](#page-integrations.overview)
- **Incompatibilité (entre matières)** — [Définition](#page-glossary.incompatibility) · [Contraintes horaires (système général)](#page-core-concepts.time-constraints)

### J

- **Jeton API** — [Définition](#page-glossary.api-token) · [API des séances](#page-integrations.lessons-api) · [Architecture](#page-integrations.architecture) · [Requêtage avancé](#page-integrations.advanced-queries) · [Sécurité et hébergement](#page-faq.security-and-hosting) · [Vue d'ensemble des intégrations](#page-integrations.overview)

### L

- **Lien de partage** — [Définition](#page-glossary.share-link) · [Architecture et rôles](#page-overview.architecture-and-roles) · [Sécurité et hébergement](#page-faq.security-and-hosting) · [Vue d'ensemble des intégrations](#page-integrations.overview)
- **Ligne de temps** — [Définition](#page-glossary.timeline) · [Ligne de temps et navigation temporelle](#page-core-concepts.timeline-navigation)

### M

- **Matière** — [Définition](#page-glossary.subject) · [Créer les classes et leurs groupes](#page-timetables.creating-classes) · [Domaines](#page-admin.planning-domains) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Organisation des données](#page-core-concepts.data-model) · [Préparer ses données pour un import massif](#page-getting-started.preparing-data) · [Prérequis](#page-timetables.prerequisites) · [Statistiques classes](#page-dashboard.classes) · [Statistiques matières](#page-dashboard.subjects) · [Visite guidée](#page-getting-started.onboarding-tour) · [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- **Modalité** — [Définition](#page-glossary.lesson-modality)
- **Mode calendrier** — [Définition](#page-glossary.calendar-mode) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Choisir le bon type d'EDT](#page-overview.timetable-modes) · [Création d'EDT](#page-faq.timetables) · [Plans et options Omniscol](#page-overview.plans-and-options) · [Vue d'ensemble](#page-higher-ed.overview) · [Vue d'ensemble du module](#page-timetables.overview)
- **Mode d'affichage de l'EDT** — [Définition](#page-glossary.schedule-view-mode)
- **Multi-salles** — [Définition](#page-glossary.multi-room) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Import massif des cours via tableur](#page-timetables.mass-import) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources) · [Vue d'ensemble](#page-higher-ed.overview)

### N

- **Niveau** — [Définition](#page-glossary.level) · [Domaines](#page-admin.planning-domains)

### P

- **Panneau d'affichage** — [Définition](#page-glossary.panel) · [Affichage et UX](#page-faq.display-and-ux) · [Modèle de données complet](#page-integrations.data-model-full)
- **Partition de classe** — [Définition](#page-glossary.class-division) · [Alignements de groupes](#page-core-concepts.alignments) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Classe, groupe, sous-groupe](#page-core-concepts.classes-and-groups) · [Créer les classes et leurs groupes](#page-timetables.creating-classes) · [Hiérarchie de groupes](#page-core-concepts.group-hierarchy) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Partitions de classe](#page-core-concepts.class-divisions) · [Vue d'ensemble](#page-k12.overview)
- **Professeur** — [Définition](#page-glossary.teacher) · [Affecter les professeurs](#page-timetables.assigning-teachers) · [Architecture et rôles](#page-overview.architecture-and-roles) · [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability) · [Domaines](#page-admin.planning-domains) · [Édition d'une séance de cours](#page-timetables.lesson-edit) · [Inviter et activer ses utilisateurs](#page-getting-started.inviting-users) · [Modèle de données complet](#page-integrations.data-model-full) · [OneRoster](#page-integrations.oneroster) · [Organisation des données](#page-core-concepts.data-model) · [Préparer ses données pour un import massif](#page-getting-started.preparing-data) · [Prérequis](#page-timetables.prerequisites) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Séances hors grille](#page-timetables.off-grid-lessons) · [Statistiques classes](#page-dashboard.classes) · [Statistiques matières](#page-dashboard.subjects) · [Statistiques professeurs](#page-dashboard.teachers) · [Utilisateurs et rôles](#page-admin.users-and-roles) · [Visite guidée](#page-getting-started.onboarding-tour) · [Visite guidée en cinq minutes](#page-overview.quick-tour) · [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- **Publication / Activation d'un EDT** — [Définition](#page-glossary.publication) · [Création d'EDT](#page-faq.timetables) · [Publier (activer) un emploi du temps](#page-timetables.publication) · [Visite guidée](#page-getting-started.onboarding-tour)

### R

- **Remplacement / Suppléance** — [Définition](#page-glossary.substitution) · [Modèle de données complet](#page-integrations.data-model-full) · [Politiques de remplacement](#page-absences.substitution-policies) · [Statistiques professeurs](#page-dashboard.teachers) · [Vue d'ensemble du module Absences](#page-absences.overview)
- **Ressource** — [Définition](#page-glossary.resource) · [Édition d'une séance de cours](#page-timetables.lesson-edit) · [Modèle de données complet](#page-integrations.data-model-full) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources) · [Statistiques étudiants et ressources](#page-dashboard.students-resources)

### S

- **Salle** — [Définition](#page-glossary.classroom) · [Attribution automatique des salles](#page-timetables.auto-room-assignment) · [Domaines](#page-admin.planning-domains) · [Édition d'une séance de cours](#page-timetables.lesson-edit) · [Import massif des cours via tableur](#page-timetables.mass-import) · [Préparer ses données pour un import massif](#page-getting-started.preparing-data) · [Recherche et filtres](#page-core-concepts.search-and-filter) · [Séances hors grille](#page-timetables.off-grid-lessons) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources) · [Statistiques matières](#page-dashboard.subjects) · [Statistiques salles](#page-dashboard.classrooms) · [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- **Séance / Leçon** — [Définition](#page-glossary.lesson) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Consulter et filtrer](#page-schedules.consult-and-filter) · [Domaines](#page-admin.planning-domains) · [Édition d'une séance de cours](#page-timetables.lesson-edit) · [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid) · [Import massif des cours via tableur](#page-timetables.mass-import) · [Modèle de données complet](#page-integrations.data-model-full) · [Modifications ponctuelles](#page-schedules.ad-hoc-changes) · [Organisation des données](#page-core-concepts.data-model) · [Positionnement manuel](#page-timetables.manual-placement) · [Préparer ses données pour un import massif](#page-getting-started.preparing-data) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Répartir les heures et créer les séances de cours](#page-timetables.hour-distribution) · [Séances hors grille](#page-timetables.off-grid-lessons) · [Verrouiller une séance](#page-timetables.lesson-lock) · [Visite guidée en cinq minutes](#page-overview.quick-tour)
- **Service du personnel** — [Définition](#page-glossary.staffing) · [Modèle de données complet](#page-integrations.data-model-full)
- **Site** — [Définition](#page-glossary.site) · [Attribution automatique des salles](#page-timetables.auto-room-assignment) · [Domaines](#page-admin.planning-domains) · [Grille horaire, créneaux et durées](#page-core-concepts.timetable-grid) · [Modèle de données complet](#page-integrations.data-model-full) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- **Solveur** — [Définition](#page-glossary.solver) · [Comportement de l'algorithme](#page-faq.solver-behavior) · [Contraintes horaires (système général)](#page-core-concepts.time-constraints) · [Création d'EDT](#page-faq.timetables) · [Diagnostiquer une génération qui échoue](#page-timetables.diagnosing-generation) · [Disponibilités des professeurs](#page-core-concepts.wishes-and-availability) · [Génération automatique](#page-timetables.generation) · [Philosophie générale d'Omniscol](#page-overview.philosophy) · [Positionnement manuel](#page-timetables.manual-placement) · [Qu'est-ce qu'Omniscol](#page-overview.what-is-omniscol) · [Verrouiller une séance](#page-timetables.lesson-lock)
- **Spécialisation de salle** — [Définition](#page-glossary.classroom-specialization) · [Attribution automatique des salles](#page-timetables.auto-room-assignment) · [Cas particuliers et configurations avancées](#page-faq.edge-cases) · [Modèle de données complet](#page-integrations.data-model-full) · [Sites, grilles horaires, salles, ressources](#page-timetables.sites-rooms) · [Sites, salles, ressources](#page-core-concepts.sites-rooms-resources)
- **Statut** — [Définition](#page-glossary.lesson-status)

### T

- **Tableau de bord** — [Définition](#page-glossary.dashboard) · [Statistiques classes](#page-dashboard.classes) · [Statistiques étudiants et ressources](#page-dashboard.students-resources) · [Statistiques matières](#page-dashboard.subjects) · [Statistiques professeurs](#page-dashboard.teachers) · [Statistiques salles](#page-dashboard.classrooms) · [Utiliser les tableaux et graphiques](#page-dashboard.tools-and-filters) · [Vue d'ensemble du module Tableau de bord](#page-dashboard.overview)
- **Type de cours** — [Définition](#page-glossary.lesson-type) · [Modèle de données complet](#page-integrations.data-model-full) · [Organisation des données](#page-core-concepts.data-model)

### V

- **Vacances** — [Définition](#page-glossary.holidays)
- **Vacataire** — [Définition](#page-glossary.external-teacher) · [Affecter les professeurs](#page-timetables.assigning-teachers) · [Cas d'usage enseignement supérieur](#page-faq.higher-ed-cases) · [Vue d'ensemble](#page-higher-ed.overview)
