[FIX] fetchmail: fixed message_process on res.users; now having a message_subscribe...
authorThibault Delavallée <tde@openerp.com>
Thu, 3 Jan 2013 12:00:15 +0000 (13:00 +0100)
committerThibault Delavallée <tde@openerp.com>
Thu, 3 Jan 2013 12:00:15 +0000 (13:00 +0100)
bzr revid: tde@openerp.com-20130103120015-h9tmekrbbettikr1

addons/mail/mail_thread.py
addons/mail/res_partner.py
addons/mail/res_users.py

index 31d4348..63f4e87 100644 (file)
@@ -973,7 +973,7 @@ class mail_thread(osv.AbstractModel):
         # 3. Post message
         return self.message_post(cr, uid, thread_id=thread_id, body=body,
                             type=msg_type, subtype=msg_subtype, parent_id=parent_id,
-                            attachment_ids=attachment_ids, partner_ids=partner_ids, context=context, **kwargs)
+                            attachment_ids=attachment_ids, partner_ids=list(partner_ids), context=context, **kwargs)
 
     #------------------------------------------------------
     # Followers API
index cfcb110..77f680b 100644 (file)
@@ -51,9 +51,9 @@ class res_partner_mail(osv.Model):
         """
         if isinstance(thread_id, (list, tuple)):
             thread_id = thread_id[0]
-        if type == 'email':
+        if kwargs.get('type') == 'email':
             partner_ids = kwargs.get('partner_ids', [])
-            if thread_id not in partner_ids:
+            if thread_id not in [command[1] for command in partner_ids]:
                 partner_ids.append((4, thread_id))
             kwargs['partner_ids'] = partner_ids
             thread_id = False
index 160335f..3f33f1d 100644 (file)
@@ -122,7 +122,7 @@ class res_users(osv.Model):
             context['thread_model'] = 'res.partner'
         if isinstance(thread_id, (list, tuple)):
             thread_id = thread_id[0]
-        return self.browse(cr, uid, thread_id).partner_id.id
+        return self.browse(cr, SUPERUSER_ID, thread_id).partner_id.id
 
     def message_post_user_api(self, cr, uid, thread_id, context=None, **kwargs):
         """ Redirect the posting of message on res.users to the related partner.
@@ -139,9 +139,16 @@ class res_users(osv.Model):
         return self.pool.get('res.partner').message_post(cr, uid, partner_id, context=context, **kwargs)
 
     def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None):
-        partner_id = self.browse(cr, uid, ids)[0].partner_id.id
-        return self.pool.get('res.partner').message_update(cr, uid, [partner_id], msg_dict,
-            update_vals=update_vals, context=context)
+        for id in ids:
+            partner_id = self.browse(cr, SUPERUSER_ID, id).partner_id.id
+            self.pool.get('res.partner').message_update(cr, uid, [partner_id], msg_dict, update_vals=update_vals, context=context)
+        return True
+
+    def message_subscribe(self, cr, uid, ids, partner_ids, subtype_ids=None, context=None):
+        for id in ids:
+            partner_id = self.browse(cr, SUPERUSER_ID, id).partner_id.id
+            self.pool.get('res.partner').message_subscribe(cr, uid, [partner_id], partner_ids, subtype_ids=subtype_ids, context=context)
+        return True
 
 
 class res_users_mail_group(osv.Model):