From 40b1c95e1a0932f4d1f87bf9894a169b2c9e57ff Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 20 Dec 2012 13:31:22 +0100 Subject: [IMP]mail: display checkbox for allow to add email (from email_from value) for creating partner and send email to this new partners. bzr revid: chm@openerp.com-20121220123122-qsqn8w97t1tre3cq --- addons/mail/mail_thread.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 48bdef508d0..cb07cb91a6f 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -749,8 +749,8 @@ class mail_thread(osv.AbstractModel): return mail_message.create(cr, uid, values, context=context) def message_post_user_api(self, cr, uid, thread_id, body='', subject=False, parent_id=False, - attachment_ids=None, context=None, content_subtype='plaintext', - extra_email=[], **kwargs): + attachment_ids=None, extra_email=[], + context=None, content_subtype='plaintext', **kwargs): """ Wrapper on message_post, used for user input : - mail gateway - quick reply in Chatter (refer to mail.js), not @@ -771,13 +771,20 @@ class mail_thread(osv.AbstractModel): if content_subtype == 'plaintext': body = tools.plaintext2html(body) + partner_ids = kwargs.pop('partner_ids', []) + for partner in extra_email: part_ids = self.pool.get('res.partner').search(cr, uid, [('email', '=', partner)], context=context) if not part_ids: part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=context)[0]] self.message_subscribe(cr, uid, [thread_id], part_ids, context=context) - partner_ids = kwargs.pop('partner_ids', []) + 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) + + partner_ids = set(partner_ids) + set(part_ids) + if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) partner_ids += [(4, partner.id) for partner in parent_message.partner_ids] -- cgit v1.2.3 From 79308644c9b5e571be3d82cc88a826afff2332f4 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 20 Dec 2012 15:09:46 +0100 Subject: [IMP] mail follower: allow to remove followers if the user have access to write on the document bzr revid: chm@openerp.com-20121220140946-hqqkz62xyn0oq9g8 --- addons/mail/mail_thread.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index cb07cb91a6f..0f9d1956fb3 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -859,7 +859,11 @@ class mail_thread(osv.AbstractModel): def message_unsubscribe(self, cr, uid, ids, partner_ids, context=None): """ Remove partners from the records followers. """ - self.check_access_rights(cr, uid, 'read') + user_pids = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'] + if set(partner_ids) == set(user_pids): + self.check_access_rights(cr, uid, 'read') + else: + self.check_access_rights(cr, uid, 'write') return self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(3, pid) for pid in partner_ids]}, context=context) #------------------------------------------------------ -- cgit v1.2.3 From 4fe3f5862a9a9c907a377be07a8e1479f207a8b8 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 20 Dec 2012 16:36:58 +0100 Subject: [FIX] mail: get set (python) of partners for email_from bzr revid: chm@openerp.com-20121220153658-iptoh0u0baa7u3rn --- addons/mail/mail_thread.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 0f9d1956fb3..2c265577df7 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -783,14 +783,14 @@ class mail_thread(osv.AbstractModel): if part_ids and message_ids: mail_message.write(cr, uid, message_ids, {'email_from': None, 'author_id': part_ids[0]}, context=context) - partner_ids = set(partner_ids) + set(part_ids) + partner_ids = set(partner_ids) | set(part_ids) if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) - partner_ids += [(4, partner.id) for partner in parent_message.partner_ids] + partner_ids |= set([(4, partner.id) for partner in parent_message.partner_ids]) # TDE FIXME HACK: mail.thread -> private message if self._name == 'mail.thread' and parent_message.author_id.id: - partner_ids.append((4, parent_message.author_id.id)) + partner_ids.add((4, parent_message.author_id.id)) message_type = kwargs.pop('type', 'comment') message_subtype = kwargs.pop('subtype', 'mail.mt_comment') -- cgit v1.2.3 From 507eff8255c2be196931fd8c29d3956ddc85ab1c Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 20 Dec 2012 17:27:54 +0100 Subject: [IMP] mail: after convert email_from into partner, open a dialog box to complete partner informations bzr revid: chm@openerp.com-20121220162754-v5wfxrp39nf0bkla --- addons/mail/mail_thread.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 2c265577df7..0698fc02c7c 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -455,7 +455,8 @@ class mail_thread(osv.AbstractModel): else: assert thread_id == 0, "Posting a message without model should be with a null res_id, to create a private message." model_pool = self.pool.get('mail.thread') - new_msg_id = model_pool.message_post_user_api(cr, uid, [thread_id], context=context, content_subtype='html', **msg) + new_msg_informations = model_pool.message_post_user_api(cr, uid, [thread_id], context=context, content_subtype='html', **msg) + new_msg_id = new_msg_informations['message_id']; if partner_ids: # postponed after message_post, because this is an external message and we don't want to create @@ -771,8 +772,7 @@ class mail_thread(osv.AbstractModel): if content_subtype == 'plaintext': body = tools.plaintext2html(body) - partner_ids = kwargs.pop('partner_ids', []) - + new_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: @@ -783,7 +783,9 @@ class mail_thread(osv.AbstractModel): if part_ids and message_ids: mail_message.write(cr, uid, message_ids, {'email_from': None, 'author_id': part_ids[0]}, context=context) - partner_ids = set(partner_ids) | set(part_ids) + new_partner_ids |= set(part_ids) + + partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) @@ -817,7 +819,10 @@ class mail_thread(osv.AbstractModel): ir_attachment.write(cr, SUPERUSER_ID, attachment_ids, {'res_model': model, 'res_id': thread_id}, context=context) mail_message.write(cr, SUPERUSER_ID, [new_message_id], {'attachment_ids': [(6, 0, [pid for pid in attachment_ids])]}, context=context) - return new_message_id + return { + 'message_id': new_message_id, + 'new_partner_ids': list(new_partner_ids), + } #------------------------------------------------------ # Followers API -- cgit v1.2.3 From 66623391ff7f37654f5764cf08481e84393d7130 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 20 Dec 2012 17:35:14 +0100 Subject: [IMP] mail: send an empty context for the name_create when we convert email_from to partner bzr revid: chm@openerp.com-20121220163514-185r5vrb0omcgp5g --- addons/mail/mail_thread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 0698fc02c7c..b7e1e2fa0a3 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -776,7 +776,7 @@ class mail_thread(osv.AbstractModel): for partner in extra_email: part_ids = self.pool.get('res.partner').search(cr, uid, [('email', '=', partner)], context=context) if not part_ids: - part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=context)[0]] + part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=dict())[0]] self.message_subscribe(cr, uid, [thread_id], part_ids, context=context) message_ids = mail_message.search(cr, uid, [('email_from', '=', partner)], context=context) -- cgit v1.2.3 From a057391199700fbd28bca36d1854bd2ea718116f Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 09:15:21 +0100 Subject: [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(-) (limited to 'addons/mail/mail_thread.py') 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) -- cgit v1.2.3 From e5c67bc1b9f7627a94013e606b4664087ebd2604 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 11:12:32 +0100 Subject: [IMP] mail: open wizard(s) to create partner(s) before send message from email bzr revid: chm@openerp.com-20121221101232-od1owyxhkhmorx5t --- addons/mail/mail_thread.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 6cf490fac45..fdd04aa1174 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -455,9 +455,8 @@ class mail_thread(osv.AbstractModel): else: assert thread_id == 0, "Posting a message without model should be with a null res_id, to create a private message." model_pool = self.pool.get('mail.thread') - new_msg_informations = model_pool.message_post_user_api(cr, uid, [thread_id], context=context, content_subtype='html', **msg) - new_msg_id = new_msg_informations['message_id']; - + new_msg_id = model_pool.message_post_user_api(cr, uid, [thread_id], context=context, content_subtype='html', **msg) + if partner_ids: # postponed after message_post, because this is an external message and we don't want to create # duplicate emails due to notifications @@ -773,17 +772,14 @@ 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) + + # create a new partner if not exists 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) - + + new_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 @@ -791,9 +787,8 @@ class mail_thread(osv.AbstractModel): if part_ids and message_ids: mail_message.write(cr, uid, message_ids, {'email_from': None, 'author_id': part_ids[0]}, context=context) - - partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) | set(link_partner_ids) - + partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) + if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) partner_ids |= set([(4, partner.id) for partner in parent_message.partner_ids]) @@ -826,10 +821,7 @@ class mail_thread(osv.AbstractModel): ir_attachment.write(cr, SUPERUSER_ID, attachment_ids, {'res_model': model, 'res_id': thread_id}, context=context) mail_message.write(cr, SUPERUSER_ID, [new_message_id], {'attachment_ids': [(6, 0, [pid for pid in attachment_ids])]}, context=context) - return { - 'message_id': new_message_id, - 'new_partner_ids': list(new_partner_ids), - } + return new_message_id #------------------------------------------------------ # Followers API -- cgit v1.2.3 From 9fe900791d1388159e600a263bbadc5683267ece Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 12:00:03 +0100 Subject: [IMP] follower: must have access write to invite follower bzr revid: chm@openerp.com-20121221110003-h7h9cie4vcejif7z --- addons/mail/mail_thread.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index fdd04aa1174..7611717bdc0 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -788,7 +788,7 @@ class mail_thread(osv.AbstractModel): mail_message.write(cr, uid, message_ids, {'email_from': None, 'author_id': part_ids[0]}, context=context) partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) - + if parent_id: parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) partner_ids |= set([(4, partner.id) for partner in parent_message.partner_ids]) @@ -841,7 +841,12 @@ class mail_thread(osv.AbstractModel): def message_subscribe(self, cr, uid, ids, partner_ids, subtype_ids=None, context=None): """ Add partners to the records followers. """ - self.check_access_rights(cr, uid, 'read') + user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] + if set(partner_ids) == set([user_pid]): + self.check_access_rights(cr, uid, 'read') + else: + self.check_access_rights(cr, uid, 'write') + self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(4, pid) for pid in partner_ids]}, context=context) # if subtypes are not specified (and not set to a void list), fetch default ones if subtype_ids is None: @@ -863,8 +868,8 @@ class mail_thread(osv.AbstractModel): def message_unsubscribe(self, cr, uid, ids, partner_ids, context=None): """ Remove partners from the records followers. """ - user_pids = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'] - if set(partner_ids) == set(user_pids): + user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] + if set(partner_ids) == set([user_pid]): self.check_access_rights(cr, uid, 'read') else: self.check_access_rights(cr, uid, 'write') -- cgit v1.2.3 From f080e91168861bc2b404a126029f625e1bb84d3e Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 12:14:00 +0100 Subject: [IMP] mail: add message 'Add this contact's email on recipient and follower' bzr revid: chm@openerp.com-20121221111400-ngc62hepbgzqepy8 --- addons/mail/mail_thread.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 7611717bdc0..cd04de19bef 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -774,18 +774,17 @@ class mail_thread(osv.AbstractModel): new_partner_ids = set([]) for partner in extra_email: part_ids = self.pool.get('res.partner').search(cr, uid, [('email', '=', partner)], context=context) - # create a new partner if not exists if not part_ids: part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=dict())[0]] - - new_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) + + if new_partner_ids: + self.message_subscribe(cr, uid, new_partner_ids, part_ids, context=context) partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) @@ -846,7 +845,7 @@ class mail_thread(osv.AbstractModel): self.check_access_rights(cr, uid, 'read') else: self.check_access_rights(cr, uid, 'write') - + self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(4, pid) for pid in partner_ids]}, context=context) # if subtypes are not specified (and not set to a void list), fetch default ones if subtype_ids is None: -- cgit v1.2.3 From 8972f7b334a569da26670040f19b7f793c1d2cd0 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 21 Dec 2012 13:11:44 +0100 Subject: [IMP] mail: check if the new email recipient already exist or not, and fix _api bzr revid: chm@openerp.com-20121221121144-o8pbya2rc7v471y0 --- addons/mail/mail_thread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index cd04de19bef..d27c9b6d435 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -784,7 +784,7 @@ class mail_thread(osv.AbstractModel): new_partner_ids |= set(part_ids) if new_partner_ids: - self.message_subscribe(cr, uid, new_partner_ids, part_ids, context=context) + self.message_subscribe(cr, uid, [thread_id], list(new_partner_ids), context=context) partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) -- cgit v1.2.3 From f922d9ea1f8124fe7785d8817397c7284e9ee0fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 21 Dec 2012 15:40:14 +0100 Subject: [IMP] mail: refactored a bit the code in message_post_user_api, as well as overrides in res_partner and res_users, to use kwargs. Updated mail.js to use kwargs. Updated mail.xml and css to tweak the display. bzr revid: tde@openerp.com-20121221144014-otg03akq4c9grjmz --- addons/mail/mail_thread.py | 57 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index a62ac73101f..6925128f689 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -886,8 +886,8 @@ class mail_thread(osv.AbstractModel): return mail_message.create(cr, uid, values, context=context) - def message_post_user_api(self, cr, uid, thread_id, body='', subject=False, parent_id=False, - attachment_ids=None, extra_email=[], + def message_post_user_api(self, cr, uid, thread_id, body='', subject=False, + parent_id=False, attachment_ids=None, extra_emails=None, context=None, content_subtype='plaintext', **kwargs): """ Wrapper on message_post, used for user input : - mail gateway @@ -902,40 +902,41 @@ class mail_thread(osv.AbstractModel): to the related document. Should only be set by Chatter. - extra_email: [ 'Fabien ', 'al@openerp.com' ] """ + partner_obj = self.pool.get('res.partner') + mail_message_obj = self.pool.get('mail.message') ir_attachment = self.pool.get('ir.attachment') + extra_emails = extra_emails or [] - # 1. Pre-processing: body, partner_ids, type and subtype - if content_subtype == 'plaintext': - body = tools.plaintext2html(body) - - new_partner_ids = set([]) - for partner in extra_email: - part_ids = self.pool.get('res.partner').search(cr, uid, [('email', '=', partner)], context=context) - # create a new partner if not exists - if not part_ids: - part_ids = [self.pool.get('res.partner').name_create(cr, uid, partner, context=dict())[0]] + # 1.A.1: pre-process partners and incoming extra_emails + partner_ids = set([]) + for email in extra_emails: + partner_id = partner_obj.find_or_create(cr, uid, email, 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) - - if new_partner_ids: - self.message_subscribe(cr, uid, [thread_id], list(new_partner_ids), context=context) - - partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids) - + partner_msg_ids = mail_message_obj.search(cr, SUPERUSER_ID, [('email_from', '=', email), ('author_id', '=', False)], context=context) + if partner_id and partner_msg_ids: + mail_message_obj.write(cr, SUPERUSER_ID, partner_msg_ids, {'email_from': None, 'author_id': partner_id}, context=context) + partner_ids.add((4, partner_id)) + if partner_ids: + self.message_subscribe(cr, uid, [thread_id], list(partner_ids), context=context) + + # 1.A.2: add recipients of parent message if parent_id: - parent_message = self.pool.get('mail.message').browse(cr, uid, parent_id, context=context) + parent_message = mail_message_obj.browse(cr, uid, parent_id, context=context) partner_ids |= set([(4, partner.id) for partner in parent_message.partner_ids]) # TDE FIXME HACK: mail.thread -> private message if self._name == 'mail.thread' and parent_message.author_id.id: partner_ids.add((4, parent_message.author_id.id)) + # 1.A.3: add specified recipients + partner_ids |= set(kwargs.pop('partner_ids', [])) + + # 1.B: handle body, message_type and message_subtype + if content_subtype == 'plaintext': + body = tools.plaintext2html(body) message_type = kwargs.pop('type', 'comment') message_subtype = kwargs.pop('subtype', 'mail.mt_comment') - # 2. Pre-processing: free attachments linked to the model + # 2. Pre-processing: attachments # HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message if attachment_ids: # TDE FIXME (?): when posting a private message, we use mail.thread as a model @@ -955,10 +956,10 @@ class mail_thread(osv.AbstractModel): attachment_ids = [] # 3. Post message - new_message_id = self.message_post(cr, uid, thread_id=thread_id, body=body, subject=subject, type=message_type, - subtype=message_subtype, parent_id=parent_id, attachment_ids=[(4, id) for id in attachment_ids], - context=context, partner_ids=partner_ids, **kwargs) - + new_message_id = self.message_post(cr, uid, thread_id=thread_id, body=body, subject=subject, + type=message_type, subtype=message_subtype, parent_id=parent_id, + attachment_ids=[(4, id) for id in attachment_ids], partner_ids=partner_ids, + context=context, **kwargs) return new_message_id #------------------------------------------------------ -- cgit v1.2.3 From 1ab87ddd677d230f254dcfe8075df1a655e3efc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 21 Dec 2012 15:52:47 +0100 Subject: [CLEAN] Misc code cleaning. bzr revid: tde@openerp.com-20121221145247-qqd1a1morv99ooow --- addons/mail/mail_thread.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 6925128f689..943e5a011ea 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -886,9 +886,9 @@ class mail_thread(osv.AbstractModel): return mail_message.create(cr, uid, values, context=context) - def message_post_user_api(self, cr, uid, thread_id, body='', subject=False, - parent_id=False, attachment_ids=None, extra_emails=None, - context=None, content_subtype='plaintext', **kwargs): + def message_post_user_api(self, cr, uid, thread_id, body='', parent_id=False, + attachment_ids=None, extra_emails=None, content_subtype='plaintext', + context=None, **kwargs): """ Wrapper on message_post, used for user input : - mail gateway - quick reply in Chatter (refer to mail.js), not @@ -933,8 +933,8 @@ class mail_thread(osv.AbstractModel): # 1.B: handle body, message_type and message_subtype if content_subtype == 'plaintext': body = tools.plaintext2html(body) - message_type = kwargs.pop('type', 'comment') - message_subtype = kwargs.pop('subtype', 'mail.mt_comment') + msg_type = kwargs.pop('type', 'comment') + msg_subtype = kwargs.pop('subtype', 'mail.mt_comment') # 2. Pre-processing: attachments # HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message @@ -954,13 +954,12 @@ class mail_thread(osv.AbstractModel): ir_attachment.write(cr, SUPERUSER_ID, attachment_ids, {'res_model': model, 'res_id': thread_id}, context=context) else: attachment_ids = [] + attachment_ids = [(4, id) for id in attachment_ids] # 3. Post message - new_message_id = self.message_post(cr, uid, thread_id=thread_id, body=body, subject=subject, - type=message_type, subtype=message_subtype, parent_id=parent_id, - attachment_ids=[(4, id) for id in attachment_ids], partner_ids=partner_ids, - context=context, **kwargs) - return new_message_id + 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) #------------------------------------------------------ # Followers API -- cgit v1.2.3 From d28418f6e42a6dbaec81ef7d37e82baa5e8b11b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 21 Dec 2012 16:29:56 +0100 Subject: [FIX] message_post_user_api: fixed subscribe. bzr revid: tde@openerp.com-20121221152956-h400n3w8hgxleumm --- addons/mail/mail_thread.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/mail/mail_thread.py') diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 943e5a011ea..f9406699190 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -917,7 +917,7 @@ class mail_thread(osv.AbstractModel): mail_message_obj.write(cr, SUPERUSER_ID, partner_msg_ids, {'email_from': None, 'author_id': partner_id}, context=context) partner_ids.add((4, partner_id)) if partner_ids: - self.message_subscribe(cr, uid, [thread_id], list(partner_ids), context=context) + self.message_subscribe(cr, uid, [thread_id], [item[1] for item in partner_ids], context=context) # 1.A.2: add recipients of parent message if parent_id: -- cgit v1.2.3