Skip to main content

Carnet de liaison — détails techniques

Fiche fonctionnelle

Description et fonctionnalités de ce module : Carnet de liaison.

Couverture de tests

2 scénarios e2e couvrent ce module — dossier apps/open-ent-e2e/src/modules/42_carnet_de_liaison. Le premier sert aussi de seed : il crée de vrais mots de liaison que l'espace parent (application mobile) consomme.

8 test(s) e2e dans 2 fichiers — voir le détail

Carnet de liaison — enseignant 01_carnet_de_liaison.spec.ts

  • accès au module
  • création de messages de liaison (seed)
  • liste des messages envoyés

Carnet de liaison — renvoi automatique 02_renvoi_automatique.spec.ts

  • paramétrage du renvoi automatique
  • composer un message avec renvoi automatique
  • suivi du renvoi automatique sur un message envoyé
  • relance manuelle : tous, ou parent par parent
  • suivi des accusés : noms des destinataires

Renvoi automatique des mots non consultés

Fonctionnalité ajoutée au module schoolbook (migration SQL 003-auto-reminders.sql).

  • Préférences enseignant : table schoolbook.reminder_settings (par expéditeur + établissement) — enabled, delay_hours (1–720), max_reminders (1–10). Exposées par GET/PUT /schoolbook/api/reminder-settings (workflow schoolbook.message.create).
  • Snapshot par message : à l'envoi, les colonnes auto_reminder, reminder_delay_hours, max_reminders sont figées sur la ligne schoolbook.messages depuis les préférences de l'enseignant (une valeur explicite dans la requête prime). reminder_count et last_reminder_at tracent les relances effectuées.
  • Worker planifié : ReminderWorker déclenché par un CronTrigger (config reminder-cron, par défaut horaire). Il balaie les messages dont le délai est dépassé, qui n'ont pas atteint le plafond de relances et qui ont encore des destinataires PENDING, puis renotifie ces destinataires (timeline schoolbook.liaison_reminder + push) et incrémente le compteur.
  • La relance manuelle (POST /schoolbook/api/messages/:id/remind) réutilise le même chemin de notification. Le corps accepte un recipientId optionnel : fourni → relance ce seul destinataire (parent par parent) ; absent → relance tous les destinataires PENDING.
  • Le suivi des réponses (GET /schoolbook/api/messages/:id/recipients) résout les identifiants de destinataires en noms via l'annuaire Neo4j (champ displayName, repli sur l'id) — y compris pour des parents qui ne se sont jamais connectés.

Les scénarios de rédaction/envoi s'exécutent sur l'établissement de référence cd16-primaire (E.P.PU-JULES FERRY-PONTIVY, classe de CE2) : ils requièrent les données primaire (élève + familles) absentes des autres environnements. Les captures de cette page en sont issues.

➡️ Statut dans le dashboard E2E · Résultats détaillés

Conformité

Évaluation au référentiel Open ENT NG (module schoolbook).

Maillon de la chaîne qualitéRéférence
🎯 Fonctionnalités attenduesfiche fonctionnelle
🧪 Tests réaliséscouverture e2e
✅ Tests de conformitétableau de conformité