tutorials

COMMENT DÉVELOPPER UN MODULE SOUS ODOO 11 A PARTIR DE ZERO

Published on 4 January 2019

Bienvenue dans ce tutoriel sur « comment développer un module sous odoo 11. Dans ce tutoriel nous allons apprendre comment partir de zéro jusqu’à l’obtention d’un module.

Odoo est en plein expansion dans le domaine des ERPs. Aujourd’hui il occupe une place majeure dans le marché des ERPs. L’ERP se positionnant au cœur de l’évolution d’une entreprise. Plusieurs entreprises se penchent vers les ERPs car proposent des solutions à longs termes, sur mesures, à moindre coût.

Ce tutoriel s’adresse à tous ceux qui utilisent, souhaiteraient utiliser l’ERP Odoo.

Ce tutoriel est rédigé afin de permettre aux développeurs Odoo de facilement prendre la main sur le développement de nouveaux modules.

 

Comme nous le savons tous Odoo est développé majoritaire en python et xml. En effet python est utilisé pour la couche métier et le XML pour la couche présentation. Outre ces deux langages d’autres peuvent être utilisé dans le cadre du développement des nouveaux modules. Dans le cadre de ce tutoriel nous nous limiterons aux deux langages sus évoqués ;

Prérequis pour développer un module :

  • Programmation orienté objet (POO)
  • Langage python et xml
  • Langage SQL

 

Cas d’étude

Nous allons développer une application permettant de gérer des opérations bancaires (dépôt, virement, retrait) ;

TAF : il faut développer une interface qui permettra de saisir la transaction ; il sera question de saisir les numéros de comptes, la nature de l’opération (dépôt, virement, retrait), le montant, la date et enregistrer.

 

Odoo est développé suivant l’architecture  MVC (modèle vue contrôleur).

C’est une architecture 3 tiers ; La couche présentation est implémentée par les vues xml, la couche métier par des classes python, et les données sont implémentées par les tables PostgreSQL.

La suite du tutorial sera déroulée en étapes nécessaires pour la réalisation du module.

Etape 1

Se positionner dans le répertoire ….\Odoo 11.0\server\odoo\addons, créer le module. Nous allons nommer notre module « bank_management ».

 

Pourquoi le répertoire addons ? C’est ce répertoire qui est spécifié  par défaut dans le fichier de configuration pour contenir les modules.

Etape 2

Une fois le répertoire crée il faut ensuite créer les fichiers nécessaires.

Nous allons créer le fichier __init__.py

Il s’agit du fichier d’initialisation du module. Pour l’instant nous allons le garder vide.

Etape 3

Nous allons créer le fichier __manifest__.py

 

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

{
‘name’: ‘Bank Management’,
‘version’: ‘1.0’,
‘summary’: ‘Gestion des operations bancaires’,
‘sequence’: 1,
‘description’: “””
Gestion des transactions bancaires
====================
Ce module permet de gerer les operations bancaires (depot, retrait, virement).
“””,
‘website’: ‘https://www.ewonga-group.com’,
‘depends’: [‘base’],
‘data’: [
],
‘demo’: [
],
‘qweb’: [
],
‘application’: False,

}

C’est le fichier de description du module. Parcourons son contenu

Comme nous le savons tous, le texte précédé de « # » est commenté.

  • name : c’est le nom technique du module
  • version : la version du module
  • summary : le résumé du module
  • sequence : c’est la séquence d’affichage du module
  • description : est la description du module
  • website : le site web (soit de l’entreprise ou du module)
  • depends : les dépendances du module ; par défaut un module doit dépendre du module « base »qui est le module de base.
  • data : c’est la balise qui permet d’ajouter des vues au module (elle sera renseignée dans la suite)
  • demo : c’est la balise qui permet d’ajouter des données de démonstration
  • qweb : la balise qui permet d’ajouter des rapports qweb.
  • application : permet de savoir si le module sera utilisé comme une application ou pas. Dans notre cas notre module ne sera pas une application.

Outre ces balises, il existe d’autres balises qui peuvent être utilisée dans ce fichier.

 

Nous avons déjà crées deux fichiers dans notre module.

Ces deux fichiers sont utilisés par Odoo comme des fichiers de configuration du module. Actuellement nous devons gérer nos modèles et vues.

Etape 4

Nous continuons avec la couche modèle.

Il est important de rappeler que sous Odoo, il existe un ORM(Object-Relational Mapping) qui permet de convertir les objets en tables relationnelles dans la base de données. Cet ORM nous facilite la tâche dans la mesure où nous n’avons plus à aller créer les tables dans la base de données. Nous nous contentons de créer des objets qui seront par la suite converti en table par le serveur odoo.

Les lignes  3 et 4 permettent d’importer certaines API dans notre fichier.

La ligne 8 représente la déclaration de la classe qui hérite de models.Model

  • _name : représente le nom de l’objet
  • _description : la description de l’objet
  • _order : permet de spécifier le champ sur lequel les enregistrements de la table seront ordonnés.

Par la suite ce sont les différents attributs de notre classe, lesquels attributs seront des colonnes de cette table en base de données. Les champs peuvent être de plusieurs types (voir la partie sur les types de données sur le site officiel).

Afin que notre fichier soit pris en compte par le serveur Odoo, nous devons le déclarer dans le fichier « __init__.py » (confer étape 2).

 

Etape 5

Nous continuons avec la couche de présentation.

Actuellement nous avons déjà réalisé notre modèle, nous allons à présent développer les vues qui nous permettrons de visualiser notre module. Sous odoo il existe plusieurs types de vues (graphes, formulaires, listes, recherches, etc.)

Dans le cadre de ce tutoriel nous nous limiterons aux formulaires et listes.

Voici le contenu de notre fichier xml (bank_management_view.xml),

Les lignes 1 à 3 représentent la structure de déclaration des fichiers xml.

Les lignes 6 à 21 représentent la déclaration de la vue formulaire ;

 

Les lignes 23 à 36 permettent de déclarer la vue liste.

 

 

Les lignes 38 à 45 permettent de déclarer l’action. Sous odoo pour utiliser une vue il faut la rattacher à une action et ensuite rattacher l’action à un menu.

Une fois terminée, il aller dans le fichier « __manifest__.py » pour permettre au serveur odoo d’appeler notre fichier xml.

Voir ligne 16.

Une fois terminé, bien vouloir redémarrer le serveur odoo.

Puis se connecter, ne pas oublier d’activer le mode développeur (nécessaire pour mettre à jour la liste de module).

Apres avoir activé le mode développeur , cliquer sur « mettre à jour la liste de module » ensuite vous verrez le module apparaître parmi la liste de module :

Cliquer ensuite sur « installer ». Voici l’aperçu du module après installation.

Aperçu après installation

Navigation

Merci de partager vos commentaires afin d’améliorer ce tutoriel.

Leave a comment


Articles in relation