diff options
| author | Denis Ledoux <dle@openerp.com> | 2013-10-07 14:39:25 +0200 |
|---|---|---|
| committer | Denis Ledoux <dle@openerp.com> | 2013-10-07 14:39:25 +0200 |
| commit | d0f6d9af35a01340a727cd2835615dfe8fdc9bbe (patch) | |
| tree | 62a8df15333963d995858a41999055d357b44c26 /addons/mail/update.py | |
| parent | a7ddaa29c6d57abea5a2755490d6780dc822febe (diff) | |
[FIX]mail: update.py, using message_post instead of mail.message create, in order to notify users and the administrator
bzr revid: dle@openerp.com-20131007123925-k6zfffuq6hzcijc2
Diffstat (limited to 'addons/mail/update.py')
| -rw-r--r-- | addons/mail/update.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/addons/mail/update.py b/addons/mail/update.py index bcec6f5f8b6..97a14747a24 100644 --- a/addons/mail/update.py +++ b/addons/mail/update.py @@ -5,9 +5,9 @@ import sys import urllib import urllib2 -from openerp import pooler +from openerp import pooler, SUPERUSER_ID from openerp import release -from openerp.osv import fields, osv +from openerp.osv import osv from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval from openerp.tools.config import config @@ -86,25 +86,26 @@ class publisher_warranty_contract(osv.osv): try: try: result = get_sys_logs(self, cr, uid) - except Exception, ex: + except Exception: if cron_mode: # we don't want to see any stack trace in cron return False _logger.debug("Exception while sending a get logs messages", exc_info=1) raise osv.except_osv(_("Error"), _("Error during communication with the publisher warranty server.")) - limit_date = (datetime.datetime.now() - _PREVIOUS_LOG_CHECK).strftime(misc.DEFAULT_SERVER_DATETIME_FORMAT) # old behavior based on res.log; now on mail.message, that is not necessarily installed - proxy = self.pool.get('mail.message') - - model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'group_all_employees') - + IMD = self.pool['ir.model.data'] + user = self.pool['res.users'].browse(cr, SUPERUSER_ID, SUPERUSER_ID) + try: + poster = IMD.get_object(cr, SUPERUSER_ID, 'mail', 'group_all_employees') + except ValueError: + # Cannot found group, post the message on the wall of the admin + poster = user + if not poster.exists(): + return True for message in result["messages"]: - values = { - 'body' : message, - 'model' : 'mail.group', - 'res_id' : res_id, - 'user_id' : False, - } - proxy.create(cr, uid, values, context=context) + try: + poster.message_post(body=message, subtype='mt_comment', partner_ids=[user.partner_id.id]) + except Exception: + _logger.warning('Cannot send ping message', exc_info=True) except Exception: if cron_mode: return False # we don't want to see any stack trace in cron |
