diff --git a/mail_tracking_mass_mailing/__manifest__.py b/mail_tracking_mass_mailing/__manifest__.py
index 1b190b2dd..de327eb26 100644
--- a/mail_tracking_mass_mailing/__manifest__.py
+++ b/mail_tracking_mass_mailing/__manifest__.py
@@ -7,7 +7,7 @@
{
"name": "Mail tracking for mass mailing",
"summary": "Improve mass mailing email tracking",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"category": "Social Network",
"website": "https://github.com/OCA/social",
"author": "Tecnativa, " "Odoo Community Association (OCA)",
@@ -18,9 +18,9 @@
"depends": ["mass_mailing", "mail_tracking"],
"data": [
"views/mail_tracking_email_view.xml",
- "views/mail_mail_statistics_view.xml",
+ "views/mail_trace_view.xml",
"views/mail_mass_mailing_view.xml",
- "views/mail_mass_mailing_contact_view.xml",
+ "views/mailing_contact_view.xml",
],
"pre_init_hook": "pre_init_hook",
}
diff --git a/mail_tracking_mass_mailing/hooks.py b/mail_tracking_mass_mailing/hooks.py
index 046635590..e1ed7ff34 100644
--- a/mail_tracking_mass_mailing/hooks.py
+++ b/mail_tracking_mass_mailing/hooks.py
@@ -14,7 +14,7 @@ _logger = logging.getLogger(__name__)
def pre_init_hook(cr):
if column_add_with_value:
- _logger.info("Creating mail.mass_mailing.contact.email_score column " "with value 50.0")
+ _logger.info("Creating mailing_contact.email_score column " "with value 50.0")
column_add_with_value(
- cr, "mail_mass_mailing_contact", "email_score", "double precision", 50.0
+ cr, "mailing_contact", "email_score", "double precision", 50.0
)
diff --git a/mail_tracking_mass_mailing/models/__init__.py b/mail_tracking_mass_mailing/models/__init__.py
index 12739f3e9..1a04775c1 100644
--- a/mail_tracking_mass_mailing/models/__init__.py
+++ b/mail_tracking_mass_mailing/models/__init__.py
@@ -5,5 +5,5 @@
from . import mail_mail
from . import mail_tracking_email
from . import mail_tracking_event
-from . import mail_mail_statistics
-from . import mail_mass_mailing_contact
+from . import mailing_trace
+from . import mailing_contact
diff --git a/mail_tracking_mass_mailing/models/mail_mail.py b/mail_tracking_mass_mailing/models/mail_mail.py
index a24f73c8f..b0ff8fb17 100644
--- a/mail_tracking_mass_mailing/models/mail_mail.py
+++ b/mail_tracking_mass_mailing/models/mail_mail.py
@@ -14,7 +14,7 @@ class MailMail(models.Model):
res["mail_id_int"] = self.id
res["mass_mailing_id"] = self.mailing_id.id
res["mail_stats_id"] = (
- self.statistics_ids[:1].id if self.statistics_ids else False
+ self.mailing_trace_ids[:1].id if self.mailing_trace_ids else False
)
return res
diff --git a/mail_tracking_mass_mailing/models/mail_tracking_email.py b/mail_tracking_mass_mailing/models/mail_tracking_email.py
index 3c981a368..11cd7d5a4 100644
--- a/mail_tracking_mass_mailing/models/mail_tracking_email.py
+++ b/mail_tracking_mass_mailing/models/mail_tracking_email.py
@@ -9,16 +9,16 @@ class MailTrackingEmail(models.Model):
_inherit = "mail.tracking.email"
mass_mailing_id = fields.Many2one(
- string="Mass mailing", comodel_name="mail.mass_mailing", readonly=True
+ string="Mass mailing", comodel_name="mailing.mailing", readonly=True
)
mail_stats_id = fields.Many2one(
- string="Mail statistics", comodel_name="mail.mail.statistics", readonly=True
+ string="Mail statistics", comodel_name="mailing.trace", readonly=True
)
mail_id_int = fields.Integer(string="Mail ID", readonly=True)
@api.model
def _statistics_link_prepare(self, tracking):
- """Inherit this method to link other object to mail.mail.statistics"""
+ """Inherit this method to link other object to mailing.trace"""
return {"mail_tracking_id": tracking.id}
@api.model
@@ -29,7 +29,6 @@ class MailTrackingEmail(models.Model):
tracking.mail_stats_id.write(self._statistics_link_prepare(tracking))
return tracking
- @api.multi
def _contacts_email_bounced_set(self, reason, event=None):
recipients = []
if event and event.recipient_address:
@@ -37,11 +36,10 @@ class MailTrackingEmail(models.Model):
else:
recipients = list(filter(None, self.mapped("recipient_address")))
for recipient in recipients:
- self.env["mail.mass_mailing.contact"].search(
+ self.env["mailing.contact"].search(
[("email", "=ilike", recipient)]
).email_bounced_set(self, reason, event=event)
- @api.multi
def smtp_error(self, mail_server, smtp_server, exception):
res = super(MailTrackingEmail, self).smtp_error(
mail_server, smtp_server, exception
@@ -49,7 +47,6 @@ class MailTrackingEmail(models.Model):
self._contacts_email_bounced_set("error")
return res
- @api.multi
def event_create(self, event_type, metadata):
res = super(MailTrackingEmail, self).event_create(event_type, metadata)
if event_type in {"hard_bounce", "spam", "reject"}:
diff --git a/mail_tracking_mass_mailing/models/mail_tracking_event.py b/mail_tracking_mass_mailing/models/mail_tracking_event.py
index e36c7bce2..0f7ad1d7d 100644
--- a/mail_tracking_mass_mailing/models/mail_tracking_event.py
+++ b/mail_tracking_mass_mailing/models/mail_tracking_event.py
@@ -10,7 +10,7 @@ class MailTrackingEvent(models.Model):
mass_mailing_id = fields.Many2one(
string="Mass mailing",
- comodel_name="mail.mass_mailing",
+ comodel_name="mailing.mailing",
readonly=True,
related="tracking_email_id.mass_mailing_id",
store=True,
@@ -19,12 +19,12 @@ class MailTrackingEvent(models.Model):
@api.model
def process_open(self, tracking_email, metadata):
res = super(MailTrackingEvent, self).process_open(tracking_email, metadata)
- mail_mail_stats = self.sudo().env["mail.mail.statistics"]
+ mail_mail_stats = self.sudo().env["mailing.trace"]
mail_mail_stats.set_opened(mail_mail_ids=[tracking_email.mail_id_int])
return res
def _tracking_set_bounce(self, tracking_email, metadata):
- mail_mail_stats = self.sudo().env["mail.mail.statistics"]
+ mail_mail_stats = self.sudo().env["mailing.trace"]
mail_mail_stats.set_bounced(mail_mail_ids=[tracking_email.mail_id_int])
@api.model
diff --git a/mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py b/mail_tracking_mass_mailing/models/mailing_contact.py
similarity index 71%
rename from mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py
rename to mail_tracking_mass_mailing/models/mailing_contact.py
index fdfac2240..63b7398a9 100644
--- a/mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py
+++ b/mail_tracking_mass_mailing/models/mailing_contact.py
@@ -6,17 +6,19 @@ from odoo import api, fields, models
class MailMassMailingContact(models.Model):
- _name = "mail.mass_mailing.contact"
- _inherit = ["mail.mass_mailing.contact", "mail.bounced.mixin"]
+ _name = "mailing.contact"
+ _inherit = ["mailing.contact", "mail.bounced.mixin"]
email_score = fields.Float(
string="Email score", readonly=True, store=False, compute="_compute_email_score"
)
- @api.multi
@api.depends("email")
def _compute_email_score(self):
- for contact in self.filtered("email"):
+ with_email = self.filtered("email")
+ for contact in with_email:
contact.email_score = self.env[
"mail.tracking.email"
].email_score_from_email(contact.email)
+ remaining = self - with_email
+ remaining.email_score = 0.0
diff --git a/mail_tracking_mass_mailing/models/mail_mail_statistics.py b/mail_tracking_mass_mailing/models/mailing_trace.py
similarity index 87%
rename from mail_tracking_mass_mailing/models/mail_mail_statistics.py
rename to mail_tracking_mass_mailing/models/mailing_trace.py
index 690fbce9a..c5a4d2b19 100644
--- a/mail_tracking_mass_mailing/models/mail_mail_statistics.py
+++ b/mail_tracking_mass_mailing/models/mailing_trace.py
@@ -5,8 +5,8 @@
from odoo import fields, models
-class MailMailStatistics(models.Model):
- _inherit = "mail.mail.statistics"
+class MailTrace(models.Model):
+ _inherit = "mailing.trace"
mail_tracking_id = fields.Many2one(
string="Mail tracking", comodel_name="mail.tracking.email", readonly=True
diff --git a/mail_tracking_mass_mailing/tests/test_mass_mailing.py b/mail_tracking_mass_mailing/tests/test_mass_mailing.py
index faf042aa0..f01c3db79 100644
--- a/mail_tracking_mass_mailing/tests/test_mass_mailing.py
+++ b/mail_tracking_mass_mailing/tests/test_mass_mailing.py
@@ -17,21 +17,21 @@ mock_send_email = "odoo.addons.base.models.ir_mail_server." "IrMailServer.send_e
class TestMassMailing(TransactionCase):
def setUp(self, *args, **kwargs):
super(TestMassMailing, self).setUp(*args, **kwargs)
- self.list = self.env["mail.mass_mailing.list"].create({"name": "Test mail tracking"})
+ self.list = self.env["mailing.list"].create({"name": "Test mail tracking"})
self.list.name = "{} #{}".format(self.list.name, self.list.id)
- self.contact_a = self.env["mail.mass_mailing.contact"].create(
+ self.contact_a = self.env["mailing.contact"].create(
{
"list_ids": [(6, 0, self.list.ids)],
"name": "Test contact A",
"email": "contact_a@example.com",
}
)
- self.mailing = self.env["mail.mass_mailing"].create(
+ self.mailing = self.env["mailing.mailing"].create(
{
- "name": "Test subject",
+ "subject": "Test subject",
"email_from": "from@example.com",
"mailing_model_id": self.env.ref(
- "mass_mailing.model_mail_mass_mailing_contact"
+ "mass_mailing.model_mailing_contact"
).id,
"mailing_domain": "[('list_ids', 'in', %d)]" % self.list.id,
"contact_list_ids": [(6, False, [self.list.id])],
@@ -44,8 +44,8 @@ class TestMassMailing(TransactionCase):
def test_smtp_error(self):
with mock.patch(mock_send_email) as mock_func:
mock_func.side_effect = Warning("Mock test error")
- self.mailing.send_mail()
- for stat in self.mailing.statistics_ids:
+ self.mailing.action_send_mail()
+ for stat in self.mailing.mailing_trace_ids:
if stat.mail_mail_id:
stat.mail_mail_id.send()
tracking = self.env["mail.tracking.email"].search(
@@ -58,8 +58,8 @@ class TestMassMailing(TransactionCase):
self.assertTrue(self.contact_a.email_bounced)
def test_tracking_email_link(self):
- self.mailing.send_mail()
- for stat in self.mailing.statistics_ids:
+ self.mailing.action_send_mail()
+ for stat in self.mailing.mailing_trace_ids:
if stat.mail_mail_id:
stat.mail_mail_id.send()
tracking_email = self.env["mail.tracking.email"].search(
@@ -80,8 +80,8 @@ class TestMassMailing(TransactionCase):
self.assertTrue(stat.opened)
def _tracking_email_bounce(self, event_type, state):
- self.mailing.send_mail()
- for stat in self.mailing.statistics_ids:
+ self.mailing.action_send_mail()
+ for stat in self.mailing.mailing_trace_ids:
if stat.mail_mail_id:
stat.mail_mail_id.send()
tracking_email = self.env["mail.tracking.email"].search(
diff --git a/mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml b/mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml
index 651931e18..44e960f8f 100644
--- a/mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml
+++ b/mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml
@@ -8,7 +8,6 @@
Mail tracking emails
mail.tracking.email
- form
tree,form
[('mass_mailing_id', '!=', False)]
@@ -16,7 +15,6 @@
Mail tracking events
mail.tracking.event
- form
tree,form
[('mass_mailing_id', '!=', False)]
diff --git a/mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml b/mail_tracking_mass_mailing/views/mail_trace_view.xml
similarity index 87%
rename from mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml
rename to mail_tracking_mass_mailing/views/mail_trace_view.xml
index 0ec98caff..56d7c4a20 100644
--- a/mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml
+++ b/mail_tracking_mass_mailing/views/mail_trace_view.xml
@@ -4,10 +4,10 @@
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
-
+
Add tracking email info
- mail.mail.statistics
-
+ mailing.trace
+
diff --git a/mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml b/mail_tracking_mass_mailing/views/mailing_contact_view.xml
similarity index 86%
rename from mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml
rename to mail_tracking_mass_mailing/views/mailing_contact_view.xml
index 4c572d89c..8363399a7 100644
--- a/mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml
+++ b/mail_tracking_mass_mailing/views/mailing_contact_view.xml
@@ -6,7 +6,7 @@
Add email score and stars
- mail.mass_mailing.contact
+ mailing.contact
@@ -18,10 +18,10 @@
Filter bounced contacts
- mail.mass_mailing.contact
+ mailing.contact
-
+