Parametrageetdeveloptv1 151217213504 PDF
Parametrageetdeveloptv1 151217213504 PDF
Parametrageetdeveloptv1 151217213504 PDF
Prise en main
Configuration et paramétrage
Plan
Modules personnalisé
Développement spécifique
Conclusion
Prise en main et paramétrage d’OpenERP
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Configuration Odoo
Partie 1: Prise en main
Prise en main et paramétrage d’OpenERP
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
• Démarrer le serveur
• Créer une nouvelle base de données formation, mot de passe admin
• Se connecter à la nouvelle base
de donnée
Prise en main et paramétrage d’OpenERP
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
• Actualiser la page
Pour une simple modification au niveau d’un module sous odoo on peut passez tous simplement par Des objets
et vues personnaliser et en crée les objets comme suite :
• Configuration -> structure de la base de donnée -> Modèle puis crée un objet
Prise en main et paramétrage d’OpenERP
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Le mode développeur
Le mode développeur permet de debugger les modules afin d’identifier les objet , champs, vues, menus …
techniquement Il est utiliser par un développeur pour identifier plus de détailles sur les objets … qui servira a
paramétrer et a modifier les modules stocker dans la base de donnée et pas dans le code source. Pour activer le
mode développeur on procède comme suite :
Administrator -> Apropos de l’OpenERP
Prise en main et paramétrage d’OpenERP
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Pour debugger un module ou un objet on passe par le menu Déboguer et en choisie l’action qui convient.
Développement spécifique d’un module
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
• Créer des fichiers .XML pour définir les menus, les vues et les actions (required)
• Créer éventuellement des rapports, des assistants (Wizard) ou des flux de travail (Workflow).
Développement spécifique d’un module
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
__init__.py
import nom_module
Développement spécifique d’un module
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
__openerp__.py
• name : le nom de votre module ;
• version : la version du module ;
• category : la catégorie dans laquelle vous classez votre module ;
• sequence : c'est un nombre qui permet de définir l’ordre de votre module dans la liste des modules. 1, il sera en haut, 100 il sera en bas
• author : l'auteur du module ;
• description : la description complète du module ;
• depends : les dépendances votre module ;
• data : les fichiers à charger ;
• installable : si votre module est installable ou non ;
• application : laissez à False. Votre module ne sera pas reconnu comme une application. C'est OpenERP qui délivre les certificats qui qualifient
votre module d'application ;
'update_xml' : [
#'travaux_view.xml',
],
'demo_xml' : []
'installable' : True,
'application' : False,
'auto_install' : False,
}
Développement spécifique d’un module
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Réponse
__openerp__.py
'update_xml' : [
#'travaux_view.xml',
],
'demo_xml' : []
'installable' : True,
'application' : False,
'auto_install' : False,
}
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Les classes
Partie 2
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
La couche Model
• Le Framework Object Service (OSV) met en œuvre une couche complète de Mapping Objet Relationnel.
• Les objets métier sont déclarés comme des classes Python qui héritent de la classe osv.osv, ce qui les rend
une partie du modèle OpenObject modèle, et qui seront automatiquement persistés par la couche ORM.
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
• Relationnel : Représente les relations entre les objets (one2many, many2one, many2many)
Relation vers l’objet courant • ondelete: e.g. 'set null', 'cascade', Voir la documentation PostgreSQL
class account_invoice():
class account_invoice_line():
class account_trensfer():
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
35
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
read: permet de lire les valeurs des attributs d’une ressource des identifiant passes en paramètres
Signature : def read(self, cr, uid, ids, fields=None, context={}), ou
ids : est la liste des identifiants a lire
Cette fonction retourne un tableau sous la forme [{‘name_of_the_field’: value, ...}, ...]
read(cr, uid, ids, [’name’,’category_id’], context=context)
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Les operateurs possibles sont : [ =, >, <, <=, >=, IN, LIKE, ILIKE, child_of ]
Cette fonction retourne la liste des identifiants des ressources correspondants aux critères
search(cr, uid, [(’category_id’, ’=’, ’Customer’)])
37
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
38
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
39
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
La couche Model
Les packages et el éléments nécessaires pour créer un model
# -*- coding: utf-8 -*-
from openerp.osv import fields, osv
_defaults = {
'field': lambda self, cr, uid, context: '/',
}
Classe_name()
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Réponse
Les packages nécessaires pour créer un model
# -*- coding: utf-8 -*-
travaux.py
from openerp.osv import fields, osv
_defaults = {
'name': lambda self, cr, uid, context: '/',
}
formation_work()
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Exercice 3
• Créer une nouvelle classe formation_work_line dans le fichier travaux.py
• Ajouter des champs relationnels dans les deux classes (formation_work et
formation_work_line) pour représenter la relation suivante,
one2many
formation_work formation_work_line
name (char) * 1 name (char)
responsable (many2one) maintenance (one2many)
user(many2one) description (text)
line_ids (many2one)
many2one
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Réponse 1 :
Les packages nécessaires pour créer un model
# -*- coding: utf-8 -*-
travaux.py
from openerp.osv import fields, osv
_defaults = {
'name': lambda self, cr, uid, context: '/',
}
formation_work()
Développement spécifique d’un module
Les classes
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Réponse 2 :
Les packages nécessaires pour créer un model
# -*- coding: utf-8 -*- travaux.py
from openerp.osv import fields, osv
Les Vues
• Déclaration générique d’une vue :
<record model="ir.ui.view" id="VIEW_ID">
<field name="name">VIEW.NAME</field>
<field name="model">PYTHON.CLASS.NAME</field>
<field name="arch" type="xml">
<!-- contenu de la vue: <form>, <tree>, <graph>, … -->
</field>
</record>
• Qweb : Un langage de Template HTML développé par OpenERP qui permet de définir une structure portable
Menus et actions
• Les menus principales permette à l’utilisateur d’accéder au module
• Chaque module est dispose d’un menu principale et d’autres sous menus
• Les menus et leurs actions sont déclarés à l’intérieur d’un fichier xml : ( travaux_view.xml)
Développement spécifique d’un module
Vues, Actions et Menus
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Menus et actions
Menu principal
Actions et menus
• Structure de la vue travaux_view.xml vide
Pour les bonnes pratique il est préférer de séparer les menus dans
un fichier xml (menu_views.xml) a fin de facilité la maintenance.
Développement spécifique d’un module
Vues, Actions et Menus
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Actions
• La déclaration XML d’une action est la suivante
<record model="ir.actions.act_window" id="work_action_work">
<field name="name">Works</field>
<field name="res_model">formation.work</field>
<field name="view_mode">tree,form</field>
</record>
Menus
• La déclaration XML d’un menu principal, niveau 1
• REMARQUE : Avant d’utiliser les menus cliquables, il faut définir l’action action="[ACTION_ID]" qui va être déclenchée.
Développement spécifique d’un module
Vues, Actions et Menus
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Travaux
Travaux
formation.work
Travaux
formation.work.line
Tache
Développement spécifique d’un module
Vues, Actions et Menus
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Réponse :
Sécurité
Partie 3
Développement spécifique d’un module
Sécurité
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Sécurité
• Les utilisateurs et les rôles sont des points critiques en matière de sécurité interne dans
OpenERP.
• OpenERP propose plusieurs concepts de sécurité concernant les rôles des utilisateurs :
• Utilisateur: une personne identifiée par son login et mot de passe. Notez que tous les
employés d'une entreprise ne sont pas nécessairement les utilisateurs OpenERP, un
utilisateur est une personne qui accède à l'application.
• Groupe: un groupe d'utilisateurs qui a des droits d'accès. Un groupe donne ses droits
d'accès à ses utilisateurs. Ex: responsable des ventes, comptable, etc
• Règles de sécurité: une règle qui définit les droits d'accès d'un groupe donné. Les règles
de sécurité sont fixées à une ressource donnée, par exemple le modèle de facturation.
Développement spécifique d’un module
Sécurité
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Groupes
• La création des groupes peut se faire d’une manière graphique (Configuration ->
Utilisateurs -> Groupes) ou avec des fichiers de données XML
Méthode graphique
Développement spécifique d’un module
Sécurité
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Groupes
• Exemple de fichier XML de groups
</data>
</openerp>
Développement spécifique d’un module
états de sortie
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
reports
• Odoo (Openerp) possède deux types de rapport:
• Rapports et statistiques: ce sont des données calculées, souvent représentés sous la forme
graphiques.
• Etat de sortie: ils sont utilisés pour imprimer des documents du système. Le résultat est
généralement un PDF généré par une sélection effectuée sur l'écran. En outre, OpenERP
vous permet d'ouvrir ces rapports dans OpenOffice.org.
Développement spécifique d’un module
internationalisation
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
• Pour la représentation des menus d’impression on définie un fichier xml comme suite :
• Le parseur
report_sxw.report_sxw('report.formation.work', 'formation.work',
'addons/formation_travaux/report/travaux.rml', parser=madrassa_travaux, header="external")
Développement spécifique d’un module
internationalisation
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Internationalisation
i18n
Développement spécifique d’un module
internationalisation
Prise en main complet d’odoo Configuration complète Module personnalisé Module spécifique Conclusion
Exercice 5 (Internationalisation)
• Exporter la Template de traduction du module formation_travaux
• Configuration -> Importer / Exporter -> Exporter une traduction
• Sélectionner le module formation_travaux
• Cliquer sur Exporter
• Télécharger le fichier formation_travaux.po