Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions addons/crm/tests/test_crm_lead_notification.py
Original file line number Diff line number Diff line change
Expand Up @@ -389,11 +389,8 @@ def test_new_lead_from_email_multicompany(self):

--000000000000a47519057e029630--
"""
crm_lead0_id = self.env['mail.thread'].message_process('crm.lead', new_message0)
crm_lead1_id = self.env['mail.thread'].message_process('crm.lead', new_message1)

crm_lead0 = self.env['crm.lead'].browse(crm_lead0_id)
crm_lead1 = self.env['crm.lead'].browse(crm_lead1_id)
crm_lead0 = self.env['mail.thread'].message_process('crm.lead', new_message0)
crm_lead1 = self.env['mail.thread'].message_process('crm.lead', new_message1)

self.assertEqual(crm_lead0.team_id, crm_team0)
self.assertEqual(crm_lead1.team_id, crm_team1)
Expand Down
6 changes: 2 additions & 4 deletions addons/mail/models/fetchmail.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,11 +231,10 @@ def fetch_mail(self, raise_exception=True):
imap_server.select()
result, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
res_id = None
result, data = imap_server.fetch(num, '(RFC822)')
imap_server.store(num, '-FLAGS', '\\Seen')
try:
res_id = MailThread.with_context(**additionnal_context).message_process(server.object_id.model, data[0][1], save_original=server.original, strip_attachments=(not server.attach))
MailThread.with_context(**additionnal_context).message_process(server.object_id.model, data[0][1], save_original=server.original, strip_attachments=(not server.attach))
except Exception:
_logger.info('Failed to process mail from %s server %s.', server.server_type, server.name, exc_info=True)
failed += 1
Expand Down Expand Up @@ -266,9 +265,8 @@ def fetch_mail(self, raise_exception=True):
for num in range(1, min(MAX_POP_MESSAGES, num_messages) + 1):
(header, messages, octets) = pop_server.retr(num)
message = (b'\n').join(messages)
res_id = None
try:
res_id = MailThread.with_context(**additionnal_context).message_process(server.object_id.model, message, save_original=server.original, strip_attachments=(not server.attach))
MailThread.with_context(**additionnal_context).message_process(server.object_id.model, message, save_original=server.original, strip_attachments=(not server.attach))
pop_server.dele(num)
except Exception:
_logger.info('Failed to process mail from %s server %s.', server.server_type, server.name, exc_info=True)
Expand Down
8 changes: 4 additions & 4 deletions addons/mail/models/mail_thread.py
Original file line number Diff line number Diff line change
Expand Up @@ -1291,7 +1291,7 @@ def _message_route_process(self, message, message_dict, routes):
self = self.with_context(attachments_mime_plainxml=True) # import XML attachments as text
# postpone setting message_dict.partner_ids after message_post, to avoid double notifications
original_partner_ids = message_dict.pop('partner_ids', [])
thread_id = False
thread = self.browse()
for model, thread_id, custom_values, user_id, alias in routes or ():
subtype_id = False
related_user = self.env['res.users'].browse(user_id)
Expand Down Expand Up @@ -1361,9 +1361,10 @@ def _message_route_process(self, message, message_dict, routes):
# postponed after message_post, because this is an external message and we don't want to create
# duplicate emails due to notifications
new_msg.write({'partner_ids': original_partner_ids})
return thread_id
return thread.with_env(self.env)

@api.model
@api.returns('mail.thread', lambda value: value.id)
def message_process(self, model, message, custom_values=None,
save_original=False, strip_attachments=False,
thread_id=None):
Expand Down Expand Up @@ -1424,8 +1425,7 @@ def message_process(self, model, message, custom_values=None,
if self._detect_loop_sender(message, msg_dict, routes):
return

thread_id = self._message_route_process(message, msg_dict, routes)
return thread_id
return self._message_route_process(message, msg_dict, routes)

@api.model
def message_new(self, msg_dict, custom_values=None):
Expand Down