[MIG] report_async: Migration to 17.0

This commit is contained in:
Sakthivel
2024-05-10 18:11:47 +05:30
parent 21310d51a7
commit efcecf04d1
4 changed files with 34 additions and 46 deletions

View File

@@ -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",

View File

@@ -1,7 +1,7 @@
# 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
from odoo import SUPERUSER_ID, api, models
class IrActionsActWindow(models.Model):
@@ -10,17 +10,17 @@ class IrActionsActWindow(models.Model):
@api.model
def name_search(self, name, args=None, operator="ilike", limit=100):
if self._context.get("access_sudo", False):
self = self.sudo()
self = self.with_user(SUPERUSER_ID)
return super().name_search(name, args, operator, limit)
@api.model
def search(self, args, offset=0, limit=None, order=None, count=False):
def search(self, args, offset=0, limit=None, order=None):
if self._context.get("access_sudo", False):
self = self.sudo()
return super().search(args, offset, limit, order, count)
self = self.with_user(SUPERUSER_ID)
return super().search(args, offset, limit, order)
def _read(self, fields):
def fetch(self, field_names):
"""Add permission to read analytic account for do something."""
if self._context.get("access_sudo", False):
self = self.sudo()
return super()._read(fields)
self = self.with_user(SUPERUSER_ID)
return super().fetch(field_names)

View File

@@ -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 @@ class ReportAsync(models.Model):
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 @@ class ReportAsync(models.Model):
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 @@ class ReportAsync(models.Model):
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 @@ class ReportAsync(models.Model):
# Save report to attachment
attachment = (
self.env["ir.attachment"]
.sudo()
.with_user(SUPERUSER_ID)
.create(
{
"name": out_name,

View File

@@ -12,20 +12,17 @@
name="run_async"
string="Run Background"
icon="fa-cogs"
attrs="{'invisible': [('allow_async', '=', False)]}"
invisible="not allow_async"
/>
<button
type="object"
name="view_files"
string="Files"
icon="fa-copy"
attrs="{'invisible': [('allow_async', '=', False)]}"
/>
<field name="allow_async" invisible="1" />
<field
name="job_status"
attrs="{'invisible': [('allow_async', '=', False)]}"
invisible="not allow_async"
/>
<field name="allow_async" column_invisible="1" />
<field name="job_status" optional="hide" />
<field name="email_notify" />
</tree>
</field>
@@ -38,8 +35,7 @@
<div
class="alert alert-warning"
role="alert"
attrs="{'invisible': ['|', ('job_status', 'in', ['done', 'failed', False]),
('allow_async', '=', False)]}"
invisible="not allow_async or (job_status in ['done', 'failed', False])"
style="margin-bottom:0px;"
>
<p>
@@ -51,8 +47,7 @@
<div
class="alert alert-danger"
role="alert"
attrs="{'invisible': ['|', ('job_status', '!=', 'failed'),
('allow_async', '=', False)]}"
invisible="not allow_async or job_status != 'failed'"
style="margin-bottom:0px;"
>
<p>
@@ -63,8 +58,7 @@
<div
class="alert alert-success"
role="alert"
attrs="{'invisible': ['|', ('job_status', '!=', 'done'),
('allow_async', '=', False)]}"
invisible="not allow_async or job_status != 'done'"
style="margin-bottom:0px;"
>
<p>
@@ -75,7 +69,7 @@
</p>
</div>
<sheet>
<div class="oe_read_only oe_right oe_button_box" name="buttons">
<div class="oe_button_box" name="button_box">
<button
type="object"
name="run_now"
@@ -87,14 +81,14 @@
name="run_async"
string="Run Background"
icon="fa-cogs"
attrs="{'invisible': [('allow_async', '=', False)]}"
invisible="not allow_async"
/>
<button
type="object"
name="view_files"
string="Files"
icon="fa-copy"
attrs="{'invisible': [('allow_async', '=', False)]}"
invisible="not allow_async"
/>
<button
type="object"
@@ -102,7 +96,7 @@
string="Jobs"
icon="fa-align-justify"
groups="queue_job.group_queue_job_manager"
attrs="{'invisible': [('allow_async', '=', False)]}"
invisible="not allow_async"
/>
</div>
<group>
@@ -113,23 +107,17 @@
context="{'access_sudo': True}"
/>
<field name="allow_async" />
<field
name="email_notify"
attrs="{'invisible': [('allow_async', '=', False)]}"
/>
<field name="email_notify" invisible="not allow_async" />
</group>
<group>
<field
name="job_status"
attrs="{'invisible': [('allow_async', '=', False)]}"
/>
<field name="job_status" invisible="not allow_async" />
<field name="group_ids" widget="many2many_tags" />
</group>
<group
name="job_info"
string="Last Run Job Error"
colspan="2"
attrs="{'invisible': ['|', ('job_info', '=', False), ('allow_async', '=', False)]}"
invisible="not allow_async or not job_info"
>
<field nolabel="1" name="job_info" />
</group>
@@ -155,7 +143,7 @@
</record>
<menuitem
id="menu_report_async"
parent="base.menu_board_root"
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
action="action_report_async"
sequence="10"
/>