[IMP] mail: when replying to an internal message, don't send to followers

When an incoming email is a reply to an internal comment (private msg),
log a note, instead of sending an new message.
This commit is contained in:
Fabien Pinckaers
2016-07-17 00:32:30 +02:00
parent 069a192d69
commit 5b4d247674
+4 -1
View File
@@ -1169,7 +1169,8 @@ class MailThread(models.AbstractModel):
Model = self.env['mail.thread']
if not hasattr(Model, 'message_post'):
Model = self.env['mail.thread'].with_context(thread_model=model)
new_msg = Model.browse(thread_id).message_post(subtype='mail.mt_comment', **message_dict)
internal = message_dict.pop('internal', False)
new_msg = Model.browse(thread_id).message_post(subtype=internal and 'mail.mt_note' or 'mail.mt_comment', **message_dict)
if partner_ids:
# postponed after message_post, because this is an external message and we don't want to create
@@ -1473,12 +1474,14 @@ class MailThread(models.AbstractModel):
parent_ids = self.env['mail.message'].search([('message_id', '=', decode(message['In-Reply-To'].strip()))], limit=1)
if parent_ids:
msg_dict['parent_id'] = parent_ids.id
msg_dict['internal'] = parent_ids.subtype_id and parent_ids.subtype_id.internal or False
if message.get('References') and 'parent_id' not in msg_dict:
msg_list = mail_header_msgid_re.findall(decode(message['References']))
parent_ids = self.env['mail.message'].search([('message_id', 'in', [x.strip() for x in msg_list])], limit=1)
if parent_ids:
msg_dict['parent_id'] = parent_ids.id
msg_dict['internal'] = parent_ids.subtype_id and parent_ids.subtype_id.internal or False
msg_dict['body'], msg_dict['attachments'] = self._message_extract_payload(message, save_original=save_original)
return msg_dict