Browse Source

mail_tracking_mass_mailing module

pull/293/head
cubells 8 years ago
committed by Pedro M. Baeza
parent
commit
d0f543d19b
  1. 12
      mail_tracking_mass_mailing/README.rst
  2. 3
      mail_tracking_mass_mailing/__init__.py
  3. 5
      mail_tracking_mass_mailing/__openerp__.py
  4. 3
      mail_tracking_mass_mailing/hooks.py
  5. 17
      mail_tracking_mass_mailing/i18n/ca.po
  6. 17
      mail_tracking_mass_mailing/i18n/de.po
  7. 17
      mail_tracking_mass_mailing/i18n/el_GR.po
  8. 18
      mail_tracking_mass_mailing/i18n/es.po
  9. 17
      mail_tracking_mass_mailing/i18n/es_CO.po
  10. 17
      mail_tracking_mass_mailing/i18n/fr.po
  11. 17
      mail_tracking_mass_mailing/i18n/hr.po
  12. 17
      mail_tracking_mass_mailing/i18n/it.po
  13. 17
      mail_tracking_mass_mailing/i18n/pt.po
  14. 17
      mail_tracking_mass_mailing/i18n/pt_BR.po
  15. 19
      mail_tracking_mass_mailing/i18n/sl.po
  16. 17
      mail_tracking_mass_mailing/i18n/tr.po
  17. 4
      mail_tracking_mass_mailing/models/__init__.py
  18. 15
      mail_tracking_mass_mailing/models/mail_mail.py
  19. 3
      mail_tracking_mass_mailing/models/mail_mail_statistics.py
  20. 31
      mail_tracking_mass_mailing/models/mail_mass_mailing.py
  21. 3
      mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py
  22. 3
      mail_tracking_mass_mailing/models/mail_tracking_email.py
  23. 3
      mail_tracking_mass_mailing/models/mail_tracking_event.py
  24. 3
      mail_tracking_mass_mailing/tests/__init__.py
  25. 33
      mail_tracking_mass_mailing/tests/test_mass_mailing.py
  26. 9
      mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml
  27. 9
      mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml
  28. 20
      mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml
  29. 9
      mail_tracking_mass_mailing/views/mail_tracking_email_view.xml

12
mail_tracking_mass_mailing/README.rst

@ -27,16 +27,13 @@ From mail statistic object, you can see:
From mass mailing contact, you can see: From mass mailing contact, you can see:
- Email score, in order to clean up your lists from bad score emails - 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 .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :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 Bug Tracker
@ -60,6 +57,7 @@ Contributors
* Pedro M. Baeza <pedro.baeza@tecnativa.com> * Pedro M. Baeza <pedro.baeza@tecnativa.com>
* Antonio Espinosa <antonio.espinosa@tecnativa.com> * Antonio Espinosa <antonio.espinosa@tecnativa.com>
* Vicent Cubells <vicent.cubells@tecnativa.com>
Maintainer Maintainer
---------- ----------

3
mail_tracking_mass_mailing/__init__.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models from . import models

5
mail_tracking_mass_mailing/__openerp__.py

