[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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user