Fil de nouveautés — détails techniques
Description et fonctionnalités de ce module : Fil de nouveautés.
Couverture de tests
1 scénario(s) e2e couvrent ce module — dossier apps/open-ent-e2e/src/modules/17_fil_nouveautes.
1 test(s) e2e dans 1 scénario(s) — voir le détail
Fil de nouveautés 01_acces_et_chargement_du_fil.spec.ts
- accès et chargement du fil
➡️ Statut dans le dashboard E2E · Résultats détaillés
La page « toutes les notifications » du dashboard (/dashboard/home/notifications) est en outre
couverte par apps/dashboard-e2e/src/tests/13_notifications_page.spec.ts (rendu du fil et des dates
importantes, « Tout marquer comme lu », lien interne de la cloche), exécutée sous le profil chef.
Intégration dashboard (page plein écran)
Sur Open ENT v3, le fil de nouveautés est intégré au dashboard plutôt que servi par l'ancienne application timeline. L'expérience repose sur le cœur timeline entcore existant, enrichie côté dashboard sans patch du backend.
| Aspect | Mise en œuvre |
|---|---|
| Page | apps/dashboard/src/app/home/notifications/page.tsx — onglets Fil de nouveautés (paginé, filtres par application, regroupement par période) et Dates importantes. |
| Hook | src/hooks/useNotifications.ts — pagination via @openent/ts-client (loadNotifications/hasMorePage), filtre preferences.type, showMine, polling optionnel (badge de la cloche). |
| État de lecture | entcore ne marque jamais une notification « lue » côté serveur (markEventsAsRead est inutilisé). L'état « non lu » est dérivé d'un horodatage lastRead persisté en préférence utilisateur /userbook/preference/timelineRead ; « Tout marquer comme lu » avance cet horodatage. |
| Dates importantes | Agrégées côté dashboard : GET /api/notifications/agenda → GET /calendar/calendars puis GET /calendar/events/widget (événements dont endMoment ≥ maintenant). |
| Anniversaires (option) | GET /api/notifications/birthdays → GET /userbook/person/birthday (élèves de la classe, mois courant). Désactivés par défaut (opt-in), préférence dans timelineRead. |
| Routes proxy | src/app/api/notifications/{read-state,agenda,birthdays} (+ defaults, preferences, :id/discard existantes), authentifiées via buildOpenEntHeaders. |
Cette fonctionnalité est 100 % côté dashboard (frontend) : aucun module entcore n'est modifié, donc pas de tag/nexus/fat-jar. Le déploiement suit le cycle habituel du dashboard (build nx + image docker + rollout).
Conformité
Évaluation au référentiel Open ENT NG (module timeline).
| Maillon de la chaîne qualité | Référence |
|---|---|
| 🎯 Fonctionnalités attendues | fiche fonctionnelle |
| 🧪 Tests réalisés | couverture e2e |
| ✅ Tests de conformité | tableau de conformité |