mail_tracking_mass_mailing module

pull/351/head
cubells 2017-01-03 22:57:57 +01:00 committed by Jairo Llopis
parent 7e3115d3b9
commit f65fe96565
29 changed files with 55 additions and 320 deletions

View File

@ -27,16 +27,13 @@ From mail statistic object, you can see:
From mass mailing contact, you can see:
- Email score, in order to clean up your lists from bad score emails
As a bonus feature, you have a new checkbox 'Avoid resend' in mass mailing,
in order to not send twice the same email to the same recipient. This is very
useful when you want to resend the mass mailing after changing selection
recipients. Notice that recipient selection could be a domain over a model, so
result ids could change over the time. With this flag you can send
the same email several times but only once to each recipient.
Mass mailing emails are sent only to recipients once. If you want to send
eamils again to all the recipients, you must duplicate mass mailing.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/205/8.0
:target: https://runbot.odoo-community.org/runbot/205/9.0
Bug Tracker
@ -60,6 +57,7 @@ Contributors
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
* Antonio Espinosa <antonio.espinosa@tecnativa.com>
* Vicent Cubells <vicent.cubells@tecnativa.com>
Maintainer
----------

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models

View File

@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Mail tracking for mass mailing",
"summary": "Improve mass mailing email tracking",
"version": "8.0.1.0.1",
"version": "9.0.1.0.0",
"category": "Social Network",
"website": "http://www.tecnativa.com",
"author": "Tecnativa, "

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging

View File

@ -32,16 +32,6 @@ msgid ""
" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
msgstr ""
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -112,13 +102,6 @@ msgstr "Correus sortints"
msgid "State"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing.contact,tracking_email_ids:0
msgid "Tracking emails"

View File

@ -19,16 +19,6 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr "Ausgehende Nachrichten"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -18,16 +18,6 @@ msgstr ""
"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -19,17 +19,6 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr "Evitar reenvios"
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
"Evitar que se envíe este correo masivo dos veces al mismo destinatario"
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -123,13 +112,6 @@ msgstr "Envío masivo"
msgid "Outgoing Mails"
msgstr "Correos salientes"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -32,16 +32,6 @@ msgid ""
" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
msgstr ""
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -112,13 +102,6 @@ msgstr "Correos Salientes"
msgid "State"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing.contact,tracking_email_ids:0
msgid "Tracking emails"

View File

@ -18,16 +18,6 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -121,13 +111,6 @@ msgstr "Publipostage"
msgid "Outgoing Mails"
msgstr "Courriels sortants"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -18,16 +18,6 @@ msgstr ""
"Language: hr\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -19,16 +19,6 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr "Mail in Uscita"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -18,16 +18,6 @@ msgstr ""
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -19,16 +19,6 @@ msgstr ""
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr "Mails de Saída"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -19,16 +19,6 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr "Izogibaj se ponovnemu pošiljanju"
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr "Izogibaj se dvakratnemu masovnemu pošiljanju istemu prejemniku."
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -122,15 +112,6 @@ msgstr "Masovna pošta"
msgid "Outgoing Mails"
msgstr "Izhodna pošta"
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
"Ni več potencialnih prejemnikov, pa tudi opcija 'Izogibaj se ponovnemu "
"pošiljanju' je omogočena."
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -19,16 +19,6 @@ msgstr ""
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing,avoid_resend:0
msgid "Avoid resend"
msgstr ""
#. module: mail_tracking_mass_mailing
#: help:mail.mass_mailing,avoid_resend:0
msgid "Avoid to send this mass mailing email twice to the same recipient"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails"
msgstr ""
#. module: mail_tracking_mass_mailing
#: code:addons/mail_tracking_mass_mailing/models/mail_mass_mailing.py:28
#, python-format
msgid ""
"There is no more recipients to send and 'Avoid resend' option is enabled"
msgstr ""
#. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0

View File

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import mail_mail
from . import mail_tracking_email
from . import mail_tracking_event
from . import mail_mail_statistics
from . import mail_mass_mailing
from . import mail_mass_mailing_contact

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api
@ -9,13 +10,13 @@ class MailMail(models.Model):
_inherit = "mail.mail"
@api.model
def _tracking_email_prepare(self, mail, partner, email):
def _tracking_email_prepare(self, partner, email):
res = super(MailMail, self)._tracking_email_prepare(
mail, partner, email)
res['mail_id_int'] = mail.id
res['mass_mailing_id'] = mail.mailing_id.id
res['mail_stats_id'] = mail.statistics_ids[:1].id \
if mail.statistics_ids else False
partner, email)
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
return res
@api.model

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields

View File

