odoorpc.report

This module provide the Report class to list available reports and to generate/download them.

class odoorpc.report.Report(odoo)

The Report class represents the report management service. It provides methods to list and download available reports from the server.

Note

This service have to be used through the odoorpc.ODOO.report property.

>>> import odoorpc
>>> odoo = odoorpc.ODOO('localhost', port=8069)
>>> odoo.login('odoorpc_test', 'admin', 'password')
>>> odoo.report
<odoorpc.report.Report object at 0x7f82fe7a1d50>
download(name, ids, datas=None, context=None)

Download a report from the server and return it as a remote file. For instance, to download the “Quotation / Order” report of sale orders identified by the IDs [2, 3]:

>>> report = odoo.report.download('sale.report_saleorder', [2, 3])

Write it on the file system:

>>> with open('sale_orders.pdf', 'wb') as report_file:
...     report_file.write(report.read())
...

Python 2:

Returns

io.BytesIO

Raise

odoorpc.error.RPCError (wrong parameters)

Raise

ValueError (received invalid data)

Raise

urllib2.URLError (connection error)

Python 3:

Returns

io.BytesIO

Raise

odoorpc.error.RPCError (wrong parameters)

Raise

ValueError (received invalid data)

Raise

urllib.error.URLError (connection error)

list()

List available reports from the server by returning a dictionary with reports classified by data model:

>>> from odoorpc.tools import v
>>> inv_model = 'account.move'
>>> if v(VERSION) < v('13.0'):
...     inv_model = 'account.invoice'
>>> odoo.report.list()[inv_model]
[{'name': u'Duplicates',
  'report_name': u'account.account_invoice_report_duplicate_main',
  'report_type': u'qweb-pdf'},
 {'name': 'Invoices',
  'report_type': 'qweb-pdf',
  'report_name': 'account.report_invoice'}]

Python 2:

Returns

list of dictionaries

Raise

urllib2.URLError (connection error)

Python 3:

Returns

list of dictionaries

Raise

urllib.error.URLError (connection error)