49
Python et son intégration avec Odoo Réalisé par : * Hassan Wahsiss 25/05/2015

Python et son intégration avec Odoo

Embed Size (px)

Citation preview

Page 1: Python et son intégration avec Odoo

Python et son intégration avec Odoo Réalisé par :

* Hassan Wahsiss

25/05/2015

Page 2: Python et son intégration avec Odoo

01/05/2023 2

Le langage Python :◦ C’est quoi python ?◦ Utilisateurs du python◦ Caractéristiques du python◦ Que peut-on faire avec python ?

L’ERP Odoo :◦ Introduction◦ Architecture d’odoo◦ Structure d’un module◦ Outils de développement des modules Odoo◦ Exemples d’utilisation de Python dans Odoo◦ Les différents vues de Odoo◦ Qweb reports◦ Les workflows

Plan :

Page 3: Python et son intégration avec Odoo

Le langage Python

Page 4: Python et son intégration avec Odoo

01/05/2023 4

Il est un langage et une plateforme de développement logiciel complète et généraliste,

Il permet une approche modulaire et orientée objet de la programmation.

Il est développé depuis 1989 par Guido van Rossum.

C’est quoi Python ?

Page 5: Python et son intégration avec Odoo

01/05/2023 5

Des développeurs web professionnels,

Des chercheurs en intelligence artificielle ou en bioinformatique,

Des administrateurs systèmes,

Des programmeurs occasionnels.

Utilisateurs du Python :

Page 6: Python et son intégration avec Odoo

01/05/2023 6

Multiplateforme

Ouvert et libre

Sa syntaxe est très simple et combinée à des types de données évolués

Caractéristiques du Python :

Page 7: Python et son intégration avec Odoo

01/05/2023 7

Un mode interactif

Langage interprété

Orienté-objet

Types dynamiques

Caractéristiques du Python :

Page 8: Python et son intégration avec Odoo

01/05/2023 8

Deux manières de coder en Python:

