diff --git a/report_async/__manifest__.py b/report_async/__manifest__.py
index 0f770f701e..d6b2147ad2 100644
--- a/report_async/__manifest__.py
+++ b/report_async/__manifest__.py
@@ -8,7 +8,7 @@
"license": "AGPL-3",
"website": "https://github.com/OCA/reporting-engine",
"category": "Generic Modules",
- "depends": ["queue_job"],
+ "depends": ["queue_job", "spreadsheet_dashboard"],
"data": [
"security/ir.model.access.csv",
"security/ir_rule.xml",
diff --git a/report_async/models/report_async.py b/report_async/models/report_async.py
index 365f61439b..183e2ddb67 100644
--- a/report_async/models/report_async.py
+++ b/report_async/models/report_async.py
@@ -3,7 +3,7 @@
import base64
-from odoo import _, api, fields, models
+from odoo import SUPERUSER_ID, _, api, fields, models
from odoo.exceptions import UserError
from odoo.tools.safe_eval import safe_eval
@@ -102,8 +102,7 @@ def _compute_file(self):
def run_now(self):
self.ensure_one()
- action = self.env.ref(self.action_id.xml_id)
- result = action.sudo().read()[0]
+ result = self.env[self.action_id.type]._for_xml_id(self.action_id.xml_id)
ctx = safe_eval(result.get("context", {}))
ctx.update({"async_process": False})
result["context"] = ctx
@@ -113,8 +112,7 @@ def run_async(self):
self.ensure_one()
if not self.allow_async:
raise UserError(_("Background process not allowed."))
- action = self.env.ref(self.action_id.xml_id)
- result = action.sudo().read()[0]
+ result = self.env[self.action_id.type]._for_xml_id(self.action_id.xml_id)
ctx = safe_eval(result.get("context", {}))
ctx.update({"async_process": True})
result["context"] = ctx
@@ -122,15 +120,17 @@ def run_async(self):
def view_files(self):
self.ensure_one()
- action = self.env.ref("report_async.action_view_files")
- result = action.sudo().read()[0]
+ result = self.env["ir.actions.act_window"]._for_xml_id(
+ "report_async.action_view_files"
+ )
result["domain"] = [("id", "in", self.file_ids.ids)]
return result
def view_jobs(self):
self.ensure_one()
- action = self.env.ref("queue_job.action_queue_job")
- result = action.sudo().read()[0]
+ result = self.env["ir.actions.act_window"]._for_xml_id(
+ "queue_job.action_queue_job"
+ )
result["domain"] = [("id", "in", self.job_ids.ids)]
result["context"] = {}
return result
@@ -146,7 +146,7 @@ def run_report(self, docids, data, report_id, user_id):
# Save report to attachment
attachment = (
self.env["ir.attachment"]
- .sudo()
+ .with_user(SUPERUSER_ID)
.create(
{
"name": out_name,
diff --git a/report_async/views/report_async.xml b/report_async/views/report_async.xml
index a0b7400e88..b2ce077df9 100644
--- a/report_async/views/report_async.xml
+++ b/report_async/views/report_async.xml
@@ -12,20 +12,17 @@
name="run_async"
string="Run Background"
icon="fa-cogs"
- attrs="{'invisible': [('allow_async', '=', False)]}"
+ invisible="not allow_async"
/>
-
@@ -51,8 +47,7 @@
@@ -63,8 +58,7 @@
@@ -75,7 +69,7 @@