SlideShare une entreprise Scribd logo
Réalisé par :
* Hassan Wahsiss
25/05/2015
 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
19/11/2015 2
Python et son intégration avec Odoo
 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.
19/11/2015 4
 Des développeurs web professionnels,
 Des chercheurs en intelligence artificielle ou en bioinformatique,
 Des administrateurs systèmes,
 Des programmeurs occasionnels.
19/11/2015 5
 Multiplateforme
 Ouvert et libre
 Sa syntaxe est très simple et combinée à des types de données
évolués
19/11/2015 6
 Un mode interactif
 Langage interprété
 Orienté-objet
 Types dynamiques
19/11/2015 7
 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
19/11/2015 8
 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, …)
19/11/2015 9
 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
19/11/2015 10
 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
19/11/2015 11
 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
19/11/2015 12
 Gestion d’Entreprise (ERP) :
◦ ERP5
◦ Odoo:
 Fonctionnement en mode web
 Construire rapidement un site web, boutique e-commerce,
blog, …
 Basé sur le Framework OpenObject
19/11/2015 13
 Calcul scientifique : NumPy, SciPy, …
 Interfaces graphiques : TkInter
 Traitement du son et la synthèse vocale : eSpeak
 Traitement d'image : PIL
19/11/2015 14
 Vision artificielle par caméra : framework SimpleCV
 Bio-informatique : Biopython
 Applications multi-touch : framework kivy
 Applications réseau : framework Twisted
19/11/2015 15
Python et son intégration avec Odoo
 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.
19/11/2015 17
 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.
19/11/2015 18
 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
19/11/2015 19
 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
8serveropenerpaddons’ 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
19/11/2015 20
 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
19/11/2015 21
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
19/11/2015 22
 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
19/11/2015 23
 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.
19/11/2015 24
 Selon le besoin, on pourrait soit modifier et ajouter des
ajustements sur les modules déjà existants, soit créer des
nouveaux modules
19/11/2015 25
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 paie
Alors que dans le standard de Odoo, quand on veut créer un
horaire de travail, on ne trouve pas ce qu’il demande.
19/11/2015 26
19/11/2015 27
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 :
19/11/2015 28
19/11/2015 29
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 :
19/11/2015 30
19/11/2015 31
En faisant un développement dans les fichiers python et XML on
pourrait avoir un menu personnalisé comme celui là :
19/11/2015 32
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:
19/11/2015 33
19/11/2015 34
Voila un menu qu’on pourrait faire en développement Python
et XML:
19/11/2015 35
 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
19/11/2015 36
La vue en « formulaire » :
19/11/2015 37
La vue en « liste »:
19/11/2015 38
La vue en « kanban »:
19/11/2015 39
La vue en « calendrier »:
19/11/2015 40
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
19/11/2015 41
Voila le menu pour la création des factures clients:
19/11/2015 42
Et voila le rapport généré en format PDF:
19/11/2015 43
Supposons qu’un client veut pouvoir récupérer le compte aussi
dans les factures:
19/11/2015 44
En faisant quelques développement et modifications, j’ai ajouté
un rapport test qui va pouvoir gérer cet exigence:
19/11/2015 45
Et voila le nouveau rapport PDF avec le champ compte ajouté:
19/11/2015 46
 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
19/11/2015 47
Exemple de workflow (workflow des demandes de congés):
19/11/2015 48
Python et son intégration avec Odoo

Contenu connexe

Tendances

Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Ayoub Mkharbach
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
Ramzi Noumairi
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
Mohamed Boubaya
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Ayed CHOKRI
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help desk
Raef Ghribi
 
Soutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logicielSoutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logiciel
Siwar GUEMRI
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
ayoub daoudi
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...
SAAD SARHANI
 
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humainesRapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
Ayoub Ayyoub
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
FaissoilMkavavo
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
Ahmed rebai
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Mohamed Cherkaoui
 
Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8
HORIYASOFT
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
Tahani RIAHI
 
Présentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatiquePrésentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatique
Ismail BAKKALI
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
Oussama Yoshiki
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odoo
ayoub damir
 
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’EtudesMémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes
Aicha OUALLA
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
amat samiâ boualil
 

Tendances (20)

Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...Conception et developpement d'un site web pour la suggestion et notification ...
Conception et developpement d'un site web pour la suggestion et notification ...
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help desk
 
Soutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logicielSoutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logiciel
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...
 
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humainesRapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
 
Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
 
Présentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatiquePrésentation du pfe - Master spécialisé en ingénierie informatique
Présentation du pfe - Master spécialisé en ingénierie informatique
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odoo
 
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’EtudesMémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
 

En vedette

Gestion Comptable et Financiere Odoo V8
Gestion Comptable et Financiere Odoo V8Gestion Comptable et Financiere Odoo V8
Gestion Comptable et Financiere Odoo V8
Africa Performances
 
Gestion des Ressources Humaines Odoo V8
Gestion des Ressources Humaines Odoo V8Gestion des Ressources Humaines Odoo V8
Gestion des Ressources Humaines Odoo V8
Africa Performances
 
Odoo Module de Fabrication
Odoo Module de FabricationOdoo Module de Fabrication
Odoo Module de Fabrication
Analystik
 
OpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche TechniqueOpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche Technique
Africa Performances
 
Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8
Africa Performances
 
Odoo: Tableaux de bord et Reporting
Odoo: Tableaux de bord et ReportingOdoo: Tableaux de bord et Reporting
Odoo: Tableaux de bord et Reporting
Africa Performances
 
Odoo gestion des stocks v8
Odoo gestion des stocks v8Odoo gestion des stocks v8
Odoo gestion des stocks v8
Africa Performances
 
Management des Ressources de Production - Odoo V8
Management des Ressources de Production - Odoo V8Management des Ressources de Production - Odoo V8
Management des Ressources de Production - Odoo V8
Africa Performances
 
Odoo Marketing & CRM v8
Odoo Marketing & CRM v8Odoo Marketing & CRM v8
Odoo Marketing & CRM v8
Africa Performances
 
Crm odoo (OpenDev)
Crm odoo (OpenDev)Crm odoo (OpenDev)
Crm odoo (OpenDev)
Boubaker Abdallah
 
Presentation module HR et la gestion de la paie marocaine
Presentation module HR et la gestion de la paie marocainePresentation module HR et la gestion de la paie marocaine
Presentation module HR et la gestion de la paie marocaine
Hassan WAHSISS
 
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourcePrésentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Africa Performances
 

En vedette (12)

Gestion Comptable et Financiere Odoo V8
Gestion Comptable et Financiere Odoo V8Gestion Comptable et Financiere Odoo V8
Gestion Comptable et Financiere Odoo V8
 
Gestion des Ressources Humaines Odoo V8
Gestion des Ressources Humaines Odoo V8Gestion des Ressources Humaines Odoo V8
Gestion des Ressources Humaines Odoo V8
 
Odoo Module de Fabrication
Odoo Module de FabricationOdoo Module de Fabrication
Odoo Module de Fabrication
 
OpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche TechniqueOpenERP/Odoo: Fiche Technique
OpenERP/Odoo: Fiche Technique
 
Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8
 
Odoo: Tableaux de bord et Reporting
Odoo: Tableaux de bord et ReportingOdoo: Tableaux de bord et Reporting
Odoo: Tableaux de bord et Reporting
 
Odoo gestion des stocks v8
Odoo gestion des stocks v8Odoo gestion des stocks v8
Odoo gestion des stocks v8
 
Management des Ressources de Production - Odoo V8
Management des Ressources de Production - Odoo V8Management des Ressources de Production - Odoo V8
Management des Ressources de Production - Odoo V8
 
Odoo Marketing & CRM v8
Odoo Marketing & CRM v8Odoo Marketing & CRM v8
Odoo Marketing & CRM v8
 
Crm odoo (OpenDev)
Crm odoo (OpenDev)Crm odoo (OpenDev)
Crm odoo (OpenDev)
 
Presentation module HR et la gestion de la paie marocaine
Presentation module HR et la gestion de la paie marocainePresentation module HR et la gestion de la paie marocaine
Presentation module HR et la gestion de la paie marocaine
 
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourcePrésentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
 

Similaire à Python et son intégration avec Odoo

Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
Christian Charreyre
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Ametys
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
Lushkah911
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
Renaud Dumont
 
Plici - PréSentation V2
Plici - PréSentation V2Plici - PréSentation V2
Plici - PréSentation V2
PliciWeb Solutions
 
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe FlexPrésentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
Cynapsys It Hotspot
 
Firefox OS dans le web - Journée du libre 2015 Lille
Firefox OS dans le web - Journée du libre 2015  LilleFirefox OS dans le web - Journée du libre 2015  Lille
Firefox OS dans le web - Journée du libre 2015 Lille
Christophe Villeneuve
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Xavier Lacot
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
NeoXam Tunisia
 
Azure bot service
Azure bot serviceAzure bot service
Azure bot service
Guillaume Nurdin
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
Nicolas Georgeault
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017
igouverte
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
Ulrich VACHON
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
LINAGORA
 
Drupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenuDrupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenu
Mario Marcello Verona
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4
Simplicité Software
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
MSDEVMTL
 

Similaire à Python et son intégration avec Odoo (20)

Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Plici - PréSentation V2
Plici - PréSentation V2Plici - PréSentation V2
Plici - PréSentation V2
 
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe FlexPrésentation RIA avec Adobe Flex / RIA with Adobe Flex
Présentation RIA avec Adobe Flex / RIA with Adobe Flex
 
Firefox OS dans le web - Journée du libre 2015 Lille
Firefox OS dans le web - Journée du libre 2015  LilleFirefox OS dans le web - Journée du libre 2015  Lille
Firefox OS dans le web - Journée du libre 2015 Lille
 
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Catalogue PFE 2019
Catalogue PFE 2019Catalogue PFE 2019
Catalogue PFE 2019
 
Azure bot service
Azure bot serviceAzure bot service
Azure bot service
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Sp summit2014 session 10-2
Sp summit2014   session 10-2Sp summit2014   session 10-2
Sp summit2014 session 10-2
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
 
Drupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenuDrupal et les Systèmes de gestion de contenu
Drupal et les Systèmes de gestion de contenu
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 

Python et son intégration avec Odoo

  • 1. Réalisé par : * Hassan Wahsiss 25/05/2015
  • 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 19/11/2015 2
  • 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. 19/11/2015 4
  • 5.  Des développeurs web professionnels,  Des chercheurs en intelligence artificielle ou en bioinformatique,  Des administrateurs systèmes,  Des programmeurs occasionnels. 19/11/2015 5
  • 6.  Multiplateforme  Ouvert et libre  Sa syntaxe est très simple et combinée à des types de données évolués 19/11/2015 6
  • 7.  Un mode interactif  Langage interprété  Orienté-objet  Types dynamiques 19/11/2015 7
  • 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 19/11/2015 8
  • 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, …) 19/11/2015 9
  • 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 19/11/2015 10
  • 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 19/11/2015 11
  • 12.  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 19/11/2015 12
  • 13.  Gestion d’Entreprise (ERP) : ◦ ERP5 ◦ Odoo:  Fonctionnement en mode web  Construire rapidement un site web, boutique e-commerce, blog, …  Basé sur le Framework OpenObject 19/11/2015 13
  • 14.  Calcul scientifique : NumPy, SciPy, …  Interfaces graphiques : TkInter  Traitement du son et la synthèse vocale : eSpeak  Traitement d'image : PIL 19/11/2015 14
  • 15.  Vision artificielle par caméra : framework SimpleCV  Bio-informatique : Biopython  Applications multi-touch : framework kivy  Applications réseau : framework Twisted 19/11/2015 15
  • 17.  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. 19/11/2015 17
  • 18.  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. 19/11/2015 18
  • 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 19/11/2015 19
  • 20.  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 8serveropenerpaddons’ 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 19/11/2015 20
  • 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 19/11/2015 21
  • 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 19/11/2015 22
  • 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 19/11/2015 23
  • 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. 19/11/2015 24
  • 25.  Selon le besoin, on pourrait soit modifier et ajouter des ajustements sur les modules déjà existants, soit créer des nouveaux modules 19/11/2015 25
  • 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 paie Alors que dans le standard de Odoo, quand on veut créer un horaire de travail, on ne trouve pas ce qu’il demande. 19/11/2015 26
  • 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 : 19/11/2015 28
  • 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 : 19/11/2015 30
  • 32. En faisant un développement dans les fichiers python et XML on pourrait avoir un menu personnalisé comme celui là : 19/11/2015 32
  • 33. 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: 19/11/2015 33
  • 35. Voila un menu qu’on pourrait faire en développement Python et XML: 19/11/2015 35
  • 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 19/11/2015 36
  • 37. La vue en « formulaire » : 19/11/2015 37
  • 38. La vue en « liste »: 19/11/2015 38
  • 39. La vue en « kanban »: 19/11/2015 39
  • 40. La vue en « calendrier »: 19/11/2015 40
  • 41. 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 19/11/2015 41
  • 42. Voila le menu pour la création des factures clients: 19/11/2015 42
  • 43. Et voila le rapport généré en format PDF: 19/11/2015 43
  • 44. Supposons qu’un client veut pouvoir récupérer le compte aussi dans les factures: 19/11/2015 44
  • 45. En faisant quelques développement et modifications, j’ai ajouté un rapport test qui va pouvoir gérer cet exigence: 19/11/2015 45
  • 46. Et voila le nouveau rapport PDF avec le champ compte ajouté: 19/11/2015 46
  • 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 19/11/2015 47
  • 48. Exemple de workflow (workflow des demandes de congés): 19/11/2015 48

Notes de l'éditeur

  1. C’est la partie visible et interactive avec l’utilisateur C’est le serveur Odoo, qui se charge de faire des calculs et des traitements en fonction des requêtes des utilisateurs La couche d’accès aux données, c’est la partie qui gère l’accès aux données du système, sur Odoo elles sont gérées par le SGBD postgresql
  2. ERP est constitué d’un ensemble de modules qui fonctionnent les uns avec les autres, cela est possible grace à l’utilisatio d’une base d’information unique