Builder de ressources
Le Builder de ressources est l’outil back-office qui permet de gérer les ressources pédagogiques attachées à une formation : documents PDF, vidéos, fichiers à télécharger, liens externes, etc. C’est l’équivalent côté ressources de l’outil auteur côté contenus.

🧰 À quoi sert cet outil ?
Section intitulée « 🧰 À quoi sert cet outil ? »Pour une formation donnée, il permet de :
- Ajouter, supprimer, réordonner (drag-and-drop) une liste de ressources.
- Pour chaque ressource, définir un titre, un fichier uploadé ou une URL externe, et — éventuellement — un contenu lié (
linkedLeaf) qui rattache la ressource à un chapitre précis de l’arbre de la formation. - Copier d’un coup toutes les ressources d’une autre formation (utile pour démarrer une nouvelle formation à partir d’un patron existant).
L’outil sauvegarde le tout dans la formation courante via une version mineure ou majeure (selon la nature des changements).
🔗 Lien avec une formation
Section intitulée « 🔗 Lien avec une formation »Aujourd’hui — un snapshot dans le UserTraining
Section intitulée « Aujourd’hui — un snapshot dans le UserTraining »Les ressources sont stockées dans l’entité Training, dans un champ resources. Au moment où un apprenant démarre la formation, son UserTraining fige une copie (snapshot) de cet état.
Conséquence : modifier les ressources d’une formation n’a aucun effet sur les apprenants déjà inscrits. Seuls les apprenants qui démarreront après la modification verront la nouvelle version. Pour propager une mise à jour aux UserTraining existants, il faut aujourd’hui une intervention manuelle.
Évolution prévue — une entité dédiée
Section intitulée « Évolution prévue — une entité dédiée »À terme, les ressources deviendront une entité à part entière liée à la Training, exactement comme les contenus (Content) le sont aujourd’hui. Une modification d’une ressource sera alors propagée à tous les UserTraining existants, sans intervention manuelle, et les employés pourront mettre à jour les ressources d’une formation sans casser le suivi des apprenants en cours.
Cette page sera mise à jour le moment venu pour décrire le nouveau modèle.
📎 Champs d’une ressource
Section intitulée « 📎 Champs d’une ressource »
Chaque ressource possède :
- Titre (libre, requis) — ce qui est affiché à l’apprenant.
- Contenu lié (
linkedLeaf, optionnel) — voir la section dédiée plus bas. - Fichier OU lien externe (toggle exclusif) — voir la section suivante.
- Ordre — défini par drag-and-drop dans la liste, ne s’édite pas à la main.
📁 Fichier vs lien externe
Section intitulée « 📁 Fichier vs lien externe »Une ressource est soit un fichier, soit une URL externe — jamais les deux. Le switch « Fichier » bascule entre les deux modes.

| Mode | Stockage | Détails |
|---|---|---|
| Fichier | Bucket MinIO sous la clé resources/{productInternalId}/{nom-du-fichier} | Extensions contrôlées (PDF, images, vidéos, audio, tableurs, archives). Lien signé généré à la volée pour l’apprenant. |
| Lien externe | URL libre dans le champ url | Aucun téléchargement, ouverture dans un nouvel onglet côté apprenant. |
🌿 Le contenu lié (linkedLeaf)
Section intitulée « 🌿 Le contenu lié (linkedLeaf) »Pourquoi ce champ existe
Section intitulée « Pourquoi ce champ existe »Une ressource peut être rattachée à une feuille précise de l’arbre de la formation (un chapitre / un contenu) via son contentUuid. Ce rattachement n’est pas obligatoire — laisser le champ vide produit une ressource « globale » à la formation.
Le linkedLeaf produit deux comportements côté apprenant :
- Groupement par chapitre dans la fiche formation — toutes les ressources qui pointent vers une feuille du même chapitre sont regroupées sous le nom de ce chapitre.
- Déverrouillage progressif — tant que l’apprenant n’a pas marqué « complété » la feuille liée, la ressource reste verrouillée (icône cadenas, lien désactivé). Une ressource sans
linkedLeafest toujours déverrouillée.
Affichage dans la fiche formation (TrainingSumUp)
Section intitulée « Affichage dans la fiche formation (TrainingSumUp) »
Dans l’onglet « Ressources » de la fiche formation, on retrouve :
- En haut, les ressources sans contenu lié (globales).
- En dessous, un groupe par chapitre parent — chaque groupe est repliable et ne s’ouvre vraiment qu’une fois le chapitre lié complété par l’apprenant.
🚨 Contenu lié invalide (orphelin)
Section intitulée « 🚨 Contenu lié invalide (orphelin) »D’où ça vient
Section intitulée « D’où ça vient »Un linkedLeaf devient invalide (orphelin) quand l’UUID qu’il référence n’existe plus dans l’arbre courant. Cas typique : on supprime ou remplace une feuille dans l’arbre de la formation alors qu’une ressource y était attachée.
Détection côté builder
Section intitulée « Détection côté builder »
Le champ « Contenu lié » de la ressource concernée passe en erreur (rouge). Un message indique l’UUID orphelin et invite à choisir un nouveau contenu ou à vider le champ. Une option Invalide est ajoutée dans la liste déroulante pour visualiser explicitement l’état actuel.
Conséquence côté apprenant
Section intitulée « Conséquence côté apprenant »La ressource reste verrouillée définitivement : la feuille liée n’existe plus, donc la condition de complétion ne pourra jamais être satisfaite. L’apprenant ne pourra jamais accéder à la ressource tant que l’employé n’a pas corrigé le linkedLeaf.
Action attendue
Section intitulée « Action attendue »Trois options pour résoudre un contenu lié invalide :
- Réassigner la ressource à un autre contenu de l’arbre.
- Vider le champ « Contenu lié » — la ressource devient globale, déverrouillée pour tous, placée hors groupe.
- Supprimer la ressource si elle n’est plus pertinente.
📋 Copier les ressources d’une autre formation
Section intitulée « 📋 Copier les ressources d’une autre formation »
L’outil permet de copier en bloc toutes les ressources d’une autre formation :
- Sélectionner la formation source dans l’autocomplétion.
- Cliquer sur « Copier » — une modale de confirmation s’affiche.
- Valider : les ressources de la formation courante sont intégralement remplacées par celles de la source.
Attention : les linkedLeaf copiés depuis la formation source ne sont pas remappés sur l’arbre de la formation cible. Si les arbres diffèrent, la plupart des ressources copiées arriveront en état orphelin et devront être réassignées manuellement (cf. section précédente).
🔐 Conditions d’accès
Section intitulée « 🔐 Conditions d’accès »Outil réservé aux profils back-office (admin, gestion catalogue). Le rôle minimal exact est à confirmer avec l’équipe produit.