diff --git a/scheduler_error_mailer/__init__.py b/scheduler_error_mailer/__init__.py new file mode 100644 index 000000000..78a455ba8 --- /dev/null +++ b/scheduler_error_mailer/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Asterisk Click2Dial module for OpenERP +# Copyright (C) 2010 Sébastien BEAU +# +# 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 . +# +############################################################################## + +import ir_cron + diff --git a/scheduler_error_mailer/__openerp__.py b/scheduler_error_mailer/__openerp__.py new file mode 100644 index 000000000..aead8b9fd --- /dev/null +++ b/scheduler_error_mailer/__openerp__.py @@ -0,0 +1,38 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Model module for OpenERP +# Copyright (C) 2010 Sébastien BEAU +# +# 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 . +# +############################################################################## + + +{ + 'name': 'Scheduler Error Mailer', + 'version': '0.1', + 'category': 'Generic Modules/Others', + 'license': 'AGPL-3', + 'description': """This module dfkdsjfkdsjkfjksadd the posibility to send a email when a scheduler raise an error""", + 'author': 'Akretion', + 'website': 'http://www.akretion.com/', + 'depends': ['poweremail'], + 'init_xml': [], + 'update_xml': ['ir_cron.xml'], + 'demo_xml': [], + 'installable': True, + 'active': False, +} + diff --git a/scheduler_error_mailer/ir_cron.py b/scheduler_error_mailer/ir_cron.py new file mode 100644 index 000000000..510f11c8f --- /dev/null +++ b/scheduler_error_mailer/ir_cron.py @@ -0,0 +1,55 @@ +# -*- encoding: utf-8 -*- +################################################################################# +# # +# Model module for OpenERP # +# Copyright (C) 2010 Sébastien BEAU # +# # +# 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 osv, fields +import netsvc + + +class ir_cron(osv.osv, netsvc.Agent): + _inherit = "ir.cron" + + _columns = { + 'email_to' : fields.char('TO', size=256, help="If an error occure with this scheduler an email will be send"), + 'message' : fields.text('Message', help="If an error occure with this scheduler this message will be send via email"), + 'send_email' : fields.boolean('Active'), + 'email_account' : fields.many2one('poweremail.core_accounts', 'FROM') + } + + def _handle_callback_exception(self, cr, uid, model, func, args, job_id, job_exception): + res = super(ir_cron, self)._handle_callback_exception(cr, uid, model, func, args, job_id, job_exception) + job = self.read(cr, uid, job_id, ['send_email', 'message', 'email_TO', 'email_account', 'name']) + #TODO USE POWEREMAIL TEMPLATE + if job['send_email']: + addresses = {'To' : job['email_TO']} + mail_obj = self.pool.get('poweremail.mailbox') + id = mail_obj.create(cr, uid, { + 'pem_to' : job['email_TO'], + 'pem_subject' : "OPENERP : error when excecuting scheduler " + job["name"], + 'pem_body_text' : job['message'], + 'pem_account_id' : job['email_account'][0], + 'mail_type' : 'text/plain', + 'folder' : 'outbox', + 'state' :'na', + }) + mail_obj.send_this_mail(cr, uid, [id]) + return res +ir_cron() + diff --git a/scheduler_error_mailer/ir_cron.xml b/scheduler_error_mailer/ir_cron.xml new file mode 100644 index 000000000..33a6d3dfe --- /dev/null +++ b/scheduler_error_mailer/ir_cron.xml @@ -0,0 +1,28 @@ + + + + + + + ir.cron.error.mailer.form + ir.cron + + form + + + + + + + + + + + + + +