elearning_portal est le nom de l’addon, donc du dossier de code qu’Odoo installe. Une formation est une donnée créée par cet addon : c’est un record du model elearning.module, par exemple « Bases du développement Odoo ». Dans la suite, le mot formation désigne cette donnée, jamais l’addon.
1. Vérifiez ce qui existe déjà
Dans Apps, vérifiez que Hello Odoo est installé et à jour. Ouvrez ensuite Notes de formation → Notes. Vous devez voir Bienvenue, Observer avant de modifier et Une base d’exercice.
Résultat attendu : l’addon training_hello contient déjà le model training.note, ses droits d’accès et ses données de départ. Ne recréez rien de tout cela dans le nouvel addon.
2. Créez l’addon des formations
Reprenez l’environnement du jour 1 et utilisez une seule commande, celle qui correspond à votre installation. Le nom technique elearning_portal doit rester différent de training_hello.
Environnement Odoo installé depuis les sources
.venv/bin/python src/odoo/odoo-bin scaffold elearning_portal custom_addons.\.venv\Scripts\python.exe .\src\odoo\odoo-bin scaffold elearning_portal .\custom_addonsOdoo dans Docker Compose
docker compose exec odoo odoo scaffold elearning_portal /mnt/extra-addonsDans cette dernière commande, /mnt/extra-addons doit correspondre au bind mount de votre dossier custom_addons/. Si votre conteneur utilise un autre chemin, reprenez celui que vous avez vérifié au jour 1.
Ouvrez custom_addons/elearning_portal/ dans l’explorateur de fichiers.
À observer : vous y trouvez notamment __init__.py, __manifest__.py et les dossiers models/, controllers/, security/ et views/. Le scaffold crée ces fichiers, mais n’installe encore rien dans votre base.
Ne relancez pas la commande. Ouvrez custom_addons/elearning_portal/ et comparez son contenu avec cette étape avant de continuer.
3. Préparez le manifeste de l’addon
Remplacez le manifeste généré par cette première version. Il indique simplement qu’elearning_portal a besoin de training_hello avant de pouvoir utiliser ses notes.
{
"name": "Portail de formations",
"summary": "Relier des formations aux notes du module de formation",
"version": "19.0.1.0.0",
"category": "Training",
"author": "Formation Odoo",
"license": "LGPL-3",
"depends": ["training_hello"],
"data": [],
"application": True,
"installable": True,
}La clé depends dit à Odoo dans quel ordre charger les addons. Ici, il charge d’abord training_hello, puis elearning_portal. Les notes restent là où elles sont : la dépendance permet de les utiliser, elle ne les déplace pas.
À observer : website n’apparaît pas encore dans les dépendances. Vous l’ajouterez plus tard, lorsque l’addon aura besoin d’une route et d’un template Website.
4. Laissez chaque addon à sa place
- Dans
custom_addons/elearning_portal/models/, vous créerez le model des formations. - Dans
custom_addons/elearning_portal/security/, vous ajouterez les droits sur ces formations. - Dans
custom_addons/elearning_portal/views/, vous créerez les écrans internes, puis le template Website. - Vous n’utiliserez
custom_addons/elearning_portal/controllers/qu’à la partie Website.
Ne copiez ni la classe TrainingNote, ni le CSV, ni les fichiers de données de training_hello. À l’étape suivante, une relation suffira pour associer les formations aux notes existantes.
Vous avez maintenant deux addons distincts. training_hello continue de gérer les notes. elearning_portal est prêt à gérer les formations qui y seront associées.