Browse Source

Jun 27: [FIX] Bug Fixed 'cron_failure_notification'

16.0
Cybrosys Technologies 1 month ago
parent
commit
0ce14e846c
  1. 2
      cron_failure_notification/__manifest__.py
  2. 6
      cron_failure_notification/data/mail_template_data.xml
  3. 8
      cron_failure_notification/doc/RELEASE_NOTES.md
  4. 29
      cron_failure_notification/models/ir_cron.py

2
cron_failure_notification/__manifest__.py

@ -21,7 +21,7 @@
################################################################################
{
'name': "Cron Failure Notification",
'version': '16.0.1.0.0',
'version': '16.0.1.1.1',
'category': 'Discuss',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',

6
cron_failure_notification/data/mail_template_data.xml

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<!-- ir cron fail mail template -->
<!-- ir cron fail mail template -->
<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" ref="cron_fail_pdf_report"/>
<field name="body_html" type="html">
<p>Dear Admin,</p>

8
cron_failure_notification/doc/RELEASE_NOTES.md

@ -4,4 +4,10 @@
#### Version 16.0.1.0.0
#### ADD
- Initial commit for Cron Failure Notification
- Initial commit for Cron Failure Notification
#### 27.06.2025
#### Version 16.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