Hi all,
I'd like to use the following function to compute the total cost of goods in the transport document:
reduce(lambda x, y: x+y['product_id']['product_tmpl_id']['list_price']*y['product_uom_qty'], o.move_lines, 0)
With odoo 8 and python2, it worked perfectly.
Now, with odoo 12 and python 3, the report generation return the error
NameError: name 'reduce' is not defined
I believe that I have to import the reduce function
from functools import reduce
in some scripts, but I don't know which script is responsible for report generation. I'm including the python errors below.
Thanks in advance!!
Paolo
Traceback (most recent call last):
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 347, in _compiled_fn
return compiled(self, append, new, options, log)
File "<template>", line 1, in template_paolo_reports_report_ddt_39
File "<template>", line 2, in body_call_content_38
NameError: name 'reduce' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/web/controllers/main.py", line 1671, in report_download
response = self.report_routes(reportname, docids=docids, converter=converter)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/http.py", line 519, in response_wrap
response = f(*args, **kw)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/web/controllers/main.py", line 1612, in report_routes
pdf = report.with_context(context).render_qweb_pdf(docids, data=data)[0]
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_actions_report.py", line 713, in render_qweb_pdf
html = self.with_context(context).render_qweb_html(res_ids, data=data)[0]
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_actions_report.py", line 753, in render_qweb_html
return self.render_template(self.report_name, data), 'html'
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_actions_report.py", line 535, in render_template
return view_obj.render_template(template, values)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_ui_view.py", line 1305, in render_template
return self.browse(self.get_view_id(template)).render(values, engine)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/web_editor/models/ir_ui_view.py", line 27, in render
return super(IrUiView, self).render(values=values, engine=engine, minimal_qcontext=minimal_qcontext)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_ui_view.py", line 1314, in render
return self.env[engine].render(self.id, qcontext)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/ir_qweb.py", line 60, in render
result = super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 275, in render
self.compile(template, options)(self, body.append, values or {})
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 349, in _compiled_fn
raise e
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 347, in _compiled_fn
return compiled(self, append, new, options, log)
File "<template>", line 1, in template_1298_8
File "<template>", line 2, in body_call_content_7
File "<template>", line 3, in foreach_6
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 354, in _compiled_fn
raise QWebException("Error to render compiling AST", e, path, node and etree.tostring(node[0], encoding='unicode'), name)
odoo.addons.base.models.qweb.QWebException: name 'reduce' is not defined
Traceback (most recent call last):
File "/home/odoo12p/odoo/lib/python3.7/site-packages/odoo/addons/base/models/qweb.py", line 347, in _compiled_fn
return compiled(self, append, new, options, log)
File "<template>", line 1, in template_paolo_reports_report_ddt_39
File "<template>", line 2, in body_call_content_38
NameError: name 'reduce' is not defined
Error to render compiling AST
NameError: name 'reduce' is not defined
Template: paolo_reports.report_ddt
Path: /templates/t/t/div/table[2]/tbody/tr[2]/td[7]/p/span
Node: <span t-esc="reduce(lambda x, y: x+y['product_id']['product_tmpl_id']['list_price']*y['product_uom_qty'], o.move_lines, 0)" t-esc-options="{"widget": "monetary", "display_currency": "o.partner_id.company_id.currency_id", "precision":"-3"}"/>