Aller au contenu
Accueil » Développement d’un module personnalisé dans Odoo 16 : Guide pour les débutants

Développement d’un module personnalisé dans Odoo 16 : Guide pour les débutants

Introduction

Odoo est une plateforme ERP puissante et modulable, offrant des solutions prêtes à l’emploi pour de nombreux domaines comme la comptabilité, les ventes, le stock, et bien plus. Toutefois, chaque entreprise a des besoins uniques, ce qui peut rendre nécessaires des développements sur mesure. Dans ce guide, nous allons explorer comment créer un module personnalisé dans Odoo pour ajouter des fonctionnalités spécifiques. Nous partirons de la base pour que même les débutants puissent suivre.


Prérequis

Avant de commencer le développement, assurez-vous de posséder les éléments suivants :

  1. Odoo installé sur votre système (de préférence une version 15 ou plus récente).
  2. Connaissances de base en Python et XML.
  3. Un éditeur de texte ou un IDE, comme Visual Studio Code ou PyCharm.
  4. Accès administrateur à la base de données Odoo pour tester et déployer le module.

1. Structure d’un Module Odoo

Un module Odoo est essentiellement un dossier contenant divers fichiers organisés suivant une structure précise. Voici la structure typique d’un module :

my_module/
├── __init__.py
├── __manifest__.py
├── models/
│   └── my_model.py
├── views/
│   └── my_view.xml
└── security/
    └── ir.model.access.csv

Fichiers et dossiers clés :

  • __init__.py : Ce fichier permet de déclarer les fichiers Python à charger dans le module.
  • __manifest__.py : Le fichier manifest contient des informations essentielles sur le module comme le nom, la version, la description, et les dépendances.
  • models/ : Contient les modèles de données définis en Python.
  • views/ : Contient les vues et interfaces utilisateur en XML.
  • security/ : Contient les règles d’accès et les permissions de sécurité.

2. Création du Module

Étape 1 : Création du dossier du module

Créez un dossier pour votre module dans le répertoire des modules d’Odoo (par exemple odoo/addons). Nommez-le de façon descriptive, par exemple, my_custom_module.

Étape 2 : Configuration du fichier __manifest__.py

Le fichier __manifest__.py est essentiel car il permet à Odoo de reconnaître le module. Créez ce fichier dans le dossier du module et ajoutez-y les informations suivantes :

{
    'name': 'My Custom Module',
    'version': '1.0',
    'summary': 'Un module personnalisé pour Odoo',
    'description': 'Ce module ajoute des fonctionnalités spécifiques pour notre entreprise',
    'author': 'Votre Nom',
    'website': 'http://www.votresite.com',
    'category': 'Uncategorized',
    'depends': ['base'],
    'data': [
        'security/ir.model.access.csv',
        'views/my_view.xml',
    ],
    'installable': True,
    'application': True,
}

Étape 3 : Créer le fichier __init__.py

Dans le dossier du module, créez un fichier __init__.py. Ce fichier va permettre d’initialiser le module et de charger les modèles définis. Ajoutez cette ligne pour indiquer à Odoo de charger les fichiers dans models :

from . import models

3. Création d’un Modèle de Données

Un modèle de données dans Odoo correspond à une table dans la base de données. Dans notre exemple, nous allons créer un modèle simple pour gérer des “tâches” avec un titre, une description, et un état.

Étape 1 : Création du fichier de modèle

Dans le dossier models, créez un fichier my_model.py et définissez le modèle :

from odoo import models, fields

class Task(models.Model):
    _name = 'my_module.task'
    _description = 'Task Model'

    name = fields.Char(string='Title', required=True)
    description = fields.Text(string='Description')
    status = fields.Selection([
        ('new', 'New'),
        ('in_progress', 'In Progress'),
        ('done', 'Done')
    ], default='new', string='Status')

Explications :

  • _name : Définit le nom technique du modèle (utilisé en interne par Odoo).
  • name : Champ de type Char pour le titre de la tâche.
  • description : Champ de type Text pour ajouter une description.
  • status : Champ de type Selection pour le statut de la tâche.

4. Création de la Vue (Interface Utilisateur)

Les vues dans Odoo sont définies en XML et permettent de contrôler l’interface utilisateur. Créons une vue pour afficher les tâches.

Étape 1 : Création du fichier de vue

Dans le dossier views, créez un fichier nommé my_view.xml et définissez la vue :

<odoo>
    <record id="view_task_tree" model="ir.ui.view">
        <field name="name">task.tree</field>
        <field name="model">my_module.task</field>
        <field name="arch" type="xml">
            <tree>
                <field name="name"/>
                <field name="status"/>
            </tree>
        </field>
    </record>

    <record id="view_task_form" model="ir.ui.view">
        <field name="name">task.form</field>
        <field name="model">my_module.task</field>
        <field name="arch" type="xml">
            <form>
                <sheet>
                    <field name="name"/>
                    <field name="description"/>
                    <field name="status"/>
                </sheet>
            </form>
        </field>
    </record>

    <menuitem id="menu_task_root" name="Tasks" sequence="1"/>
    <menuitem id="menu_task_management" name="Task Management" parent="menu_task_root" sequence="2"/>
    <menuitem id="menu_task" name="Tasks" parent="menu_task_management" action="action_task"/>
</odoo>

Explications :

  • Vue en liste (Tree) : Affiche les tâches sous forme de liste.
  • Vue formulaire (Form) : Affiche les détails d’une tâche en vue détaillée.

5. Configuration des Droits d’Accès

Les droits d’accès sont gérés dans le fichier security/ir.model.access.csv. Ce fichier définit les règles pour qui peut voir, créer, modifier, ou supprimer des enregistrements.

Dans le dossier security, créez un fichier nommé ir.model.access.csv et ajoutez-y le contenu suivant:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_task_user,my_module.task,model_my_module_task,,1,1,1,1

6. Chargement et Activation du Module

Étape 1 : Mettre à jour la liste des modules

Accédez à Odoo en tant qu’administrateur, puis allez dans Applications > Mises à jour des applications. Cliquez sur “Mettre à jour” pour que le module apparaisse dans la liste.

Étape 2 : Installer le module

Recherchez votre module par son nom dans la liste des applications. Cliquez sur “Installer” pour activer le module.

7. Test et Validation

Allez dans le menu Tasks nouvellement ajouté pour créer et tester des tâches. Essayez les différentes fonctionnalités de votre module pour vous assurer que tout fonctionne comme prévu.

8. Conseils et Bonnes Pratiques

  1. Modularisez le code : Segmentez les fonctionnalités dans des modules distincts pour faciliter la maintenance.
  2. Testez dans un environnement de développement : Ne testez jamais un nouveau module directement en production.
  3. Documentez le code : Ajoutez des commentaires pour que d’autres développeurs puissent facilement comprendre votre code.
  4. Mises à jour régulières : Assurez-vous que votre module est compatible avec les nouvelles versions d’Odoo.

Conclusion

Développer un module personnalisé dans Odoo peut sembler complexe au premier abord, mais en suivant les étapes de base, vous pouvez créer des solutions adaptées à vos besoins. Ce guide fournit les fondations pour démarrer et personnaliser votre ERP de manière efficace. Avec de la pratique, vous serez bientôt en mesure d’ajouter des fonctionnalités de plus en plus sophistiquées, rendant Odoo encore plus précieux pour votre entreprise.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *