Presentationfinal 151119055425 Lva1 App6892
Presentationfinal 151119055425 Lva1 App6892
Presentationfinal 151119055425 Lva1 App6892
* 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
Il est un langage et une plateforme de développement
logiciel complète et généraliste,
19/11/2015 4
Des développeurs web professionnels,
19/11/2015 5
Multiplateforme
Ouvert et libre
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
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, …)
19/11/2015 9
Accès aux bases de données
19/11/2015 10
Sites et applications web
19/11/2015 11
Gestion de contenu (CMS) :
19/11/2015 12
Gestion d’Entreprise (ERP) :
◦ ERP5
◦ Odoo:
19/11/2015 13
Calcul scientifique : NumPy, SciPy, …
19/11/2015 14
Vision artificielle par caméra : framework SimpleCV
Bio-informatique : Biopython
19/11/2015 15
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
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
19/11/2015 19
Odoo possède une structure modulaire qui permet d’ajouter
de nouveaux modules facilement pour étendre les
fonctionnalités
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 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:
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
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 :
19/11/2015 26
19/11/2015 27
Exemple 1 :
19/11/2015 28
19/11/2015 29
Exemple 2:
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
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 :
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 »:
19/11/2015 47
Exemple de workflow (workflow des demandes de congés):
19/11/2015 48