Extraire  chapitres  d’Odoo eLearning 


via l’API JSON-RPC

Méthode pour  extraire tous les chapitres (sections) et sous-chapitres (contenus) d’Odoo eLearning (module website_slides) via l’API JSON-RPC. Je vous donne la logique de parcours + des exemples concrets (cURL et Python).

.

Façon fiable d’extraire

1) Modèles & hiérarchie à connaître


  • slide.channel : un cours.
  • slide.slide : une “slide” de cours. Sert à la fois :
    • de section (chapitre) quand is_category = True,
    • de contenu (vidéo, PDF, quiz, page…) quand is_category = False.
  • Les contenus rattachés à une section portent category_id = <id de la section>. S’il n’y a pas de section, category_id est vide et le contenu est au niveau racine du cours. Odoo+1GitLabStack Overflow


2) Champs utiles à lire

 

  • id, name, sequence, is_category, category_id, slide_type, website_published, html_content, url, channel_id


  • (optionnels selon vos besoins) : description, quiz_nb_attempts, completion_time, mime_type, etc.
    Réf. JSON-RPC Odoo 17 pour la méthode execute_kw. cybrosys.com
3) Algorithme “Get Data”


Pour un cours donné (ex. channel_id = 42) :

  1. Lister les sections (chapitres) :
    • Domaine : [('channel_id','=',42), ('is_category','=',True)]
  2. Pour chaque section, lister ses contenus :
    • Domaine : [('channel_id','=',42), ('is_category','=',False), ('category_id','=',<id_section>)]
  3. Lister aussi les contenus au niveau racine (sans section) :
    • Domaine : [('channel_id','=',42), ('is_category','=',False), ('category_id','=',False)]
      La colonne sequence vous donne l’ordre d’affichage souhaité. GitLab

Exemples prêts à l’emploi


  • a) cURL (JSON-RPC “brut”)
  • B) Python (requests) – extraction hiérarchique en un dict

Découvrir plus

.

Notes pratiques & variantes

Découvrir les cours disponibles,>


 
Si vous devez découvrir les cours disponibles, commencez par slide.channel avec search_read([], ["id","name","category","website_published"]), puis itérez sur chaque channel_id.


En savoir plus

L’ordre d’affichage final est donné...


 
L’ordre d’affichage final est donné par sequence (cours → sections → contenus). Odoo+1


En savoir plus

Pour des intégrations front Odoo Website,...


 
Pour des intégrations front Odoo Website, il existe aussi l’endpoint /web/dataset/call_kw (même logique JSON-RPC) si vous préférez ce chemin technique. cybro


En savoir plus

lister automatiquement tous les cours (slide.channel) dans Odoo eLearning.


  •  Option A — cURL (JSON-RPC “brut”)
  • Option B — Script Python prêt à l’emploi

En savoir plus