From a057391199700fbd28bca36d1854bd2ea718116f Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 09:15:21 +0100 Subject: [PATCH] [IMP] mail: message_post_user_api don't return the id partner if already exist bzr revid: chm@openerp.com-20121221081521-dase1mbdutm1whri --- addons/mail/mail_thread.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index b7e1e2fa0a3..6cf490fac45 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -773,19 +773,26 @@ class mail_thread(osv.AbstractModel): body = tools.plaintext2html(body) new_partner_ids = set([]) + link_partner_ids = set([]) for partner in extra_email: part_ids = self.pool.get('res.partner').search(cr, uid, [('email', '=', partner)], context=context) if not part_ids: + # create a new partner part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=dict())[0]] + new_partner_ids |= set(part_ids) + else: + # partners is already create + link_partner_ids |= set(part_ids) + self.message_subscribe(cr, uid, [thread_id], part_ids, context=context) + # link mail with this from mail to the new partner id message_ids = mail_message.search(cr, uid, [('email_from', '=', partner)], context=context) if part_ids and message_ids: mail_message.write(cr, uid, message_ids, {'email_from': None, 'author_id': part_ids[0]}, context=context) - new_partner_ids |= set(part_ids) - partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) + partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) | set(link_partner_ids) if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context)