Une nouveauté de ODOO 8.0 concerne les éditions dont la solution désormais préconisée par l'éditeur repose sur Qweb ... et bootstrap.
Contrairement aux multiples solutions (RML, LibreOffice, Webkit, Aeroo ...) proposées jusqu'ici dans OpenERP, cette nouvelle solution en permettant l'héritage de rapport, simplifie la modification ou la création d'éditions.
Ne maîtrisant pas bootstrap et peu Qweb, je vais démarrer par une modification simpliste.
Prenons l'exemple du rapport "devis/bon de commande" dans lequel nous désirons ajouter le texte "texte ajouté pour test" avant la liste des articles commandés.
Nous allons procéder par héritage du module standard "sale" en créant un nouveau module "mysale_report" avec l'arborescence et les fichiers suivants :
__init__.py
que nous laissons vide
__openerp__.py
{
"name" : "Customization Sale Report",
"version" : "1.0",
"category" : "Generic Modules",
'depends' : ['sale',],
"data" : ['mysale_report.xml',],
'installable': True,
'auto_install': False,
}
mysale_report.xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="mysale_report" inherit_id="sale.report_saleorder_document">
<xpath expr="//table[@class='table table-condensed']" position="before">
<h3>
texte ajouté pour test
</h3>
</xpath>
</template>
</data>
</openerp>
Ensuite, nous mettons à jour la liste des modules
Nous installons le nouveau module
Puis en imprimant un devis, nous observons le nouveau texte affiché.
Pour en savoir plus sur ce sujet, je vous invite à prendre connaissance sur ce même blog, des articles de mars 2015.
* doc officielle sur les rapports Qweb : lien
* autre doc : lien
problème lors de l'installation
OpenERP Server Error
Client Traceback (most recent call last):
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebhttp.py", line 204, in dispatch
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebcontrollersmain.py", line 1137, in call_button
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebcontrollersmain.py", line 1125, in _call_kw
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebsession.py", line 42, in proxy
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebsession.py", line 30, in proxy_method
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebsession.py", line 103, in send
Server Traceback (most recent call last):
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonswebsession.py", line 89, in send
File "C:Program FilesOpenERP 7.0-20150406server.openerpnetsvc.py", line 296, in dispatch_rpc
File "C:Program FilesOpenERP 7.0-20150406server.openerpserviceweb_services.py", line 632, in dispatch
File "C:Program FilesOpenERP 7.0-20150406server.openerposvosv.py", line 190, in execute_kw
File "C:Program FilesOpenERP 7.0-20150406server.openerposvosv.py", line 132, in wrapper
File "C:Program FilesOpenERP 7.0-20150406server.openerposvosv.py", line 199, in execute
File "C:Program FilesOpenERP 7.0-20150406server.openerposvosv.py", line 187, in execute_cr
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonsbasemodulemodule.py", line 426, in button_immediate_install
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonsbasemodulemodule.py", line 473, in _button_immediate_function
File "C:Program FilesOpenERP 7.0-20150406server.openerppooler.py", line 39, in restart_pool
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesregistry.py", line 233, in new
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesloading.py", line 355, in load_modules
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesloading.py", line 256, in load_marked_modules
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesloading.py", line 159, in load_module_graph
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesmodule.py", line 405, in load_openerp_module
File "C:Program FilesOpenERP 7.0-20150406server.openerpmodulesmodule.py", line 133, in load_module
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonshr_payroll_ext__init__.py", line 1, in
File "C:Program FilesOpenERP 7.0-20150406serveropenerpaddonshr_payroll_extemployee.py", line 1
from openerp.osv import osv,fields
^
IndentationError: unexpected indent
Cet article ne s'applique qu'à la version 8 Odoo.
Je vois que vous êtes en version 7 alors que les éditions Qweb sont apparues en version 8.
Bonjour, je viens de suivre vos instructions pour créer un module dans Odoo 8. J'ai créer le fichier myaddons a la base de l'arborescence d'Odoo 8 mais il n’apparaît pas dans "module local" même en ayant mis a jour les modules… Le but de ma manip' est de modifier la mise en page automatique d'un PDF généré par Odoo 8 je ne sais quoi faire d'autre.
Il faut :
– soit ajouter dans le fichier de configuration openerp-server.conf, le répertoire myaddons dans la variable addons_path
– soit au lancement de odoo ajouter l'option addons_path , par exemple :
./odoo.py –addons-path="./addons,/home/odoo/myaddons"
Ok, merci de vôtre réponse ! j'ai reussi !
D'une autre pars j'ai un problème avec la génération récurrente des contrats cela n'affiche pas le taux de TVA dans le tableau… je suis entrain d'étudier la vue account.analytic.account.invoice.form.inherit (formulaire) pour ajouter le champ "taxes" mais je ne suis pas sur que se soit ce fichier qu'il faut modifier…
bonjour,
j'ai placé mon répertoire "mysale_report " sous le répertoire addons mais j'ai le problème suivant lors de l'installation du module
Odoo Server Error
Traceback (most recent call last):
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 537, in _handle_exception
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 574, in dispatch
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 310, in _call_function
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpservicemodel.py", line 118, in wrapper
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 307, in checked_call
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 803, in __call__
File "C:Program Files (x86)Odoo 8.0-20151028server.openerphttp.py", line 403, in response_wrap
File "C:Program Files (x86)Odoo 8.0-20151028serveropenerpaddonswebcontrollersmain.py", line 948, in call_button
File "C:Program Files (x86)Odoo 8.0-20151028serveropenerpaddonswebcontrollersmain.py", line 936, in _call_kw
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpapi.py", line 250, in wrapper
File "C:Program Files (x86)Odoo 8.0-20151028serveropenerpaddonsbasemodulemodule.py", line 447, in button_immediate_install
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpapi.py", line 250, in wrapper
File "C:Program Files (x86)Odoo 8.0-20151028serveropenerpaddonsbasemodulemodule.py", line 495, in _button_immediate_function
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpmodulesregistry.py", line 370, in new
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpmodulesloading.py", line 355, in load_modules
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpmodulesloading.py", line 255, in load_marked_modules
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpmodulesloading.py", line 176, in load_module_graph
File "C:Program Files (x86)Odoo 8.0-20151028server.openerpmodulesloading.py", line 118, in _load_data
File "C:Program Files (x86)Odoo 8.0-20151028server.openerptoolsconvert.py", line 901, in convert_file
File "C:Program Files (x86)Odoo 8.0-20151028server.openerptoolsconvert.py", line 974, in convert_xml_import
File "lxml.etree.pyx", line 3239, in lxml.etree.parse (srclxmllxml.etree.c:69955)
File "parser.pxi", line 1769, in lxml.etree._parseDocument (srclxmllxml.etree.c:102257)
File "parser.pxi", line 1789, in lxml.etree._parseFilelikeDocument (srclxmllxml.etree.c:102516)
File "parser.pxi", line 1684, in lxml.etree._parseDocFromFilelike (srclxmllxml.etree.c:101442)
File "parser.pxi", line 1134, in lxml.etree._BaseParser._parseDocFromFilelike (srclxmllxml.etree.c:97069)
File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (srclxmllxml.etree.c:91275)
File "parser.pxi", line 683, in lxml.etree._handleParseResult (srclxmllxml.etree.c:92461)
File "parser.pxi", line 622, in lxml.etree._raiseParseError (srclxmllxml.etree.c:91757)
XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
Bytes: 0xE9 0x20 0x70 0x6F, line 7, column 31
La syntaxe de la ligne 7 du fichier XML comporte une erreur …
merci pour cet article, et pour tous les autres que vous avez écrits sur odoo 8
mon problème est le suivant :
comment traduire le texte mis dans une édition qweb? j’essaie de créer un terme dans configuration/traductions/termes de l’application,
mais odoo me demande le nom du champ traduit…
comment faire ?