◦ Ecrire des fichiers de code source (dont l'extension est .py), puis les exécuter

◦ Exécuter instruction par instruction avec l’interpréteur de commande de Python

Caractéristiques du Python :

Page 9: Python et son intégration avec Odoo

01/05/2023 9

Services fournis en standard

◦ Intégration directe de tous les types et les services de base (les chaînes de caractères, les types numériques, la gestion des erreurs, la gestion des fichiers, …)

◦ Intégration des structures de haut niveau (listes, les ensembles, les tableaux, …)

◦ Présence de nombreux modules spécialisés (math, datetime, sqlite3, …)

Que peut-on faire avec Python ?

Page 10: Python et son intégration avec Odoo

01/05/2023 10

Accès aux bases de données

◦ Les pilotes des BD suivent une spécification commune BD-API◦ Même code pour accéder aux base de données et lancer une requête

Que peut-on faire avec Python ?

Page 11: Python et son intégration avec Odoo

01/05/2023 11

Sites et applications web

◦ Serveurs web : Apache, Nginx , IIS

◦ Interface CGI : permet d’exécuter des programmes en Python sur un serveur HTTP.

◦ Frameworks de développement web : Django, Karrigell, Cherrypy

Que peut-on faire avec Python ?

Page 12: Python et son intégration avec Odoo

Gestion de contenu (CMS) :

◦ Utilisation : près de quinze ans◦ Industrialisé◦ Supporté par une importante communauté

internationale◦ Très grand nombre de modules d'extension

Que peut-on faire avec Python ?

01/05/2023 12

Page 13: Python et son intégration avec Odoo

Gestion d’Entreprise (ERP) :

◦ ERP5

◦ Odoo:

Fonctionnement en mode web Construire rapidement un site web, boutique e-commerce,

blog, … Basé sur le Framework OpenObject

Que peut-on faire avec Python ?

01/05/2023 13

Page 14: Python et son intégration avec Odoo

01/05/2023 14

Calcul scientifique : NumPy, SciPy, …

Interfaces graphiques : TkInter

Traitement du son et la synthèse vocale : eSpeak

Traitement d'image : PIL

Que peut-on faire avec Python ?

Page 15: Python et son intégration avec Odoo

01/05/2023 15

Vision artificielle par caméra : framework SimpleCV

Bio-informatique : Biopython

Applications multi-touch : framework kivy

Applications réseau : framework Twisted

Que peut-on faire avec Python ?

Page 16: Python et son intégration avec Odoo

L’ERP Odoo

Page 17: Python et son intégration avec Odoo

01/05/2023 17

Introduction:

Odoo, Progiciel de Gestion Intégrée, est une suite moderne d'Applications Métiers; publiée sous la licence AGPL; il permet l’administration et la gestion des principaux services de l’entreprise : gestion des achats, ventes, stocks, ressources humaines, comptabilité…, et plus encore.

Page 18: Python et son intégration avec Odoo

01/05/2023 18

Architecture d’Odoo:

Odoo est basé sur une architecture client/serveur :

On trouve 3 couches: ◦ 1- Couche présentation (interface utilisateur), ◦ 2- Couche métier (business ou aussi fonctionnelle) responsable de la

mise en œuvre de l’ensemble des règles de gestion et de la logique applicative

◦ 3- Couche d’accès aux données

Alors avec cette approche tous les développements sont réalisés sur le côté serveur.

Page 19: Python et son intégration avec Odoo

01/05/2023 19

Odoo utilise le système de gestion de base de données relationnelles PostgreSQL pour l’enregistrement de ses données

Odoo utilise le langage de balisage XML pour :◦ La description des données,◦ La description des interfaces ( les vues ),◦ La description des rapports.

Le langage de programmation d’ Odoo est le langage Python : ◦ Langage de programmation interprété◦ Langage de programmation orienté objet

Architecture d’Odoo:

Page 20: Python et son intégration avec Odoo

01/05/2023 20

Structure d’un module:

Odoo possède une structure modulaire qui permet d’ajouter de nouveaux modules facilement pour étendre les fonctionnalités

Pour créer un nouveau module, il y a quelques étapes à suivre:◦ Créer un sous répertoire dans le répertoire ‘\Odoo 8\server\

openerp\addons’ avec comme nom le nom du module qu’on veut créer,

◦ Créer un fichier d’initialisation ‘__init__.py’ : ce fichier est exécuté au lancement du serveur Odoo pour lui indiquer les fichiers python à charger

Page 21: Python et son intégration avec Odoo

01/05/2023 21

Créer un fichier de description ‘__openerp__.py’: ce fichier contient toutes les informations sur le module : son nom, son nom technique, sa version, une description de l’utilité du module, la dépendance : si le module utilisent des informations issues des autres modules; il faut les installer eux aussi …

Créer un fichier Python pour définir les objets métiers

Créer les fichiers XML pour définir les interfaces, les données de démonstration, et la description des menus

Structure d’un module:

Page 22: Python et son intégration avec Odoo

01/05/2023 22

Pour développer des modules Odoo, il existe plusieurs environnements de développement pour faire ce travail:

ERIC IDE: c’est un environnement de développement écrit en Python, mais il a de très sérieux inconvénients, l’interface est très complexe, et il y a très peu de documentation

Komodo IDE : cet IDE fournit une excellente répartition de Python, mais c’est très chère de payer 300euro pour un IDE

Les outils de développement des modules Odoo:

Page 23: Python et son intégration avec Odoo

01/05/2023 23

Pycharm: il a vraiment tout comme IDE;Code évidence, l’indentation automatique qui fonctionne bien, meilleur python auto-complétion, détection d’erreur sur la volé, suggestions automatiques de correction d’erreurs … et bien plus

Il est disponible en deux version: une édition de la communauté (gratuite), et une édition professionnelle dont le prix varie entre 29 et 199euro

Les outils de développement des modules Odoo:

Page 24: Python et son intégration avec Odoo

01/05/2023 24

Eclipse et Pydev : ils font un assez bon IDE dans l’ensemble, la navigation dans le code est bien faite et efficace, l’auto-indentation fonctionne à merveille, l’auto-complétion fonctionne bien et fait d'excellentes suggestions

Comparaison et résumé :Si vous voulez un IDE gratuit qui fonctionne bien, utilisez Eclipse et Pydev, si vous êtes prêts à payer de l’argent, utilisez pycharm c’est un exellent IDE.

Les outils de développement des modules Odoo:

Page 25: Python et son intégration avec Odoo

01/05/2023 25

Exemples d’utilisation de Python dans Odoo:

Selon le besoin, on pourrait soit modifier et ajouter des ajustements sur les modules déjà existants, soit créer des nouveaux modules

Page 26: Python et son intégration avec Odoo

01/05/2023 26

Exemple 1 :

Par exemple un client qui implémente déjà son système d’information sous l’ERP Odoo et il voudrait pouvoir mettre dans l’horaire du travail une durée de tolérance du retard, le minimum des heures supplémentaires, et quand commencent ces heures, la durée de la pause et une case à cocher Free Day … tout ça parce que ça va aider dans le calcul des bulletins de paieAlors que dans le standard de Odoo, quand on veut créer un horaire de travail, on ne trouve pas ce qu’il demande.

Page 27: Python et son intégration avec Odoo

01/05/2023 27

Page 28: Python et son intégration avec Odoo

01/05/2023 28

Exemple 1 :

On pourrait accéder au fichier XML de la vue et ajouter les champs nécessaires, et modifier le fichier python pour ajouter le traitement qui doit se faire derrière ces champs ajoutés

On pourrait avoir un horaire de travail personnalisé comme celui ci-dessous :

Page 29: Python et son intégration avec Odoo

01/05/2023 29

Page 30: Python et son intégration avec Odoo

01/05/2023 30

Exemple 2:

Supposons qu’un client voudrait, lors de la création des départements, définir un compte analytique et un horaire de travail pour chacun de ceux-ci

Dans le module « ressources humaines » de Odoo, on trouve le menu « département » comme suit :

Page 31: Python et son intégration avec Odoo

01/05/2023 31

Page 32: Python et son intégration avec Odoo

01/05/2023 32

En faisant un développement dans les fichiers python et XML on pourrait avoir un menu personnalisé comme celui là :

Page 33: Python et son intégration avec Odoo

01/05/2023 33

Exemple 3 :

Supposons qu’un client, dans le menu de création de bulletin de paie, il veut voir le solde de congé de l’employé, et son numéro de compte bancaire, et pouvoir ajouter le nombre d’heures supplémentaires travaillées, et les congés pris, dans la rubrique « Jours travaillés », pour le calcul du bulletin de paie

Voila le menu de création de bulletin de paie dans Odoo:

Page 34: Python et son intégration avec Odoo

01/05/2023 34

Page 35: Python et son intégration avec Odoo

01/05/2023 35

Voila un menu qu’on pourrait faire en développement Python et XML:

Page 36: Python et son intégration avec Odoo

01/05/2023 36

Plusieurs modes de visualisation des résultats peuvent être affichés en fonction du module sélectionné. on les retrouve en haut à droite :

◦ Vue Kanban◦ Vue Liste◦ Vue Formulaire◦ Vue Calendrier

Les vues :

Page 37: Python et son intégration avec Odoo

01/05/2023 37

La vue en « formulaire » :

Page 38: Python et son intégration avec Odoo

01/05/2023 38

La vue en « liste »:

Page 39: Python et son intégration avec Odoo

01/05/2023 39

La vue en « kanban »:

Page 40: Python et son intégration avec Odoo

01/05/2023 40

La vue en « calendrier »:

Page 41: Python et son intégration avec Odoo

01/05/2023 41

Qweb reports :Les rapports dans Odoo v8 sont rédigés en Qweb : c’est un langage de templates XML, il est utilisé pour la génération des fragments de pages en HTML ou en PDF.En utilisant le Qweb, on peut soit modifier les rapports déjà existants ou bien créer des nouveaux rapports

Exemple : À titre d’exemple, j’ai essayé de customiser le rapport des factures clients

Page 42: Python et son intégration avec Odoo

01/05/2023 42

Voila le menu pour la création des factures clients:

Page 43: Python et son intégration avec Odoo

01/05/2023 43

Et voila le rapport généré en format PDF:

Page 44: Python et son intégration avec Odoo

01/05/2023 44

Supposons qu’un client veut pouvoir récupérer le compte aussi dans les factures:

Page 45: Python et son intégration avec Odoo

01/05/2023 45

En faisant quelques développement et modifications, j’ai ajouté un rapport test qui va pouvoir gérer cet exigence:

Page 46: Python et son intégration avec Odoo

01/05/2023 46

Et voila le nouveau rapport PDF avec le champ compte ajouté:

Page 47: Python et son intégration avec Odoo

01/05/2023 47

un workflow est un artefact technique pour gérer un ensemble de «choses à faire» associés aux enregistrements d'un modèle

Plus précisément, un workflow est un graphe orienté dont les nœuds sont appelés «activités» et les arcs sont appelés «transitions »:

◦ Activités définissent le travail qui devrait être fait dans le serveur Odoo, comme le changement de l'état de certains dossiers, ou l'envoi de courriels.

◦ Transitions contrôlent la façon dont le flux de travail progresse d'une activité à une autre

Workflow:

Page 48: Python et son intégration avec Odoo

01/05/2023 48

Exemple de workflow (workflow des demandes de congés):

Page 49: Python et son intégration avec Odoo

Merci de votre attention