@ -1,31 +0,0 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api, fields, _
from openerp.exceptions import Warning as UserError
class MailMassMailing(models.Model):
_inherit = 'mail.mass_mailing'
avoid_resend = fields.Boolean(
string="Avoid resend",
help="Avoid to send this mass mailing email twice "
"to the same recipient")
@api.model
def get_recipients(self, mailing):
res_ids = super(MailMassMailing, self).get_recipients(mailing)
if mailing.avoid_resend:
already_sent = self.env['mail.mail.statistics'].search([
('mass_mailing_id', '=', mailing.id),
('model', '=', mailing.mailing_model),
])
res_ids = list(set(res_ids).difference(
already_sent.mapped('res_id')))
if not res_ids:
raise UserError(_(
"There is no more recipients to send and 'Avoid resend' "
"option is enabled"))
return res_ids

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api, fields

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models

View File

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import test_mass_mailing

View File

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import mock
from openerp.tests.common import TransactionCase
from openerp.exceptions import Warning as UserError
mock_send_email = ('openerp.addons.base.ir.ir_mail_server.'
'ir_mail_server.send_email')
@ -16,6 +16,7 @@ class TestMassMailing(TransactionCase):
self.list = self.env['mail.mass_mailing.list'].create({
'name': 'Test mail tracking',
})
self.list.name = '%s #%s' % (self.list.name, self.list.id)
self.contact_a = self.env['mail.mass_mailing.contact'].create({
'list_id': self.list.id,
'name': 'Test contact A',
@ -32,27 +33,6 @@ class TestMassMailing(TransactionCase):
'reply_to_mode': 'email',
})
def resend_mass_mailing(self, first, second):
self.mailing.send_mail()
self.assertEqual(len(self.mailing.statistics_ids), first)
self.env['mail.mass_mailing.contact'].create({
'list_id': self.list.id,
'name': 'Test contact B',
'email': 'contact_b@example.com',
})
self.mailing.send_mail()
self.assertEqual(len(self.mailing.statistics_ids), second)
def test_avoid_resend_enable(self):
self.mailing.avoid_resend = True
self.resend_mass_mailing(1, 2)
with self.assertRaises(UserError):
self.mailing.send_mail()
def test_avoid_resend_disable(self):
self.mailing.avoid_resend = False
self.resend_mass_mailing(1, 3)
def test_smtp_error(self):
with mock.patch(mock_send_email) as mock_func:
mock_func.side_effect = Warning('Test error')
@ -63,9 +43,10 @@ class TestMassMailing(TransactionCase):
tracking = self.env['mail.tracking.email'].search([
('mail_id_int', '=', stat.mail_mail_id_int),
])
self.assertEqual('error', tracking.state)
self.assertEqual('Warning', tracking.error_type)
self.assertEqual('Test error', tracking.error_description)
for track in tracking:
self.assertEqual('error', track.state)
self.assertEqual('Warning', track.error_type)
self.assertEqual('Test error', track.error_description)
self.assertTrue(self.contact_a.email_bounced)
def test_tracking_email_link(self):

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
<!-- Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<openerp>
<data>
<odoo>
<record model="ir.ui.view" id="view_mail_mail_statistics_form">
<field name="name">Add tracking email info</field>
@ -31,5 +31,4 @@
</field>
</record>
</data>
</openerp>
</odoo>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
<!-- Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<openerp>
<data>
<odoo>
<record model="ir.ui.view" id="view_mail_mass_mailing_contact_tree">
<field name="name">Add email score and stars</field>
@ -28,5 +28,4 @@
</field>
</record>
</data>
</openerp>
</odoo>

View File

@ -1,19 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
<!-- Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<openerp>
<data>
<record model="ir.ui.view" id="view_mail_mass_mailing_form">
<field name="name">Add avoid resend field</field>
<field name="model">mail.mass_mailing</field>
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_form"/>
<field name="arch" type="xml">
<field name="mass_mailing_campaign_id" position="before">
<field name="avoid_resend"/>
</field>
</field>
</record>
<odoo>
<record model="ir.actions.act_window" id="action_view_mail_tracking_email">
<field name="name">Mail tracking emails</field>
@ -42,5 +31,4 @@
parent="mail_tracking_menu" sequence="2"
action="action_view_mail_tracking_event"/>
</data>
</openerp>
</odoo>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
<!-- Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
Copyright 2017 Vicent Cubells - <vicent.cubells@tecnativa.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
<openerp>
<data>
<odoo>
<record model="ir.ui.view" id="view_mail_tracking_email_form">
<field name="name">Add mass mailing and mail stadistics</field>
@ -16,5 +16,4 @@
</field>
</record>
</data>
</openerp>
</odoo>