Browse Source

Jun 27: [FIX] Bug Fixed 'cron_failure_notification'

pull/336/merge
Cybrosys Technologies 1 month ago
parent
commit
2f68cf086f
  1. 14
      cron_failure_notification/__manifest__.py
  2. 4
      cron_failure_notification/data/mail_template_data.xml
  3. 6
      cron_failure_notification/doc/RELEASE_NOTES.md
  4. 29
      cron_failure_notification/models/ir_cron.py

14
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,

4
cron_failure_notification/data/mail_template_data.xml

@ -5,8 +5,8 @@
<record id="mail_template_cron_error" model="mail.template">
<field name="name">Mail: Cron Action Error</field>
<field name="model_id" ref="cron_failure_notification.model_ir_cron"/>
<field name="subject">{{ object.name }} Cron Failed</field>
<field name="email_to">{{ ctx[ 'admin_mail' ] }}</field>
<field name="subject">Scheduled Cron Failed</field>
<field name="email_to">{{ctx.get('email_to')}}</field>
<field name="report_template_ids" eval="[(4, ref('cron_failure_notification.cron_fail_pdf_report'))]"/>
<field name="body_html" type="html">
<p>Dear Admin,</p>

6
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.

29
cron_failure_notification/models/ir_cron.py

@ -19,6 +19,7 @@
# If not, see <http://www.gnu.org/licenses/>.
#
################################################################################
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

Loading…
Cancel
Save