@ -1,11 +1,12 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{ {
"name": "Mail tracking for mass mailing", "name": "Mail tracking for mass mailing",
"summary": "Improve mass mailing email tracking", "summary": "Improve mass mailing email tracking",
"version": "8.0.1.0.1",
"version": "9.0.1.0.0",
"category": "Social Network", "category": "Social Network",
"website": "http://www.tecnativa.com", "website": "http://www.tecnativa.com",
"author": "Tecnativa, " "author": "Tecnativa, "

3
mail_tracking_mass_mailing/hooks.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging import logging

17
mail_tracking_mass_mailing/i18n/ca.po

@ -32,16 +32,6 @@ msgid ""
" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n" " * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -112,13 +102,6 @@ msgstr "Correus sortints"
msgid "State" msgid "State"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing.contact,tracking_email_ids:0 #: field:mail.mass_mailing.contact,tracking_email_ids:0
msgid "Tracking emails" msgid "Tracking emails"

17
mail_tracking_mass_mailing/i18n/de.po

@ -19,16 +19,6 @@ msgstr ""
"Language: de\n" "Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Ausgehende Nachrichten" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/el_GR.po

@ -18,16 +18,6 @@ msgstr ""
"Language: el_GR\n" "Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

18
mail_tracking_mass_mailing/i18n/es.po

@ -19,17 +19,6 @@ msgstr ""
"Language: es\n" "Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -123,13 +112,6 @@ msgstr "Envío masivo"
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Correos salientes" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/es_CO.po

@ -32,16 +32,6 @@ msgid ""
" * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n" " * The 'Soft bounced' status indicates that message was soft bounced by recipient Mail Exchange (MX) server.\n"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -112,13 +102,6 @@ msgstr "Correos Salientes"
msgid "State" msgid "State"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: field:mail.mass_mailing.contact,tracking_email_ids:0 #: field:mail.mass_mailing.contact,tracking_email_ids:0
msgid "Tracking emails" msgid "Tracking emails"

17
mail_tracking_mass_mailing/i18n/fr.po

@ -18,16 +18,6 @@ msgstr ""
"Language: fr\n" "Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -121,13 +111,6 @@ msgstr "Publipostage"
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Courriels sortants" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/hr.po

@ -18,16 +18,6 @@ msgstr ""
"Language: hr\n" "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" "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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/it.po

@ -19,16 +19,6 @@ msgstr ""
"Language: it\n" "Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Mail in Uscita" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/pt.po

@ -18,16 +18,6 @@ msgstr ""
"Language: pt\n" "Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -121,13 +111,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/pt_BR.po

@ -19,16 +19,6 @@ msgstr ""
"Language: pt_BR\n" "Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Mails de Saída" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

19
mail_tracking_mass_mailing/i18n/sl.po

@ -19,16 +19,6 @@ msgstr ""
"Language: sl\n" "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" "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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -122,15 +112,6 @@ msgstr "Masovna pošta"
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "Izhodna pošta" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

17
mail_tracking_mass_mailing/i18n/tr.po

@ -19,16 +19,6 @@ msgstr ""
"Language: tr\n" "Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
msgid "Country" msgid "Country"
@ -122,13 +112,6 @@ msgstr ""
msgid "Outgoing Mails" msgid "Outgoing Mails"
msgstr "" 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 #. module: mail_tracking_mass_mailing
#: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form #: view:mail.mail.statistics:mail_tracking_mass_mailing.view_mail_mail_statistics_form
#: field:mail.mail.statistics,tracking_event_ids:0 #: field:mail.mail.statistics,tracking_event_ids:0

4
mail_tracking_mass_mailing/models/__init__.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import mail_mail from . import mail_mail
from . import mail_tracking_email from . import mail_tracking_email
from . import mail_tracking_event from . import mail_tracking_event
from . import mail_mail_statistics from . import mail_mail_statistics
from . import mail_mass_mailing
from . import mail_mass_mailing_contact from . import mail_mass_mailing_contact

15
mail_tracking_mass_mailing/models/mail_mail.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api from openerp import models, api
@ -9,13 +10,13 @@ class MailMail(models.Model):
_inherit = "mail.mail" _inherit = "mail.mail"
@api.model @api.model
def _tracking_email_prepare(self, mail, partner, email):
def _tracking_email_prepare(self, partner, email):
res = super(MailMail, self)._tracking_email_prepare( 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 return res
@api.model @api.model

3
mail_tracking_mass_mailing/models/mail_mail_statistics.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields from openerp import models, fields

31
mail_tracking_mass_mailing/models/mail_mass_mailing.py

@ -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

3
mail_tracking_mass_mailing/models/mail_mass_mailing_contact.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api, fields from openerp import models, api, fields

3
mail_tracking_mass_mailing/models/mail_tracking_email.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api from openerp import models, fields, api

3
mail_tracking_mass_mailing/models/mail_tracking_event.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models from openerp import api, fields, models

3
mail_tracking_mass_mailing/tests/__init__.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import test_mass_mailing from . import test_mass_mailing

33
mail_tracking_mass_mailing/tests/test_mass_mailing.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import mock import mock
from openerp.tests.common import TransactionCase from openerp.tests.common import TransactionCase
from openerp.exceptions import Warning as UserError
mock_send_email = ('openerp.addons.base.ir.ir_mail_server.' mock_send_email = ('openerp.addons.base.ir.ir_mail_server.'
'ir_mail_server.send_email') 'ir_mail_server.send_email')
@ -16,6 +16,7 @@ class TestMassMailing(TransactionCase):
self.list = self.env['mail.mass_mailing.list'].create({ self.list = self.env['mail.mass_mailing.list'].create({
'name': 'Test mail tracking', '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({ self.contact_a = self.env['mail.mass_mailing.contact'].create({
'list_id': self.list.id, 'list_id': self.list.id,
'name': 'Test contact A', 'name': 'Test contact A',
@ -32,27 +33,6 @@ class TestMassMailing(TransactionCase):
'reply_to_mode': 'email', '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): def test_smtp_error(self):
with mock.patch(mock_send_email) as mock_func: with mock.patch(mock_send_email) as mock_func:
mock_func.side_effect = Warning('Test error') mock_func.side_effect = Warning('Test error')
@ -63,9 +43,10 @@ class TestMassMailing(TransactionCase):
tracking = self.env['mail.tracking.email'].search([ tracking = self.env['mail.tracking.email'].search([
('mail_id_int', '=', stat.mail_mail_id_int), ('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) self.assertTrue(self.contact_a.email_bounced)
def test_tracking_email_link(self): def test_tracking_email_link(self):

9
mail_tracking_mass_mailing/views/mail_mail_statistics_view.xml

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-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). --> 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"> <record model="ir.ui.view" id="view_mail_mail_statistics_form">
<field name="name">Add tracking email info</field> <field name="name">Add tracking email info</field>
@ -31,5 +31,4 @@
</field> </field>
</record> </record>
</data>
</openerp>
</odoo>

9
mail_tracking_mass_mailing/views/mail_mass_mailing_contact_view.xml

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-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). --> 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"> <record model="ir.ui.view" id="view_mail_mass_mailing_contact_tree">
<field name="name">Add email score and stars</field> <field name="name">Add email score and stars</field>
@ -28,5 +28,4 @@
</field> </field>
</record> </record>
</data>
</openerp>
</odoo>

20
mail_tracking_mass_mailing/views/mail_mass_mailing_view.xml

@ -1,19 +1,8 @@
<?xml version="1.0" encoding="utf-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). --> 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"> <record model="ir.actions.act_window" id="action_view_mail_tracking_email">
<field name="name">Mail tracking emails</field> <field name="name">Mail tracking emails</field>
@ -42,5 +31,4 @@
parent="mail_tracking_menu" sequence="2" parent="mail_tracking_menu" sequence="2"
action="action_view_mail_tracking_event"/> action="action_view_mail_tracking_event"/>
</data>
</openerp>
</odoo>

9
mail_tracking_mass_mailing/views/mail_tracking_email_view.xml

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-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). --> 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"> <record model="ir.ui.view" id="view_mail_tracking_email_form">
<field name="name">Add mass mailing and mail stadistics</field> <field name="name">Add mass mailing and mail stadistics</field>
@ -16,5 +16,4 @@
</field> </field>
</record> </record>
</data>
</openerp>
</odoo>
Loading…
Cancel
Save