From ce30068b1893cfc21ab4fc26034eb2f331466db0 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 29 Sep 2013 23:54:55 +0200
Subject: [PATCH] Port to OpenERP 7.0. Add logo and screenshot. Add demo
scheduler and test/debug function.
---
scheduler_error_mailer/__init__.py | 9 ++-
scheduler_error_mailer/__openerp__.py | 23 ++++---
.../images/scheduler_error_mailer.jpg | Bin 0 -> 29784 bytes
scheduler_error_mailer/ir_cron.py | 41 +++++++++----
scheduler_error_mailer/ir_cron.xml | 34 +++++------
scheduler_error_mailer/ir_cron_demo.xml | 27 +++++++++
scheduler_error_mailer/ir_cron_email_tpl.xml | 56 ++++++++++++------
.../static/src/img/icon.png | Bin 0 -> 5032 bytes
scheduler_error_mailer/test_fail_scheduler.py | 39 ------------
9 files changed, 129 insertions(+), 100 deletions(-)
create mode 100644 scheduler_error_mailer/images/scheduler_error_mailer.jpg
create mode 100644 scheduler_error_mailer/ir_cron_demo.xml
create mode 100644 scheduler_error_mailer/static/src/img/icon.png
delete mode 100644 scheduler_error_mailer/test_fail_scheduler.py
diff --git a/scheduler_error_mailer/__init__.py b/scheduler_error_mailer/__init__.py
index 82ee32f70..36504c54b 100644
--- a/scheduler_error_mailer/__init__.py
+++ b/scheduler_error_mailer/__init__.py
@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
##############################################################################
#
-# Scheduler error mailer module for OpenERP
-# Copyright (C) 2012 Akretion
+# Scheduler Error Mailer module for OpenERP
+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com/)
# @author: Sébastien Beau
+# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -20,6 +21,4 @@
#
##############################################################################
-import ir_cron
-# import test_fail_scheduler
-
+from . import ir_cron
diff --git a/scheduler_error_mailer/__openerp__.py b/scheduler_error_mailer/__openerp__.py
index c477c4e64..b1cb4dfe6 100644
--- a/scheduler_error_mailer/__openerp__.py
+++ b/scheduler_error_mailer/__openerp__.py
@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
-# Scheduler error mailer module for OpenERP
-# Copyright (C) 2012 Akretion
+# Scheduler Error Mailer module for OpenERP
+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com/)
# @author: Sébastien Beau
# @author David Beal
# @author Alexis de Lattre
@@ -24,18 +24,25 @@
{
- 'name': 'Scheduler error mailer',
+ 'name': 'Scheduler Error Mailer',
+ 'summary': 'Send an e-mail when a scheduler fails',
'version': '1.0',
'category': 'Extra Tools',
'license': 'AGPL-3',
- 'description': """This module adds the possibility to send an e-mail when a scheduler raises an error""",
+ 'description': """
+Scheduler Error Mailer
+======================
+
+This module adds the possibility to send an e-mail when a scheduler raises an error.""",
'author': 'Akretion',
'website': 'http://www.akretion.com/',
'depends': ['email_template'],
- 'init_xml': [],
- 'update_xml': ['ir_cron.xml', 'ir_cron_email_tpl.xml'],
- 'demo_xml': [],
+ 'data': [
+ 'ir_cron.xml',
+ 'ir_cron_email_tpl.xml',
+ ],
+ 'demo': ['ir_cron_demo.xml'],
+ 'images': ['images/scheduler_error_mailer.jpg'],
'installable': True,
'active': False,
}
-
diff --git a/scheduler_error_mailer/images/scheduler_error_mailer.jpg b/scheduler_error_mailer/images/scheduler_error_mailer.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a8a3af766a54c209723d9be24d05c1302ad01bbb
GIT binary patch
literal 29784
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
N(RfMZ6wk-L{{YH#n!f-5
literal 0
HcmV?d00001
diff --git a/scheduler_error_mailer/ir_cron.py b/scheduler_error_mailer/ir_cron.py
index 8782eb0b7..770a78fbb 100644
--- a/scheduler_error_mailer/ir_cron.py
+++ b/scheduler_error_mailer/ir_cron.py
@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*-
#################################################################################
#
-# Scheduler error mailer module for OpenERP
-# Copyright (C) 2012 Akretion
+# Scheduler Error Mailer module for OpenERP
+# Copyright (C) 2012-2013 Akretion (http://www.akretion.com/)
# @author: Sébastien Beau
# @author David Beal
# @author Alexis de Lattre
@@ -22,28 +22,45 @@
#
##############################################################################
-from osv import osv, fields
-from datetime import datetime
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+import logging
+logger = logging.getLogger(__name__)
-class ir_cron(osv.osv):
+class ir_cron(orm.Model):
_inherit = "ir.cron"
_columns = {
- 'email_template' : fields.many2one('email.template', 'E-mail template'),
+ 'email_template': fields.many2one('email.template',
+ 'Error E-mail Template',
+ help="Select the email template that will be sent when this scheduler fails."),
}
- def _handle_callback_exception(self, cr, uid, model, func, args, job_id, job_exception):
+ def _handle_callback_exception(self, cr, uid, model_name, method_name, args, job_id, job_exception):
- res = super(ir_cron, self)._handle_callback_exception(cr, uid, model, func, args, job_id, job_exception)
+ res = super(ir_cron, self)._handle_callback_exception(cr, uid,
+ model_name, method_name, args, job_id, job_exception)
my_cron = self.browse(cr, uid, job_id)
- if my_cron.email_template.id:
- # we put the job_exception in context to be able to get it inside the mail template
+ if my_cron.email_template:
+ # we put the job_exception in context to be able to print it inside
+ # the email template
context = {'job_exception': job_exception}
- id_mail_messsage = self.pool.get('email.template').send_mail(cr, uid,
- my_cron.email_template.id, my_cron.id, force_send=True, context=context)
+ logger.debug("Sending scheduler error email with context=%s" % context)
+ self.pool['email.template'].send_mail(cr, uid,
+ my_cron.email_template.id, my_cron.id, force_send=True,
+ context=context)
return res
+
+
+class res_users(orm.Model):
+ _inherit = 'res.users'
+
+ def test_scheduler_failure(self, cr, uid, context=None):
+ """This function is used to test and debug this module"""
+ raise orm.except_orm(_('Error :'), _("Task failure with UID = %d." % uid))
+
diff --git a/scheduler_error_mailer/ir_cron.xml b/scheduler_error_mailer/ir_cron.xml
index da3e844d8..ee1bcfd6d 100644
--- a/scheduler_error_mailer/ir_cron.xml
+++ b/scheduler_error_mailer/ir_cron.xml
@@ -1,24 +1,24 @@
-
-
- ir.cron.error.mailer.form
- ir.cron
-
- form
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ ir.cron.error.mailer.form
+ ir.cron
+
+
+
+
+
+
+
+
+
+
diff --git a/scheduler_error_mailer/ir_cron_demo.xml b/scheduler_error_mailer/ir_cron_demo.xml
new file mode 100644
index 000000000..d8453b4bf
--- /dev/null
+++ b/scheduler_error_mailer/ir_cron_demo.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+ Test Scheduler Error Mailer
+
+
+ 1
+ hours
+ -1
+
+
+
+
+
+
+
+
+
diff --git a/scheduler_error_mailer/ir_cron_email_tpl.xml b/scheduler_error_mailer/ir_cron_email_tpl.xml
index 5406d9aaf..8b4a0a7e0 100644
--- a/scheduler_error_mailer/ir_cron_email_tpl.xml
+++ b/scheduler_error_mailer/ir_cron_email_tpl.xml
@@ -1,32 +1,50 @@
-
-
+
-
- Scheduler error
- ${object.user_id.user_email or ''}
- [DB ${object._cr.dbname}] Scheduler '${object.name or ''}' FAILED
- ${object.user_id.user_email or ''}
-
-
-
+
+ Scheduler Error
+ ${object.user_id.user_email or ''}
+ ${object.user_id.user_email or ''}
+ Scheduler '${object.name or ''}' FAILED
+
+
+
-${hasattr(context.get('ctx').get('job_exception'), 'value') and context.get('ctx').get('job_exception').value or context.get('ctx').get('job_exception')}
+OpenERP tried to run the scheduler ${object.name or ''} but it failed. Here is the error message :
-You may check the logs of OpenERP to get more information about this failure.
+
+${ctx.get('job_exception') and ctx.get('job_exception').value or 'Failed to get the error message from the context.'}
+
-The next action on this task is scheduled on ${object.nextcall or ''}.
+You may check the logs of the OpenERP server to get more information about this failure.
---
+Properties of the scheduler ${object.name or ''} :
+
+- Model : ${object.model or ''}
+- Method : ${object.function or ''}
+- Arguments : ${object.args or ''}
+- Interval : ${object.interval_number or '0'} ${object.interval_type or ''}
+- Number of calls : ${object.numbercall or '0'}
+- Repeat missed : ${object.doall}
+- User : ${object.user_id.name or ''}
+
+
+
+--
Automatic e-mail sent by OpenERP. Do not reply.
- ]]>
-
-
+
+
+ ]]>
+
+
+
+
diff --git a/scheduler_error_mailer/static/src/img/icon.png b/scheduler_error_mailer/static/src/img/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b22abf97322d7e40e7a605b813376aad99937f9
GIT binary patch
literal 5032
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
yv1*|EnN!URIR7saFr*9I3zQ&NEv<0000
-# @author Alexis de Lattre
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-from tools.translate import _
-
-class test_fail_scheduler(osv.osv_memory):
- _name = "test.fail.scheduler"
- _description = "Test scheduler failure"
-
- def test_fail(self, cr, uid, context=None):
- """ This a test fail, only for debugging purpose
- DO NOT UNCOMMENT IMPORT IN init.py IN PRODUCTION ENVIRONNEMENT
- """
-
- raise osv.except_osv(_('Error :'), _("task failure"))
- # context['tytytyty']
-
-test_fail_scheduler()