diff options
| author | David Beguin <dbe@odoo.com> | 2018-12-12 15:44:49 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-05-13 15:18:40 +0000 |
| commit | 3f707ba000a51011b5bc3f049632e051b5b7ef41 (patch) | |
| tree | 181e08b16ede9e3087318401af9035b9f9220be0 | |
| parent | 5723ee1f21c6182494621a128204f988813fa408 (diff) | |
[REF] mail, various : make message_receive_bounce from mail.thread private
Purpose: make some methods from mail.thread mixin private and update their
naming if necessary. Some methods prepare data for business flows and deal
with internal information. Public methods should either use of give some
access to those methods. Computation itself should be keps internal.
In this commit we put message_receive_bounce as private. Future commit(s)
will probably rewrite part of the bounce logic.
Some addons are updated accordingly to the method change.
Related to task ID 1911679
Linked to PR #29483
| -rw-r--r-- | addons/mail/models/mail_channel.py | 4 | ||||
| -rw-r--r-- | addons/mail/models/mail_thread.py | 8 | ||||
| -rw-r--r-- | addons/mass_mailing/models/mail_thread.py | 4 | ||||
| -rw-r--r-- | addons/test_mass_mailing/tests/test_mail_auto_blacklist.py | 10 |
4 files changed, 13 insertions, 13 deletions
diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index 60b2fd28954..7c76f1162a1 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -338,12 +338,12 @@ class Channel(models.Model): return res @api.multi - def message_receive_bounce(self, email, partner, mail_id=None): + def _message_receive_bounce(self, email, partner, mail_id=None): """ Override bounce management to unsubscribe bouncing addresses """ for p in partner: if p.message_bounce >= self.MAX_BOUNCE_LIMIT: self._action_unfollow(p) - return super(Channel, self).message_receive_bounce(email, partner, mail_id=mail_id) + return super(Channel, self)._message_receive_bounce(email, partner, mail_id=mail_id) @api.multi def _notify_email_recipients(self, message, recipient_ids): diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py index dfff9ff94ed..28b3b38f980 100644 --- a/addons/mail/models/mail_thread.py +++ b/addons/mail/models/mail_thread.py @@ -1178,7 +1178,7 @@ class MailThread(models.AbstractModel): if partner_address: partners = partners.sudo().search([('email', '=', partner_address)]) for partner in partners: - partner.message_receive_bounce(partner_address, partner, mail_id=bounced_mail_id) + partner._message_receive_bounce(partner_address, partner, mail_id=bounced_mail_id) mail_message = self.env['mail.message'] if email_part: @@ -1194,8 +1194,8 @@ class MailThread(models.AbstractModel): 'email_status': 'bounce' }) - if bounced_model in self.env and hasattr(self.env[bounced_model], 'message_receive_bounce') and bounced_thread_id: - self.env[bounced_model].browse(int(bounced_thread_id)).message_receive_bounce(partner_address, partners, mail_id=bounced_mail_id) + if bounced_model in self.env and hasattr(self.env[bounced_model], '_message_receive_bounce') and bounced_thread_id: + self.env[bounced_model].browse(int(bounced_thread_id))._message_receive_bounce(partner_address, partners, mail_id=bounced_mail_id) _logger.info('Routing mail from %s to %s with Message-Id %s: bounced mail from mail %s, model: %s, thread_id: %s: dest %s (partner %s)', email_from, email_to, message_id, bounced_mail_id, bounced_model, bounced_thread_id, partner_address, partners) @@ -1469,7 +1469,7 @@ class MailThread(models.AbstractModel): return True @api.multi - def message_receive_bounce(self, email, partner, mail_id=None): + def _message_receive_bounce(self, email, partner, mail_id=None): """Called by ``message_process`` when a bounce email (such as Undelivered Mail Returned to Sender) is received for an existing thread. The default behavior is to check is an integer ``message_bounce`` column exists. diff --git a/addons/mass_mailing/models/mail_thread.py b/addons/mass_mailing/models/mail_thread.py index 85d42827617..9411d7300c3 100644 --- a/addons/mass_mailing/models/mail_thread.py +++ b/addons/mass_mailing/models/mail_thread.py @@ -54,7 +54,7 @@ class MailThread(models.AbstractModel): return super(MailThread, no_massmail).message_post_with_template(template_id, **kwargs) @api.multi - def message_receive_bounce(self, email, partner, mail_id=None): + def _message_receive_bounce(self, email, partner, mail_id=None): """In addition, an auto blacklist rule check if the email can be blacklisted to avoid sending mails indefinitely to this email address. This rule checks if the email bounced too much. If this is the case, @@ -63,7 +63,7 @@ class MailThread(models.AbstractModel): in the last month and the bounced are at least separated by one week, to avoid blacklist someone because of a temporary mail server error, then the email is considered as invalid and is blacklisted.""" - super(MailThread, self).message_receive_bounce(email, partner, mail_id=None) + super(MailThread, self)._message_receive_bounce(email, partner, mail_id=None) three_months_ago = fields.Datetime.to_string(datetime.datetime.now() - datetime.timedelta(weeks=13)) stats = self.env['mail.mail.statistics'] \ diff --git a/addons/test_mass_mailing/tests/test_mail_auto_blacklist.py b/addons/test_mass_mailing/tests/test_mail_auto_blacklist.py index b4a679d907e..ac04a835847 100644 --- a/addons/test_mass_mailing/tests/test_mail_auto_blacklist.py +++ b/addons/test_mass_mailing/tests/test_mail_auto_blacklist.py @@ -22,28 +22,28 @@ class TestAutoBlacklist(common.TransactionCase): 'bounced': datetime.datetime.now() - datetime.timedelta(weeks=2), 'email': self.mailing_contact_1.email }) - self.mailing_contact_1.message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) + self.mailing_contact_1._message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) mail_statistics.create({ 'model': 'mail.mass_mailing.contact', 'res_id': self.mailing_contact_1.id, 'bounced': datetime.datetime.now() - datetime.timedelta(weeks=3), 'email': self.mailing_contact_1.email }) - self.mailing_contact_1.message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) + self.mailing_contact_1._message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) mail_statistics.create({ 'model': 'mail.mass_mailing.contact', 'res_id': self.mailing_contact_1.id, 'bounced': datetime.datetime.now() - datetime.timedelta(weeks=4), 'email': self.mailing_contact_1.email }) - self.mailing_contact_1.message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) + self.mailing_contact_1._message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) mail_statistics.create({ 'model': 'mail.mass_mailing.contact', 'res_id': self.mailing_contact_1.id, 'bounced': datetime.datetime.now() - datetime.timedelta(weeks=5), 'email': self.mailing_contact_1.email }) - self.mailing_contact_1.message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) + self.mailing_contact_1._message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) # create mass mailing record @@ -77,7 +77,7 @@ class TestAutoBlacklist(common.TransactionCase): 'email': self.mailing_contact_1.email }) # call bounced - self.mailing_contact_1.message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) + self.mailing_contact_1._message_receive_bounce(self.mailing_contact_1.email, self.mailing_contact_1) # check blacklist blacklist_record = mail_blacklist.search([('email', '=', self.mailing_contact_1.email)]) |
