[FIX]mail: update.py, using message_post instead of mail.message create, in order...
authorDenis Ledoux <dle@openerp.com>
Mon, 7 Oct 2013 12:39:25 +0000 (14:39 +0200)
committerDenis Ledoux <dle@openerp.com>
Mon, 7 Oct 2013 12:39:25 +0000 (14:39 +0200)
bzr revid: dle@openerp.com-20131007123925-k6zfffuq6hzcijc2

addons/mail/update.py

index bcec6f5..97a1474 100644 (file)
@@ -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