Report Async

report_async
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/17.0/report_async
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Atchuthan, Sodexis, oca-ci, Sakthivel
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - base_sparse_field
    - spreadsheet_dashboard
    - spreadsheet
    - portal
    - web_editor
    - http_routing
    - auth_signup
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
The new menu "Report Center" is the central place to host your reports
in one place. From here, there are 2 ways to launch the report,

1.  Run Now - run report immediately as per normal.
2.  Run Background - put the report execution to queue job.

By using the queue job, option 2 is great for long running report. The
report file will be saved for later use, with the option to send report
by email as soon as it is ready.

Notes:

- Only user with Technical Feature rights can manage the report.
- Every internal user will have right to execute the report allowed for
  his/her groups.
- The files created are owned and viewable only by the person who run
  the report.
- Job queue manager can also see all jobs for each reports.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
print_report_wizard print.report.wizard print.report.wizard form New
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (0)

No new fields.

Public methods (3)
  • fetch(self, field_names)
    Add permission to read analytic account for do something.
  • name_search(self, name, args=None, operator='ilike', limit=100)
    @api.model
  • search(self, args, offset=0, limit=None, order=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • report_action(self, docids, data=None, config=True)

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)

New fields (9)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
Public methods (5)
  • run_async(self)
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id)
    @api.model
  • view_files(self)
  • view_jobs(self)
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/16.0/report_async
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Zina Rasoamanana, Nikul-OSI, ArnauCForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - base_sparse_field
    - spreadsheet_dashboard
    - spreadsheet
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
print_report_wizard print.report.wizard print.report.wizard form New
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (0)

No new fields.

Public methods (2)
  • name_search(self, name, args=None, operator='ilike', limit=100)
    @api.model
  • search(self, args, offset=0, limit=None, order=None, count=False)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • report_action(self, docids, data=None, config=True)

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)

New fields (9)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
Public methods (5)
  • run_async(self)
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id)
    @api.model
  • view_files(self)
  • view_jobs(self)
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/15.0/report_async
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSDaniel Reis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
print_report_wizard print.report.wizard print.report.wizard form New
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (0)

No new fields.

Public methods (2)
  • name_search(self, name, args=None, operator='ilike', limit=100)
    @api.model
  • search(self, args, offset=0, limit=None, order=None, count=False)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • report_action(self, docids, data=None, config=True)

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)

New fields (9)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
Public methods (5)
  • run_async(self)
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id)
    @api.model
  • view_files(self)
  • view_jobs(self)
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/14.0/report_async
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSOCA Transbot, Weblate, OCA-git-bot, oca-ci, Kitti U, KKamaa, Héctor Vi Or
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
async_act_report_xml_view async_report_view ir.actions.report xpath Inherits base.act_report_xml_view
print_report_wizard print.report.wizard print.report.wizard form New
report_async_assets_backend Report Async Assets ir.ui.view qweb Inherits web.assets_backend
report_async_tests Report Async Tests ir.ui.view qweb Inherits web.qunit_suite_tests
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (0)

No new fields.

Public methods (2)
  • name_search(self, name, args=None, operator='ilike', limit=100)
    @api.model
  • search(self, args, offset=0, limit=None, order=None, count=False)
    @api.model

New fields (3)
  • async_mail_recipient Char
    default=<expr> help='The email that will receive the async report' string='Mail Recipient'
  • async_no_records Integer
    default=100 help='Min no of records to use async report functionality; e.g 100+' string='Min of Records'
  • async_report Boolean
    default=False
Public methods (1)
  • report_action(self, docids, data=None, config=True)

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)

New fields (0)

No new fields.

Public methods (1)
  • create(self, values)
    @api.model

New fields (9)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process' string='Allow Async'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
Public methods (6)
  • print_document_async(self, record_ids, report_name, html=None, data=None, to_email='', save_attachment_to_records=False)
    @api.model
    Generate a document async, do not return the document file
  • run_async(self)
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id, email_notify=False, to_email=None, session_id=None, save_attachment_to_records=False)
    @api.model
  • view_files(self)
  • view_jobs(self)
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/13.0/report_async
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSoca-travis, OCA-git-bot, Kitti U
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
print_report_wizard print.report.wizard print.report.wizard form New
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • report_action(self, docids, data=None, config=True)

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)

New fields (9)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process' string='Allow Async'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
Public methods (5)
  • run_async(self)
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id)
    @api.model@job
  • view_files(self)
  • view_jobs(self)
REPOSITORY
REPOSITORYOCA/reporting-engine
GIT
GIThttps://github.com/OCA/reporting-engine.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/reporting-engine/tree/12.0/report_async
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYGeneric Modules
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSOCA Transbot, Miquel Raïch, oca-travis, Weblate, OCA-git-bot, oca-ci, kittiu, RicardCForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/reporting-engine
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:24
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
print_report_wizard print.report.wizard print.report.wizard form New
view_report_async_form report.async.form report.async form New
view_report_async_search report.async.search report.async search New
view_report_async_tree report.async.tree report.async tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • report_action(self, docids, data=None, config=True)
    @api.noguess

New fields (2)
  • action_report_id Many2one → ir.actions.report
    comodel_name='ir.actions.report' required=True string='Report Template'
  • reference Reference
    required=True selection='_reference_models' string='Document'
Public methods (1)
  • print_report(self)
    @api.multi

New fields (11)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' required=True string='Reports'
  • allow_async Boolean
    default=False help='This is not automatic field, please check if you want to allow this report in background process' string='Allow Async'
  • email_notify Boolean
    help='Send email with link to report, when it is ready' string='Email Notification'
  • file_ids Many2many → ir.attachment
    comodel_name='ir.attachment' compute='_compute_file' help='List all files created by this report background process'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='Only user in selected groups can use this report.If left blank, everyone can use' string='Groups'
  • job_ids Many2many → queue.job
    comodel_name='queue.job' compute='_compute_job' help='List all jobs related to this running report'
  • job_info Text
    compute='_compute_job' help='Latest Job Error Message'
  • job_status Selection
    compute='_compute_job' help='Latest Job Status' selection=[('pending', 'Pending'), ('enqueued', 'Enqueued'), ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')]
  • name Char
    related='action_id.display_name' string='Name'
  • schedule_date Date
    help='Date when the job will be executed' string='Schedule Date'
  • schedule_time Char
    help='Time when the job will be executed' string='Schedule Time'
Public methods (5)
  • run_async(self)
    @api.multi
  • run_now(self)
  • run_report(self, docids, data, report_id, user_id)
    @api.model@job
  • view_files(self)
    @api.multi
  • view_jobs(self)
    @api.multi
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/reporting-engine
PULL REQUEST
PULL REQUEST[19.0][MIG] report_async: Migration to 19.0 (#1174)