summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2012-12-21 09:15:21 +0100
committerChristophe Matthieu <chm@openerp.com>2012-12-21 09:15:21 +0100
commita057391199700fbd28bca36d1854bd2ea718116f (patch)
treee81ddba9d1937ed079ce8df060b8d36e51e36ace
parent66623391ff7f37654f5764cf08481e84393d7130 (diff)
[IMP] mail: message_post_user_api don't return the id partner if already exist
bzr revid: chm@openerp.com-20121221081521-dase1mbdutm1whri
-rw-r--r--addons/mail/mail_thread.py11
1 files 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)