summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Beguin <dbe@odoo.com>2018-12-12 15:44:49 +0000
committerThibault Delavallée <tde@odoo.com>2019-05-13 15:18:40 +0000
commit3f707ba000a51011b5bc3f049632e051b5b7ef41 (patch)
tree181e08b16ede9e3087318401af9035b9f9220be0
parent5723ee1f21c6182494621a128204f988813fa408 (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.py4
-rw-r--r--addons/mail/models/mail_thread.py8
-rw-r--r--addons/mass_mailing/models/mail_thread.py4
-rw-r--r--addons/test_mass_mailing/tests/test_mail_auto_blacklist.py10
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)])