[12.0][ADD] report_async

This commit is contained in:
kittiu
2019-12-11 00:26:27 +07:00
committed by Kitti U
parent 06cf8a8563
commit 531eb0e118
20 changed files with 1074 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
# Copyright 2019 Ecosoft Co., Ltd (http://ecosoft.co.th/)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
from odoo import api, models
# Define all supported report_type
REPORT_TYPES = ['qweb-pdf', 'qweb-text',
'qweb-xml', 'csv',
'excel', 'xlsx']
class Report(models.Model):
_inherit = 'ir.actions.report'
@api.noguess
def report_action(self, docids, data=None, config=True):
res = super(Report, self).report_action(docids, data=data,
config=config)
if res['context'].get('async_process', False):
rpt_async_id = res['context']['active_id']
report_async = self.env['report.async'].browse(rpt_async_id)
if res['report_type'] in REPORT_TYPES:
report_async.with_delay().run_report(
res['context'].get('active_ids', []), data,
self.id, self._uid)
return {}
return res