im facing a problem in qweb report, i followed this tutorial http://blog.emiprotechnologies.com/create-qweb-report-odoo/ to create qweb report, it worked fine with the static data of my current module, but when i try to create a parser class for dynamic data, i get this error " QWebException: "'NoneType' object is not callable" while evaluating " here it's my python class :
from openerp.osv import osv
from openerp.report import report_sxw
class etudiant_report_parser(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(etudiant_report_parser, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'hello_world': self.hello_world,
})
self.context = context
def hello_world(self):
return "hello"
class etudiant_object_report(osv.AbstractModel):
_name = 'report.gestion_des_etudiants.etudiant_report'
_inherit = 'report.abstract_report'
_template = 'gestion_des_etudiants.etudiant_report'
_wrapped_report_class = etudiant_report_parser
And in my xml file etudiant_report.xml I added this line :
<span t-esc=”hello_world()”/>
But when I print the report I get the error :
QWebException: "'NoneType' object is not callable" while evaluating
Here it's the arborescence of my module :
/report/init.py <--- to load the etudiant_report.xml which contains the parser class
/report/etudiant_report.py <--- ...contains the parser class
/views/report_etudiant.xml <--- the xml file for the report
init.py
openerp.py
etudiant_view.xml
etudiant_report.xml <--- the menu of the report
etudiant.py
Another thing I noticed, when I go into the folder " report " I don't find any .pyc file, for init.py and etudiant_report.py
In order to call a custom method from the model you can do followings.
Define the method in your model
And then call the method from the qweb. here is the sample code of the qweb which is calling the custom method from the model.
It will help you!