Odoo anciennement appelé Tiny ERP puis OpenERP est un progiciel open-source de gestion intégré comprenant de très nombreux modules permettant de simplifier la gestion des entreprises. Il est utilisé par plus de Huit millions d’utilisateurs pour gérer leurs entreprises à travers le monde. Odoo est d’ailleurs le système ERP open-source le plus populaire dans le monde.
1- Modèle de conception de Odoo
La conception de Odoo est basé sur le design pattern MVC (Model-View-Controller). Ce dernier est composée de trois parties :
- Model (Modèle) : contient les données
- View (Vue) : Contient les différentes vues disponibles dans l'interface graphique destinée aux utilisateurs (Liste, Graphe ...)
- Controller (Contrôleur) : C'est la passerelle entre Les vues et les modèles :
- Il modifie le modèle si l'utilisateur effectue une modification depuis les vues
- Il met à jour les vues si les données dans le modèle changent
Pattern Model-View-Controller
2- Les Composants système de Odoo
La suite d'applications Odoo comporte trois composants systèmes
- Serveur de Base de Données : Postgresql. Odoo utilise une couche ORM (Objet-Relationnel Mapping) pour communiquer avec Postgresql
- Serveur d'application Odoo : Développé en langage Python.
- Serveur de présentation : Il permet aux l'utilisateurs de se connecter à Odoo depuis les navigateurs Web (Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari)
Architecture Odoo
3- Structure des Modules Odoo
3-1- Définition d'un Module dans Odoo.
Il y'a deux types de modules dans odoo Applications et Extensions. le premier type Extension permet de rajouter des Fonctionnalités à une application, par exemple l'Extension "SMS in CRM" permet de rajouter la fonctionnalité envoi de SMS à l'Application "CRM". Le deuxième type "Application" est un standalone module qui comporte un ou plusieurs modèles accessibles par l'intermédiaire de menus ou sous-menus
Le modèle "Mon pipeline" de l'application CRM
La plupart des applications sont accessibles depuis la page d'accueil de Odoo par l'intermédiaire d'un icône dédié.
Page d'accueil de Odoo
3-2 Les modèles de données dans les Modules Odoo
Les modèles de données déterminent la structure logique d’une base de données et la manière dont les données sont stockées, organisées et manipulées. En d’autres termes, un modèle est un tableau d’informations qui peut être lié à d’autres tableaux.
Un modèle représente généralement un ensemble homogène d’informations qui correspondent à un objet à informatiser. Ex : contact, produit ...
Les principaux éléments d'un modèle sont :
- Les vues : Ce sont les formes d'affichage des données des Modèles. On dénombre onze dans Odoo qui sont : Graphique, Liste, Tableau croisé dynamique, Formulaire, Kanban, Calendrier, Carte, Gantt, Cohorte, Activité et Rechercher
- Les rapports : Odoo permet d'éditer des rapports aux formats PDF et TXT. (Ex : Devis, Commandes, Numeros de serie ...)
- Les règles de sécurités : Ils définissent les droits d'accès à un modèle, il y en a quatre (Créer, Lire, Modifier et Supprimer). Ils sont attribués par l'intermédiaire de groupes dans lesquels on rajoutent les utilisateurs
4 - Principaux Languages utilisés dans Odoo
- Phyton : Il est utilisé dans la creation des Modules Odoo (CRM, Vente, Inventory ...)
- QWeb templates : C'est un Template Engine développer par la société Odoo pour générer des Rapports
Odoo utilise d'autres languages parmi lesquels il y'a XML, HTML, Javascript ...