Skip to main content

Établissements & structures — détails techniques

Fiche fonctionnelle

Description et usage : Établissements & structures.

Rangement des structures par académie

La vue arborescente s'appuie sur la hiérarchie de sous-structures d'Open ENT (relation Neo4j (:Structure)-[:HAS_ATTACHMENT]->(:Structure)). La mise en place de ce rangement est assurée par le script scripts/organize-structures-by-academy.mjs (dépôt open-ent-mods, Node ESM, sans dépendance).

Ce que fait le script

Constat : les établissements sont déjà regroupés par type via des conteneurs globaux (COLLEGE, LYCEE, PRIMAIRE, MATERNELLE) mais pas par académie. Le script crée le niveau académique manquant et y rattache ces conteneurs, sans déplacer le moindre établissement :

Académie de <Nom>
├── Collèges – <Nom> (= conteneur COLLEGE renommé)
├── Lycées – <Nom> (= conteneur LYCEE renommé)
└── DSDEN – <Nom> (niveau départemental, écoles)
├── Écoles élémentaires – <Nom> (= conteneur PRIMAIRE renommé)
└── Écoles maternelles – <Nom> (= conteneur MATERNELLE renommé)

Les collèges et lycées relèvent directement de l'académie (rectorat) ; les écoles maternelles et élémentaires relèvent de la DSDEN (DASEN).

Mécanismes (API officielle de l'annuaire, super-admin)

OpérationEndpoint
Créer un conteneurPOST /directory/school {name} (le feeder génère id/externalId, pose source=MANUAL et crée les ProfileGroups)
Renommer une structurePUT /directory/structure/:id {name}
Rattacher une sous-structurePUT /directory/structure/:enfant/parent/:parent (crée HAS_ATTACHMENT, avec garde anti-boucle)

Les libellés d'académie (academy) et les types sont lus dans Neo4j. Le script est idempotent (re-jouable sans effet de bord) et tourne en DRY-RUN par défaut ; ajouter --apply pour exécuter.

node scripts/organize-structures-by-academy.mjs            # simulation
node scripts/organize-structures-by-academy.mjs --apply # exécution

Variables d'environnement : ENT_URL, ENT_USER, ENT_PASSWORD, NEO4J_URL, ONLY_ACADEMY.

Mode « réutilisation »

Ce mode suppose une académie unique (réutilisation des conteneurs de type existants). Pour plusieurs académies, un mode « recréer par académie + déplacer les établissements » serait nécessaire. Les structures purement administratives (rectorat, inspections, services) restent au niveau racine.

Couverture de tests

La vue arborescence est couverte par les tests e2e du dashboard — dossier apps/dashboard-e2e/src/modules/03_admin.

Scénario e2e — voir le détail

Admin — gestion des structures 03_gestion_structures.spec.ts

  • liste des structures, recherche, détail, métriques
  • vue arborescence par académie (?view=tree)