Skip to main content

Forum

Pour :EnseignantÉlèveParent Niveaux :1er degré2nd degré

Le Forum est disponible en natif dans l'application mobile, ouvert depuis le lanceur « Mes apps » (famille Communication & collaboration, comme sur le portail web). Les discussions de l'établissement se lisent — et se poursuivent — depuis le téléphone, avec les vraies catégories partagées à l'utilisateur (module forum).

Trois niveaux, comme sur le web

  1. Catégories — celles dont l'utilisateur est propriétaire ou qui lui sont partagées (directement ou via un de ses groupes), les plus actives en tête ;
  2. Sujets d'une catégorie — titre, aperçu de la dernière contribution (auteur + début du message), nombre de messages et date de dernière activité ;
  3. Fil de discussion — les messages du plus ancien au plus récent, chacun avec la pastille d'initiales de son auteur, sa date, et son contenu mis en forme (le HTML de l'éditeur ENT est rendu tel quel, images comprises). Les messages de l'utilisateur connecté sont signalés (« Vous », liseré à la couleur de l'instance).

Le retour matériel remonte d'un niveau ; chaque niveau se rafraîchit en tirant vers le bas.

Catégories réellement partagées à l'enseignante
Sujets d'une catégorie (dernière contribution en aperçu)
Fil de discussion — HTML mis en forme, auteurs et dates réels

Les captures viennent de l'établissement de référence collège (Morlaix) : la catégorie Vie de la classe 501 et son sujet Sortie au musée de Morlaix sont de vraies données de l'instance de recette, partagées aux groupes de la classe.

Répondre depuis le mobile

Un composeur est présent au bas du fil : la réponse est envoyée au sujet (POST /forum/category/:id/subject/:sid/messages) puis le fil est rechargé. Le texte saisi est converti en HTML simple (un paragraphe par ligne, caractères échappés) — mêmes règles que la rédaction de la messagerie.

L'envoi peut être refusé par le serveur pour deux raisons légitimes, expliquées à l'utilisateur : l'absence du droit contribuer sur la catégorie (category.contrib), ou les horaires d'ouverture du forum (le module refuse les écritures hors plage, cf. SpaceOpeningHours).

Composeur de réponse au bas du fil

Parcours capturé en test e2e liveapps/mobile/e2e/lanceur/parcours-forum.yaml : compte enseignant réel (lilit.upreti001). Le test saisit une réponse sans l'envoyer, pour ne rien écrire sur l'instance.

Données réelles

  • Source : module forum. GET /forum/categories, puis GET /forum/category/:id/subjects et GET /forum/category/:id/subject/:sid/messages. Aucune donnée fabriquée.
  • Aperçu de la dernière contribution : le serveur renvoie les sujets avec leur dernier message seulement (projection $slice: -1) — l'application s'en sert directement, sans requête supplémentaire.
  • Droits : la lecture exige category.read, la contribution category.contrib ; le filtrage des catégories partagées est fait côté serveur, à partir des groupes de l'utilisateur.
  • Visibilité pilotée par les droits : le Forum n'apparaît dans « Mes apps » que si l'instance l'autorise à l'utilisateur.

Tests

  • Jest : mapping pur — catégories, sujets (aperçu du dernier message, compteur), fil trié du plus ancien au plus récent, marquage de mes messages, conversion du texte saisi en HTML (apps/mobile/__tests__/forum-mapping.test.ts).
  • e2e Maestro live : apps/mobile/e2e/lanceur/parcours-forum.yaml (connexion enseignant → « Mes apps » → Forum → catégorie → sujet → fil → composeur). Le test n'envoie pas la réponse : il ne crée aucune donnée sur l'instance.