Professional Documents
Culture Documents
Cet article est une traduction franaise du Memento Technique d'OpenERP v7.0
Version du fichier original : 08/11/2013.
Avec l'aimable autorisation de la socit OpenERP SA.
Commentez
I - Prambule............................................................................................................................................................... 3
II - Installer OpenERP................................................................................................................................................. 3
II-A - Packages d'installation..................................................................................................................................3
II-B - Installer depuis les sources.......................................................................................................................... 4
II-C - Cration de la base de donnes.................................................................................................................. 4
III - Construire un module OpenERP : Idea (Ide)..................................................................................................... 4
III-A - Contexte....................................................................................................................................................... 4
III-B - Composition d'un module............................................................................................................................ 4
III-C - Structure typique d'un module.....................................................................................................................5
III-D - Service de mappage objet-relationnel......................................................................................................... 5
III-E - Types de champs de l'ORM........................................................................................................................ 7
III-E-1 - Noms de champs spciaux/rservs.................................................................................................. 9
III-F - Travailler avec l'ORM................................................................................................................................. 10
IV - Construire l'interface du module.........................................................................................................................13
IV-A - Structure XML commune...........................................................................................................................13
IV-B - Syntaxe CSV commune............................................................................................................................ 14
IV-C - Menus et actions....................................................................................................................................... 15
IV-C-1 - Dclaration d'une action................................................................................................................... 15
IV-C-2 - Dclaration d'un menu...................................................................................................................... 15
V - Vues et hritage.................................................................................................................................................. 16
V-A - Vues formulaires (pour voir/modifier les enregistrements)......................................................................... 16
V-A-1 - Les lments de formulaire............................................................................................................... 17
V-B - Vues dynamiques....................................................................................................................................... 18
V-C - Vues listes et listes d'arborescence hirarchique...................................................................................... 18
V-D - Vues fiches Kanban................................................................................................................................... 18
V-E - Vues calendrier........................................................................................................................................... 19
V-F - Diagrammes de Gantt.................................................................................................................................19
V-G - Vues diagrammes (graphes)...................................................................................................................... 19
V-H - Vues de recherche..................................................................................................................................... 20
V-I - Hritage des vues........................................................................................................................................ 20
VI - Rapports..............................................................................................................................................................21
VI-A - Diffrents formats de rapports...................................................................................................................21
VI-B - Les expressions utilises dans les modles de rapport OpenERP...........................................................21
VII - Les Flux de travail (Workflows)......................................................................................................................... 22
VII-A - Dclaration d'un flux de travail................................................................................................................. 23
VII-B - Activits du flux de travail (nuds)..........................................................................................................23
VII-C - Transitions du flux de travail (bords)........................................................................................................24
VIII - Scurit............................................................................................................................................................. 24
VIII-A - Mcanismes de contrle d'accs bass sur le groupe........................................................................... 24
VIII-B - Roles........................................................................................................................................................ 25
IX - Les assistants (Wizards).................................................................................................................................... 25
IX-A - Les modles d'assistant (TransientModel)................................................................................................ 25
IX-B - Vues assistant............................................................................................................................................25
IX-C - Excution de l'assistant............................................................................................................................. 26
X - WebServices - XML-RPC.................................................................................................................................... 26
XI - Optimisation des performances..........................................................................................................................27
XII - Communaut/contribution.................................................................................................................................. 27
XIII - Licence..............................................................................................................................................................28
XIV - Remerciements.................................................................................................................................................28
-2-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
I - Prambule
OpenERP est une suite moderne de d'Applications Mtiers, publie sous la licence AGPL qui comprend les modules
CRM, RH, ventes, comptabilit, fabrication, gestion d'entrepts, gestion de projets, et plus encore. Il est bas sur un
systme modulaire, une plate-forme Rapid Application Development (RAD) volutive et intuitive crite en Python.
OpenERPdispose d'une bote outils complte et modulaire pour construire rapidement des applications : ObjectRelationship Mapping (ORM) intgr, un patron Modle-Vue-Contrleur (MVC), un systme de gnration de rapport,
l'internationalisation automatise, et bien plus encore.
Python est un langage de programmation dynamique de haut niveau, idal pour RAD, alliant la puissance avec une
syntaxe claire, et un noyau maintenu petit par sa conception.
Astuce : Liens utiles
Ressources communautaires :
www.openerp.com/community
Le serveur d'intgration permanent : runbot.openerp.com
Apprendre Python : doc.python.org
II - Installer OpenERP
OpenERP est distribu sous forme de paquets/installeurs pour la plupart des plates-formes, mais peut galement
tre install partir des sources sur n'importe quelle plate-forme.
L'architecture d'OpenERP
OpenERP utilise le paradigme client-serveur bien connu : le client s'excute comme une application JavaScript dans
votre navigateur, se connectant au serveur en utilisant le protocole JSON-RPC sur HTTP(S). Des clients peuvent
tre facilement crits selon vos besoins et se connecter au serveur en utilisant XML-RPC ou JSON-RPC.
Astuce : Procdure d'installation
Voir : http://doc.openerp.com/v7.0/install
-3-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
# Rcuprer l'Installeur
# Installer OpenERP 7.0
objets mtier : dclars comme des classes Python qui tendent la classe osv.Model. La persistance de
ces ressources est entirement gre par OpenERP ;
donnes : les fichiers XML/CSV avec des mtadonnes (vues et dclarations des flux de travail), les
donnes de configuration (paramtrage des modules) et des donnes de dmonstration (facultatives, mais
recommandes pour tester, par exemple, des chantillons d'ides) ;
assistants : formulaires interactifs utiliss pour aider les utilisateurs, souvent disponibles en actions
contextuelles sur les ressources ;
rapports : RML (format XML), MAKO ou OpenOffice modles de rapports, qui seront fusionns avec
n'importe quel type de donnes de l'entreprise et gnreront du HTML, ODT ou des rapports PDF.
-4-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
#
#
#
#
Le rpertoire du module
Donnes de dmonstration et tests unitaires
Fichiers de traduction
Rapports
# Dclaration des groupes et droits d'accs
# Vues (formulaires,listes), menus et actions
# Assistants
# Flux de travail
# Fichier d'initialisation Python (requis)
# Dclaration du module (requis)
# Classes Python, les objets du module
Le fichier __ init__.py est le descripteur de module Python, car un module OpenERP est aussi un module Python
rgulier.
__init__.py
17. # Importe tous les fichiers et dossiers qui contiennent du code Python
18. import idea, wizard, report
Le fichier __openerp__.py est le manifeste du module OpenERP et contient un dictionnaire unique Python avec la
dclaration du module : son nom, les dpendances, la description et la composition.
__openerp__.py
19. {
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36. }
'name' : 'Idea',
'version' : '1.0',
'author' : 'OpenERP',
'description' : 'Ideas management module',
'category': 'Enterprise Innovation',
'website': 'http://www.openerp.com',
'depends' : ['base'], # liste des dpendances conditionnant l'ordre de dmarrage
'data' : [ # les fichiers de donnes charger lors de l'installation du module
'security/groups.xml', # toujours charger les groupes en premier!
'security/ir.model.access.csv', # charger les droits d'accs aprs les groupes
'workflow/workflow.xml',
'view/views.xml',
'wizard/wizard.xml',
'report/report.xml',
],
'demo': ['demo/demo.xml'], # donnes de dmo (pour les tests unitaires)
-5-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
idea.py
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
-6-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
_order
_rec_name
_sql
_table
Hritage
-7-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
ondelete : manipulation de
cl trangre)
suppression, par exemple 'set
null', 'cascade'; consultez la
documentation de PostgreSQL
one2many(obj, field_id)
-8-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
fnct_inv : fonction utilise pour crire une valeur dans le champ l'inverse
def fnct_inv(obj, cr, uid, id, name, value, fnct_inv_arg, context)
type : type de champs simul (peut tre n'importe quel autre type, sauf 'fonction')
obj : _name (nom) du modle du champ simul s'il s'agit d'un champ relationnel
id
name
-9-
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
active
sequence
state
parent_id
parent_left, parent_right
create_date,
create_uid,
write_date,
write_uid
self.pool.get('object_name')
peut tre utilis pour obtenir un modle
de n'importe quel autre
Les paramtres communs, utiliss par de
- 10 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
#Operateurs: =, !
=, >, >=, <, <=, like, ilike,
#in, not in, child_of, parent_left, parent_right
#Oprateurs de prfixe: '&' (default), '|', '!'
#Rcupre le magasins dont le nom ne contient pas le mot spa
#du partenaire 34
ids = self.search(cr, uid,
[ '|', ('partner_id', '!=', 34),
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
})
view_type='form', context=None,
toolbar=False)
class idea(osv.osv):
(...)
_columns = {
'name' :
fields.char('Name',size=64)
(...)
def test_fields_get(self,cr,uid):
assert(self.fields_get('name')
['size'] == 64)
def test_fields_view_get(self,cr,uid):
idea_obj =
self.pool.get('idea.idea')
form_view =
idea_obj.fields_view_get(cr,uid)
# Les ides doivent tre prsentes avec la date d'invention
def name_get(self,cr,uid,ids,context=None):
res = []
for r in self.read(cr,uid,ids,
['name','create_date'])
res.append((r['id'], '%s (%s)' (r['name'],year)))
- 12 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
return res
Astuce :
Utilisez read() pour des appels via des Web services, mais prfrez browse() en interne.
- 13 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
89.
<data>
90.
<record model="object_model_name" id="object_xml_id">
91.
<field name="field1">value1</field>
92.
<field name="field2">value2</field>
93.
</record>
94.
95.
<record model="object_model_name2" id="object_xml_id2">
96.
<field name="field1" ref="module.object_xml_id"/>
97.
<field name="field2" eval="ref('module.object_xml_id')"/>
98.
</record>
99.
</data>
100. </openerp>
Chaque type d'enregistrement (vue, menu, action) prend en charge un ensemble spcifique d'entits et d'attributs
enfants, mais tous partagent les attributs spciaux suivants :
id
ref
eval
RelaxNG,
ir.model.access.csv
ir.model.access.csv
101. "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
102. "access_idea_idea","idea.idea","model_idea_idea","base.group_user",1,0,0,0
103. "access_idea_vote","idea.vote","model_idea_vote","base.group_user",1,0,0,0
- 14 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
id
id
parent
name
action
group
sequence
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
V - Vues et hritage
Les vues forment une hirarchie. Plusieurs vues d'un mme type peuvent tre dclares sur le mme objet, et seront
utilises en fonction de leurs priorits. En dclarant une vue hrite, il est possible d'ajouter/supprimer des fonctions
dans une vue.
Dclaration d'une vue gnrique
Dclaration d'une vue gnrique
name
model
type
priority
arch
nom de la vue
modle d'objet sur lequel la vue est dfinie (comme res_model dans les
actions)
form, tree, graph, calendar, search, gantt, kanban
priorit de la vue, la plus petite est la plus leve (par dfaut : 16)
architecture de la vue, voir diffrents types de vue ci-dessous
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
field
Attributs :
properties : widget dynamique montrant toutes les proprits disponibles (pas d'attribut).
button
Attributs :
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
separator : ligne de sparation horizontale pour structurer les vues, avec tiquette facultative.
newline : espace rserv pour l'achvement de la ligne actuelle de la vue.
label : lgende en texte libre ou une lgende dans le formulaire.
group : utilis pour organiser les champs en groupes avec tiquette facultative (rajoute des cadres).
notebook
: les lments d'un notebook sont des onglets pour des lments page.
Attributs :
page
name : tiquette de l'onglet/page ;
position : position des onglets dans le notebook (inside, top, bottom, left, right).
lments autoriss
- 18 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Un kanban ( ou , terme japonais signifiant regarder le tableau ?) est une simple fiche
cartonne que l'on fixe sur les bacs ou les conteneurs de pices dans une ligne d'assemblage
ou une zone de stockage.
Voir Kanban sur Wikipdia : http://fr.wikipedia.org/wiki/Kanban
Depuis OpenERP 6.1, un nouveau type polyvalent de vue, dans laquelle chaque enregistrement est rendu comme
un petit kanban (fiche) est apparu. Il supporte le glisser-dposer pour grer le cycle de vie des fiches kanban
bases sur des dimensions configurables. Les vues Kanban sont introduites dans les notes de version d'OpenERP
6.1 et dfinies en utilisant le langage de templates QWeb, document dans la documentation technique :
Voir :
Et :
http://bit.ly/18usDXt
http://doc.openerp.com/trunk/developers/web/qweb
lments autoriss
lments autoriss
- 19 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Astuce :
Les graphiques sont particulirement utiles avec des vues personnalises qui permettent
d'extraire des statistiques prtes l'emploi.
Attributs
lments
autoriss
-->
www.w3.org/TR/xpath
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
XPath
VI - Rapports
Il existe plusieurs moteurs de rapport dans OpenERP, pour produire des rapports partir de diffrentes sources et
dans de nombreux formats.
repeatIn(list, 'var', 'tag') rpte l'lment parent actuel nomm tag pour chaque objet
dans la list, ce qui rend l'objet disponible comme var lors de chaque boucle ;
- 21 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
id
name
model
rml, sxw, xml, xsl
auto
header
groups
menu
keywords
Astuce :
Le guide de l'utilisateur RML:
www.reportlab.com/docs/rml2pdf-userguide.pdf
204. <story>
205.
<blockTable style="Table">
206.
<tr>
207.
<td><para style="Title">Idea name</para> </td>
208.
<td><para style="Title">Score</para> </td>
209.
</tr>
210.
<tr>
211.
<td><para>[[ repeatIn(objects,'o','tr') ]] [[ o.name ]]</para></td>
212.
<td><para>[[ o.score ]]</para></td>
213.
</tr>
214.
</blockTable>
215. </story>
- 22 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
id
name
osv
on_create
id
wkf_id
name
flow_start
flow_stop
join_mode
split_mode
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
kind
subflow_id
action
VIII - Scurit
Des mcanismes de contrle d'accs doivent tre combins pour aboutir une politique de scurit cohrente.
- 24 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Cependant, mme sans menu, les objets peuvent encore tre accessibles indirectement, donc les autorisations
actuelles au niveau de l'objet (create,read,write,unlink) doivent tre dfinies pour les groupes.
Elles sont gnralement insres via des fichiers CSV l'intrieur des modules. Il est galement possible de
restreindre l'accs des champs spcifiques sur une vue ou sur un objet en utilisant l'attribut groups du champ.
ir.model.access.csv
234. "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
235. "access_idea_idea","idea.idea","model_idea_idea","base.group_user",1,1,1,0
236. "access_idea_vote","idea.vote","model_idea_vote","base.group_user",1,1,1,0
VIII-B - Roles
Les rles sont crs comme des enregistrements normaux sur le modle res.roles et sont utiliss uniquement pour
conditionner les transitions de workflow travers l'attribut role_id des transitions.
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Vue de l'assistant
265.
</group>
266.
</form>
267.
</field>
268. </record>
X - WebServices - XML-RPC
OpenERP est accessible travers des interfaces XML-RPC, pour lesquels les bibliothques existent dans de
nombreux langages.
Exemple Python
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
import xmlrpclib
# ... definir HOST, PORT, DB, USER, PASS
url = 'http://%s:%d/xmlrpc/common' % (HOST,PORT)
sock = xmlrpclib.ServerProxy(url)
uid = sock.login(DB,USER,PASS)
print "Logged in as %s (uid:%d)" % (USER,uid)
# Cre une nouvelle ide
url = 'http://%s:%d/xmlrpc/object' % (HOST,PORT)
sock = xmlrpclib.ServerProxy(url)
args = {
'name' : 'Another idea',
'description' : 'This is another idea of mine',
'inventor_id': uid,
}
idea_id = sock.execute(DB,uid,PASS,'idea.idea','create',args)
Exemple PHP
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
<?
include('xmlrpc.inc'); // Use phpxmlrpc library, available on sourceforge
// ... definir $HOST, $PORT, $DB, $USER, $PASS
$client = new xmlrpc_client("http://$HOST:$PORT/xmlrpc/common");
$msg = new xmlrpcmsg("login");
$msg->addParam(new xmlrpcval($DB, "string"));
$msg->addParam(new xmlrpcval($USER, "string"));
$msg->addParam(new xmlrpcval($PASS, "string"));
resp = $client->send($msg);
uid = $resp->value()->scalarval()
echo "Logged in as $USER (uid:$uid)"
// Cre une nouvelle ide
$arrayVal = array(
'name'=>new xmlrpcval("Another Idea", "string") ,
'description'=>new xmlrpcval("This is another idea of mine" , "string"),
'inventor_id'=>new xmlrpcval($uid, "int"),
);
Note du traducteur :
- 26 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Il semblerait que l'exemple PHP ne soit pas complet. Il n'est fait mention nulle part du modle
idea.idea, donc le code ci-dessus ne devrait pas pouvoir utiliser la table.
ne placez pas d'appels browse() l'intrieur des boucles, mettez-les avant et n'accdez qu'aux objets
parcourus l'intrieur de la boucle. L'ORM optimisera le nombre de requtes de base de donnes bas sur
les attributs parcourus ;
vitez la rcursivit sur les hirarchies des objets (objets avec une relation parent_id), en ajoutant des
champs d'entiers parent_left et parent_right sur votre objet, et en mettant _parent_store sur True dans votre
classe d'objets. L'ORM va utiliser une hirarchie de prcommande transversale modifie pour tre en mesure
d'effectuer des oprations rcursives (par exemple child_of) avec des requtes de base de donnes en
temps( 1) au lieu de temps( n) ;
ne pas utiliser les champs de fonction la lgre, surtout si vous les incluez dans la vue liste.
Pour optimiser les fonctions des champs, deux mcanismes sont disponibles :
multi : tous les champs partageant la mme valeur d'attribut multi seront calculs avec un seul appel la
fonction, ce qui devrait alors retourner un dictionnaire des valeurs dans son plan de valeurs,
store : les champs de fonction avec un attribut store seront stocks dans la base de donnes et recalculs
la demande lorsque les objets de dclenchement applicables sont modifis. Le format de la spcification de
dclenchement est le suivant :
store = {'model': (_ref_fnct, fields, priority)} (voir l'exemple ci-dessous)
Exemple de code
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
def _get_idea_from_vote(self,cr,uid,ids,context=None):
res = {}
vote_ids = self.pool.get('idea.vote').browse(cr,uid,ids,context=context)
for v in vote_ids:
res[v.idea_id.id] = True # Store the idea identifiers in a set
return res.keys()
def _compute(self,cr,uid,ids,field_name,arg,context=None):
res = {}
for idea in self.browse(cr,uid,ids,context=context):
vote_num = len(idea.vote_ids)
vote_sum = sum([v.vote for v in idea.vote_ids])
res[idea.id] = {
'vote_sum': vote_sum,
'vote_avg': (vote_sum/vote_num) if vote_num else 0.0,
}
return res
_columns = {
# Ces champs sont recalculs chaque fois que l'un des votes change
'vote_avg': fields.function(_compute, string='Votes Average',
store = {'idea.vote': (_get_idea_from_vote,['vote'],10)},multi='votes'),
'vote_sum': fields.function(_compute, string='Votes Sum',
store = {'idea.vote': (_get_idea_from_vote,['vote'],10)},multi='votes'),
}
XII - Communaut/contribution
Les projets OpenERP sont hbergs sur Launchpad (LP), o toutes les ressources du projet peuvent tre trouves :
les branches Bazaar, suivi des bogues, des plans, des FAQ, etc.
Crez un compte gratuit sur
- 27 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/
Groupes *
Restrictions Bazaar/
Launchpad
OpenERP Quality Team
OpenERP Core Team
Peut fusionner et intgrer sur
(~openerp)
des branches officielles
OpenERP Drivers (~openerp- Membres actifs de la
Peut confirmer des bogues
drivers)
communaut slectionns
et poser des jalons sur les
bogues
OpenERP Community
Groupe ouvert, n'importe qui Possibilit de crer des
(~openerp-community)
peut se joindre
branches communautaires o
chacun peut contribuer
*Les membres des groupes suprieurs sont galement membres des groupes infrieurs
XIII - Licence
Copyright 2010-2013 Open Object Press. Tous droits rservs.
Vous pouvez rcuprer une copie lectronique de ce travail et le distribuer si vous ne modifiez pas le contenu. Vous
pouvez galement imprimer une copie pour tre lue par vous seul.
Nous avons des contrats avec diffrents diteurs de diffrents pays pour vendre et distribuer des versions papier ou
lectroniques de ce travail (traduites ou non) dans les librairies. Cela permet de distribuer et de promouvoir le produit
OpenERP. Il nous aide aussi crer des incitations pour payer les contributeurs et auteurs avec les redevances.
Pour cette raison, l'accord de traduire, modifier ou vendre ce travail est strictement interdit, sauf si OpenERP S.A.
(reprsentant Open Object Press) vous donne une autorisation crite pour cela.
Bien que toutes les prcautions aient t prises dans la prparation de cet ouvrage, l'diteur et les auteurs n'assument
aucune responsabilit pour les erreurs ou omissions, ou pour les dommages rsultant de l'utilisation de l'information
contenue dans ce document.
Publi par Open Object Press, Grand-Rosire, Belgique.
XIV - Remerciements
Remerciements spciaux l'quipe d'OpenERP (OpenERP SA) pour avoir permis la traduction et la publication de
cet article.
Le site officiel OpenERP :
http://www.openerp.com/
Un grand Merci aux membres de l'quipe de la rdaction de Developpez.com pour leurs conseils et corrections
Claude Leloup
- 28 -
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de
prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2013 OpenERP SA. Aucune reproduction,
mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://thierry-godin.developpez.com/openerp/memento-technique-openerp-fr/