[REF] fetchmail: clean and remove unnecessary code about mail.mail

Purpose: small cleaning of code linked to mail.mail model in order to
avoid unnecessary overrides

  * create mail: default_fetchmail_server_id in context should be sufficient
    as it is the base mechanism of default_get;
  * write: unused in codebase. Anyway we should not write on mail and if it
    is the case giving fetchmail_server_id directly should be the correct
    way of doing it;

In case of a clean_context use we might loose default_fetchmail_server_id
key. It is used notably for tracking message generation. In that case
this information could be lost. However the whole concept of propagating
a fetrchmail_server-id from incoming mail server to outgoing emails (as
mail.mail is used only for sending email) is strange and does not require
so much specific code.

Sub-part of task 1853147 (pre-cleaning before implementing mail gateway
improvements)
Linked to PR #32974
This commit is contained in:
Thibault Delavallée
2019-04-26 10:01:25 +00:00
parent 01d1cf35bb
commit c87b351855
2 changed files with 3 additions and 18 deletions
+1 -1
View File
@@ -160,7 +160,7 @@ class FetchmailServer(models.Model):
MailThread = self.env['mail.thread']
for server in self:
_logger.info('start checking for new emails on %s server %s', server.server_type, server.name)
additionnal_context['fetchmail_server_id'] = server.id
additionnal_context['default_fetchmail_server_id'] = server.id
additionnal_context['server_type'] = server.server_type
count, failed = 0, 0
imap_server = None
+2 -17
View File
@@ -1,25 +1,10 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
from odoo import fields, models
class MailMail(models.Model):
_inherit = "mail.mail"
_inherit = 'mail.mail'
fetchmail_server_id = fields.Many2one('fetchmail.server', "Inbound Mail Server", readonly=True, index=True, oldname='server_id')
@api.model
def create(self, values):
fetchmail_server_id = self.env.context.get('fetchmail_server_id')
if fetchmail_server_id:
values['fetchmail_server_id'] = fetchmail_server_id
return super(MailMail, self).create(values)
@api.multi
def write(self, values):
fetchmail_server_id = self.env.context.get('fetchmail_server_id')
if fetchmail_server_id:
values['fetchmail_server_id'] = fetchmail_server_id
return super(MailMail, self).write(values)