From 70eb634173eff10d95618e1837f4efc5bd5ff6a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 9 Apr 2014 17:50:03 +0200 Subject: [PATCH] [FIX] Fixe dlast commit: badge message is posted on the user as before. Also updated code in mail/res_users that could big: partner_ids given to message_post can be a list of commands, or a list of ids. bzr revid: tde@openerp.com-20140409155003-32ccef4udlzfg5us --- addons/gamification/models/badge.py | 2 +- addons/mail/res_users.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/gamification/models/badge.py b/addons/gamification/models/badge.py index 102892a8c2a..4f52fd72066 100644 --- a/addons/gamification/models/badge.py +++ b/addons/gamification/models/badge.py @@ -62,7 +62,7 @@ class gamification_badge_user(osv.Model): template_id = self.pool['ir.model.data'].get_object(cr, uid, 'gamification', 'email_template_badge_received', context) for badge_user in self.browse(cr, uid, ids, context=context): body_html = temp_obj.render_template(cr, uid, template_id.body_html, 'gamification.badge.user', badge_user.id, context=context) - res = self.message_post(cr, uid, badge_user.id, body=body_html, partner_ids=[badge_user.user_id.partner_id.id], context=context) + res = user_obj.message_post(cr, uid, badge_user.user_id.id, body=body_html, partner_ids=[badge_user.user_id.partner_id.id], context=context) return res def create(self, cr, uid, vals, context=None): diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 645a77ea707..d4c4cb8886c 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -118,11 +118,19 @@ class res_users(osv.Model): various mailboxes, we do not have access to the current partner_id. """ if isinstance(thread_id, (list, tuple)): thread_id = thread_id[0] + final_partner_ids = set() partner_ids = kwargs.get('partner_ids', []) partner_id = self._message_post_get_pid(cr, uid, thread_id, context=context) - if partner_id not in [command[1] for command in partner_ids]: - partner_ids.append(partner_id) - kwargs['partner_ids'] = partner_ids + for partner_id in partner_ids: + if isinstance(partner_id, (list, tuple)) and partner_id[0] == 4 and len(partner_id) == 2: + final_partner_ids.add(partner_id[1]) + elif isinstance(partner_id, (list, tuple)) and partner_id[0] == 6 and len(partner_id) == 3: + final_partner_ids.add(partner_id[2]) + elif isinstance(partner_id, (int, long)): + final_partner_ids.add(partner_id) + if partner_id not in final_partner_ids: + final_partner_ids.append(partner_id) + kwargs['partner_ids'] = final_partner_ids return self.pool.get('mail.thread').message_post(cr, uid, False, **kwargs) def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None):