From 15b9725f0d02eebd3154e9f7b611d91649df70de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roc=C3=ADo=20Vega?= Date: Thu, 8 Jan 2026 11:34:46 -0300 Subject: [PATCH] [ADD] bg_job: Implement retry functionality for failed jobs and enhance views --- .../__manifest__.py | 3 +- .../models/__init__.py | 1 + .../models/bg_job.py | 40 +++++++++++++ .../views/bg_job_views.xml | 60 +++++++++++++++++++ 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 account_statement_import_sheet_file_bg/models/bg_job.py create mode 100644 account_statement_import_sheet_file_bg/views/bg_job_views.xml diff --git a/account_statement_import_sheet_file_bg/__manifest__.py b/account_statement_import_sheet_file_bg/__manifest__.py index 4645a9e7..de638559 100644 --- a/account_statement_import_sheet_file_bg/__manifest__.py +++ b/account_statement_import_sheet_file_bg/__manifest__.py @@ -1,6 +1,6 @@ { "name": "Account statement import sheet file BG", - "version": "18.0.1.0.1", + "version": "18.0.1.0.2", "category": "Productivity/Documents", "summary": "Integration between Documents and Base BG modules", "depends": [ @@ -9,6 +9,7 @@ ], "data": [ "data/ir_config_parameter_data.xml", + "views/bg_job_views.xml", ], "demo": [], "installable": True, diff --git a/account_statement_import_sheet_file_bg/models/__init__.py b/account_statement_import_sheet_file_bg/models/__init__.py index ae69bca2..4b6aab5e 100644 --- a/account_statement_import_sheet_file_bg/models/__init__.py +++ b/account_statement_import_sheet_file_bg/models/__init__.py @@ -1 +1,2 @@ from . import account_statement_import +from . import bg_job diff --git a/account_statement_import_sheet_file_bg/models/bg_job.py b/account_statement_import_sheet_file_bg/models/bg_job.py new file mode 100644 index 00000000..ac0a97f0 --- /dev/null +++ b/account_statement_import_sheet_file_bg/models/bg_job.py @@ -0,0 +1,40 @@ +# Copyright 2020 CorporateHub (https://corporatehub.eu) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import _, models +from odoo.exceptions import UserError + + +class BgJob(models.Model): + _inherit = "bg.job" + + def action_retry_batch(self): + """ + Action to retry multiple failed jobs at once + """ + failed_jobs = self.filtered(lambda j: j.state == "failed") + if not failed_jobs: + raise UserError(_("Please select only failed jobs to retry")) + + other_jobs = self - failed_jobs + if other_jobs: + raise UserError(_("Some selected jobs are not in failed state and cannot be retried")) + + failed_jobs.write( + { + "state": "enqueued", + "retry_count": 0, + "error_message": False, + } + ) + + return { + "type": "ir.actions.client", + "tag": "display_notification", + "params": { + "title": _("Jobs Requeued"), + "type": "success", + "message": _("%s job(s) have been requeued for retry") % len(failed_jobs), + "sticky": False, + }, + } diff --git a/account_statement_import_sheet_file_bg/views/bg_job_views.xml b/account_statement_import_sheet_file_bg/views/bg_job_views.xml new file mode 100644 index 00000000..bfcb64e8 --- /dev/null +++ b/account_statement_import_sheet_file_bg/views/bg_job_views.xml @@ -0,0 +1,60 @@ + + + + + + bg.job.list.inherit + bg.job + + + +
+
+
+
+
+ + + + bg.job.search.inherit + bg.job + + + + + + + + + + + + + Failed Statement Import Jobs + bg.job + list,form + [('model', '=', 'account.statement.import'), ('state', '=', 'failed')] + {'search_default_failed_statement_import': 1} + +

+ No failed statement import jobs! +

+

+ When a bank statement import job fails during background processing, + it will appear here. You can select failed jobs and use the + "Retry Selected" button to requeue them for processing. +

+
+
+ + + + +