From 2f68cf086f1f2e2074fba05625ebbbd99c5082f3 Mon Sep 17 00:00:00 2001 From: Cybrosys Technologies Date: Fri, 27 Jun 2025 16:10:03 +0530 Subject: [PATCH] Jun 27: [FIX] Bug Fixed 'cron_failure_notification' --- cron_failure_notification/__manifest__.py | 14 ++++----- .../data/mail_template_data.xml | 4 +-- .../doc/RELEASE_NOTES.md | 6 ++++ cron_failure_notification/models/ir_cron.py | 29 +++++++++++++++---- 4 files changed, 38 insertions(+), 15 deletions(-) diff --git a/cron_failure_notification/__manifest__.py b/cron_failure_notification/__manifest__.py index 28f88aeb3..753d4d129 100755 --- a/cron_failure_notification/__manifest__.py +++ b/cron_failure_notification/__manifest__.py @@ -21,7 +21,7 @@ ################################################################################ { 'name': "Cron Failure Notification", - 'version': '17.0.1.0.0', + 'version': '17.0.1.1.1', 'category': 'Discuss', 'summary': 'Notify the Admin About Cron Failures Via Mail', 'description': """This module helps to send notification to admin with @@ -32,12 +32,12 @@ 'website': 'https://www.cybrosys.com', 'depends': ['mail'], 'data': ['security/ir.model.access.csv', - 'report/ir_cron_failure_templates.xml', - 'report/ir_cron_reports.xml', - 'data/failure_mail_data.xml', - 'data/mail_template_data.xml', - 'views/ir_cron_views.xml', - 'views/failure_history_views.xml'], + 'report/ir_cron_failure_templates.xml', + 'report/ir_cron_reports.xml', + 'data/failure_mail_data.xml', + 'data/mail_template_data.xml', + 'views/ir_cron_views.xml', + 'views/failure_history_views.xml'], 'images': ['static/description/banner.jpg'], 'license': 'AGPL-3', 'installable': True, diff --git a/cron_failure_notification/data/mail_template_data.xml b/cron_failure_notification/data/mail_template_data.xml index e16e9108f..43c2e3e54 100755 --- a/cron_failure_notification/data/mail_template_data.xml +++ b/cron_failure_notification/data/mail_template_data.xml @@ -5,8 +5,8 @@ Mail: Cron Action Error - {{ object.name }} Cron Failed - {{ ctx[ 'admin_mail' ] }} + Scheduled Cron Failed + {{ctx.get('email_to')}}

Dear Admin,

diff --git a/cron_failure_notification/doc/RELEASE_NOTES.md b/cron_failure_notification/doc/RELEASE_NOTES.md index 443e5a585..3a95f12f3 100755 --- a/cron_failure_notification/doc/RELEASE_NOTES.md +++ b/cron_failure_notification/doc/RELEASE_NOTES.md @@ -5,3 +5,9 @@ #### ADD - Initial commit for Cron Failure Notification + +#### 27.06.2025 +#### Version 17.0.1.1.1 +#### ADD + +- Fixed issue in python logic and updated the mail template. diff --git a/cron_failure_notification/models/ir_cron.py b/cron_failure_notification/models/ir_cron.py index 8ee9930a5..4181df1ad 100755 --- a/cron_failure_notification/models/ir_cron.py +++ b/cron_failure_notification/models/ir_cron.py @@ -19,6 +19,7 @@ # If not, see . # ################################################################################ +import base64 import datetime import logging import odoo @@ -77,11 +78,27 @@ class IrCron(models.Model): [('create_date', '>', start_of_day), ('create_date', '<', end_of_day)]) if failure: - admin_mail = self.env['res.groups'].search( - [('category_id', '=', 'Administration'), - ('name', '=', 'Access Rights')]).users.login - email_values = {'admin_mail': admin_mail} + admins = self.env.ref('base.group_erp_manager') + admins_email = self.env.ref('base.group_erp_manager').users if admins else '' + admins_email = ','.join(admins_email.mapped('login')) if admins_email else '' + email_values = {'email_to': admins_email, + 'email_from': self.env.user.email} mail_template = self.env.ref( 'cron_failure_notification.mail_template_cron_error') - mail_template.with_context(email_values).send_mail(self.id, - force_send=True) + report_template_id = self.env['ir.actions.report']._render_qweb_pdf( + report_ref='cron_failure_notification.cron_fail_pdf_report', + res_ids=False, + ) + data_record = base64.b64encode(report_template_id[0]) + ir_values = { + 'name': "Scheduled Cron Job Failed Attachment.pdf", + 'type': 'binary', + 'datas': data_record, + 'store_fname': data_record, + 'mimetype': 'application/x-pdf', + } + data_id = self.env['ir.attachment'].create(ir_values) + mail_template.attachment_ids = [(6, 0, [data_id.id])] + mail_template.with_context(email_values).send_mail(self.id, email_values=email_values, force_send=True) + mail_template.attachment_ids = [(3, data_id.id)] + return True