[IMP] mail_tracking_mailgun: black, isort

This commit is contained in:
hveficent 2020-04-02 11:15:00 +02:00 committed by nicolas
parent 6ca2da29cf
commit 5892f7db62
59 changed files with 772 additions and 718 deletions

View File

@ -9,16 +9,10 @@
"version": "12.0.1.0.2", "version": "12.0.1.0.2",
"category": "Social Network", "category": "Social Network",
"website": "https://github.com/OCA/social", "website": "https://github.com/OCA/social",
"author": "Tecnativa, " "author": "Tecnativa, Odoo Community Association (OCA)",
"Odoo Community Association (OCA)",
"license": "AGPL-3", "license": "AGPL-3",
"application": False, "application": False,
'installable': True, "installable": True,
"depends": [ "depends": ["mail_tracking"],
"mail_tracking", "data": ["views/res_partner.xml", "views/mail_tracking_email.xml"],
],
"data": [
"views/res_partner.xml",
"views/mail_tracking_email.xml",
]
} }

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -49,7 +49,7 @@ msgstr ""
"prevenir problemas con los envíos" "prevenir problemas con los envíos"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "¡Se necesita un valor de dominio para Mailgun!\"" msgstr "¡Se necesita un valor de dominio para Mailgun!\""
@ -70,7 +70,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "No se ha podido obtener información desde Mailgun" msgstr "No se ha podido obtener información desde Mailgun"
@ -94,7 +94,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "Error %s al intentar comprobar el correo electrónicodeconexión" msgstr "Error %s al intentar comprobar el correo electrónicodeconexión"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "La información del evento ha caducado" msgstr "La información del evento ha caducado"
@ -143,13 +143,13 @@ msgid "Set Bounced"
msgstr "Marcar como rebotado" msgstr "Marcar como rebotado"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "¡No hay clave de API de Mailgun!" msgstr "¡No hay clave de API de Mailgun!"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -48,7 +48,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -69,7 +69,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -90,7 +90,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -137,13 +137,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -135,13 +135,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -45,7 +45,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -66,7 +66,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -134,13 +134,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -135,13 +135,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -32,7 +32,7 @@ msgid "%s is not a valid email address. Please check it in order to avoid sendin
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -53,7 +53,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -73,7 +73,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -120,13 +120,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -135,13 +135,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -45,7 +45,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -66,7 +66,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -134,13 +134,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -51,7 +51,7 @@ msgstr ""
"evitar problemas de envio" "evitar problemas de envio"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "É necessário um valor no domínio do Mailgun!" msgstr "É necessário um valor no domínio do Mailgun!"
@ -72,7 +72,7 @@ msgid "Contact"
msgstr "Contacto" msgstr "Contacto"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "Não foi possível obter informação do Mailgun" msgstr "Não foi possível obter informação do Mailgun"
@ -96,7 +96,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "Erro %s ao tentar verificar o mailof da conexão" msgstr "Erro %s ao tentar verificar o mailof da conexão"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "A informação do evento já não está armazenada" msgstr "A informação do evento já não está armazenada"
@ -144,13 +144,13 @@ msgid "Set Bounced"
msgstr "Marcar como Devolvido" msgstr "Marcar como Devolvido"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "Não há chave de API do Mailgun!" msgstr "Não há chave de API do Mailgun!"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "Não há mensagem rastreada!" msgstr "Não há mensagem rastreada!"

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -45,7 +45,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -66,7 +66,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -134,13 +134,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -9,16 +9,15 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:19+0000\n" "POT-Creation-Date: 2017-12-01 02:19+0000\n"
"PO-Revision-Date: 2020-03-30 22:13+0000\n" "PO-Revision-Date: 2017-12-01 02:19+0000\n"
"Last-Translator: Matjaz Mozetic <matjaz@matmoz.si>\n" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n" "Language: sl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"n%100==4 ? 2 : 3;\n" "%100==4 ? 2 : 3);\n"
"X-Generator: Weblate 3.10\n"
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/res_partner.py:92 #: code:addons/mail_tracking_mailgun/models/res_partner.py:92
@ -45,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -63,10 +62,10 @@ msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: model:ir.model,name:mail_tracking_mailgun.model_res_partner #: model:ir.model,name:mail_tracking_mailgun.model_res_partner
msgid "Contact" msgid "Contact"
msgstr "Stik" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -87,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -134,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -45,7 +45,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -66,7 +66,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -134,13 +134,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -43,7 +43,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -64,7 +64,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -85,7 +85,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -132,13 +132,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -44,7 +44,7 @@ msgid ""
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:77 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:75
#, python-format #, python-format
msgid "A Mailgun domain value is needed!" msgid "A Mailgun domain value is needed!"
msgstr "" msgstr ""
@ -65,7 +65,7 @@ msgid "Contact"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:241 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:239
#, python-format #, python-format
msgid "Couldn't retrieve Mailgun information" msgid "Couldn't retrieve Mailgun information"
msgstr "" msgstr ""
@ -86,7 +86,7 @@ msgid "Error %s trying to check mailof connection"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:245 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:243
#, python-format #, python-format
msgid "Event information not longer stored" msgid "Event information not longer stored"
msgstr "" msgstr ""
@ -133,13 +133,13 @@ msgid "Set Bounced"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:71 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:69
#, python-format #, python-format
msgid "There is no Mailgun API key!" msgid "There is no Mailgun API key!"
msgstr "" msgstr ""
#. module: mail_tracking_mailgun #. module: mail_tracking_mailgun
#: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:228 #: code:addons/mail_tracking_mailgun/models/mail_tracking_email.py:226
#, python-format #, python-format
msgid "There is no tracked message!" msgid "There is no tracked message!"
msgstr "" msgstr ""

View File

@ -2,6 +2,7 @@
# 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 json import json
from odoo import models from odoo import models
@ -10,11 +11,12 @@ class IrMailServer(models.Model):
def _tracking_headers_add(self, tracking_email_id, headers): def _tracking_headers_add(self, tracking_email_id, headers):
headers = super(IrMailServer, self)._tracking_headers_add( headers = super(IrMailServer, self)._tracking_headers_add(
tracking_email_id, headers) tracking_email_id, headers
)
headers = headers or {} headers = headers or {}
metadata = { metadata = {
'odoo_db': self.env.cr.dbname, "odoo_db": self.env.cr.dbname,
'tracking_email_id': tracking_email_id, "tracking_email_id": tracking_email_id,
} }
headers['X-Mailgun-Variables'] = json.dumps(metadata) headers["X-Mailgun-Variables"] = json.dumps(metadata)
return headers return headers

View File

@ -4,13 +4,15 @@
import hashlib import hashlib
import hmac import hmac
import requests import logging
from datetime import datetime from datetime import datetime
import requests
from odoo import _, api, fields, models from odoo import _, api, fields, models
from odoo.exceptions import UserError, ValidationError from odoo.exceptions import UserError, ValidationError
from odoo.tools import email_split from odoo.tools import email_split
import logging
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -20,159 +22,174 @@ class MailTrackingEmail(models.Model):
def _country_search(self, country_code): def _country_search(self, country_code):
country = False country = False
if country_code: if country_code:
country = self.env['res.country'].search([ country = self.env["res.country"].search(
('code', '=', country_code.upper()), [("code", "=", country_code.upper())]
]) )
if country: if country:
return country.id return country.id
return False return False
@property @property
def _mailgun_mandatory_fields(self): def _mailgun_mandatory_fields(self):
return ('event', 'timestamp', 'token', 'signature', return (
'tracking_email_id', 'odoo_db') "event",
"timestamp",
"token",
"signature",
"tracking_email_id",
"odoo_db",
)
@property @property
def _mailgun_event_type_mapping(self): def _mailgun_event_type_mapping(self):
return { return {
# Mailgun event type: tracking event type # Mailgun event type: tracking event type
'delivered': 'delivered', "delivered": "delivered",
'opened': 'open', "opened": "open",
'clicked': 'click', "clicked": "click",
'unsubscribed': 'unsub', "unsubscribed": "unsub",
'complained': 'spam', "complained": "spam",
'bounced': 'hard_bounce', "bounced": "hard_bounce",
'dropped': 'reject', "dropped": "reject",
'accepted': 'sent', "accepted": "sent",
'failed': 'error', "failed": "error",
'rejected': 'error', "rejected": "error",
} }
def _mailgun_event_type_verify(self, event): def _mailgun_event_type_verify(self, event):
event = event or {} event = event or {}
mailgun_event_type = event.get('event') mailgun_event_type = event.get("event")
if mailgun_event_type not in self._mailgun_event_type_mapping: if mailgun_event_type not in self._mailgun_event_type_mapping:
_logger.error("Mailgun: event type '%s' not supported", _logger.error("Mailgun: event type '%s' not supported", mailgun_event_type)
mailgun_event_type)
return False return False
# OK, event type is valid # OK, event type is valid
return True return True
def _mailgun_signature(self, api_key, timestamp, token): def _mailgun_signature(self, api_key, timestamp, token):
return hmac.new( return hmac.new(
key=bytes(api_key, 'utf-8'), key=bytes(api_key, "utf-8"),
msg=bytes('{}{}'.format(str(timestamp), str(token)), 'utf-8'), msg=bytes("{}{}".format(str(timestamp), str(token)), "utf-8"),
digestmod=hashlib.sha256).hexdigest() digestmod=hashlib.sha256,
).hexdigest()
def _mailgun_values(self): def _mailgun_values(self):
icp = self.env['ir.config_parameter'].sudo() icp = self.env["ir.config_parameter"].sudo()
api_key = icp.get_param('mailgun.apikey') api_key = icp.get_param("mailgun.apikey")
if not api_key: if not api_key:
raise ValidationError(_('There is no Mailgun API key!')) raise ValidationError(_("There is no Mailgun API key!"))
api_url = icp.get_param( api_url = icp.get_param("mailgun.api_url", "https://api.mailgun.net/v3")
'mailgun.api_url', 'https://api.mailgun.net/v3') catchall_domain = icp.get_param("mail.catchall.domain")
catchall_domain = icp.get_param('mail.catchall.domain') domain = icp.get_param("mailgun.domain", catchall_domain)
domain = icp.get_param('mailgun.domain', catchall_domain)
if not domain: if not domain:
raise ValidationError(_('A Mailgun domain value is needed!')) raise ValidationError(_("A Mailgun domain value is needed!"))
validation_key = icp.get_param('mailgun.validation_key') validation_key = icp.get_param("mailgun.validation_key")
return api_key, api_url, domain, validation_key return api_key, api_url, domain, validation_key
def _mailgun_signature_verify(self, event): def _mailgun_signature_verify(self, event):
event = event or {} event = event or {}
icp = self.env['ir.config_parameter'].sudo() icp = self.env["ir.config_parameter"].sudo()
api_key = icp.get_param('mailgun.apikey') api_key = icp.get_param("mailgun.apikey")
if not api_key: if not api_key:
_logger.warning("No Mailgun api key configured. " _logger.warning(
"Please add 'mailgun.apikey' to System parameters " "No Mailgun api key configured. "
"to enable Mailgun authentication webhoook " "Please add 'mailgun.apikey' to System parameters "
"requests. More info at: " "to enable Mailgun authentication webhoook "
"https://documentation.mailgun.com/" "requests. More info at: "
"user_manual.html#webhooks") "https://documentation.mailgun.com/"
"user_manual.html#webhooks"
)
else: else:
timestamp = event.get('timestamp') timestamp = event.get("timestamp")
token = event.get('token') token = event.get("token")
signature = event.get('signature') signature = event.get("signature")
event_digest = self._mailgun_signature(api_key, timestamp, token) event_digest = self._mailgun_signature(api_key, timestamp, token)
if signature != event_digest: if signature != event_digest:
_logger.error("Mailgun: Invalid signature '%s' != '%s'", _logger.error(
signature, event_digest) "Mailgun: Invalid signature '%s' != '%s'", signature, event_digest
)
return False return False
# OK, signature is valid # OK, signature is valid
return True return True
def _db_verify(self, event): def _db_verify(self, event):
event = event or {} event = event or {}
odoo_db = event.get('odoo_db') odoo_db = event.get("odoo_db")
current_db = self.env.cr.dbname current_db = self.env.cr.dbname
if odoo_db != current_db: if odoo_db != current_db:
_logger.error("Mailgun: Database '%s' is not the current database", _logger.error("Mailgun: Database '%s' is not the current database", odoo_db)
odoo_db)
return False return False
# OK, DB is current # OK, DB is current
return True return True
def _mailgun_metadata(self, mailgun_event_type, event, metadata): def _mailgun_metadata(self, mailgun_event_type, event, metadata):
# Get Mailgun timestamp when found # Get Mailgun timestamp when found
ts = event.get('timestamp', False) ts = event.get("timestamp", False)
try: try:
ts = float(ts) ts = float(ts)
except Exception: except Exception:
ts = False ts = False
if ts: if ts:
dt = datetime.utcfromtimestamp(ts) dt = datetime.utcfromtimestamp(ts)
metadata.update({ metadata.update(
'timestamp': ts, {
'time': fields.Datetime.to_string(dt), "timestamp": ts,
'date': fields.Date.to_string(dt), "time": fields.Datetime.to_string(dt),
'mailgun_id': event.get('id', False) "date": fields.Date.to_string(dt),
}) "mailgun_id": event.get("id", False),
}
)
# Common field mapping # Common field mapping
mapping = { mapping = {
'recipient': 'recipient', "recipient": "recipient",
'ip': 'ip', "ip": "ip",
'user_agent': 'user-agent', "user_agent": "user-agent",
'os_family': 'client-os', "os_family": "client-os",
'ua_family': 'client-name', "ua_family": "client-name",
'ua_type': 'client-type', "ua_type": "client-type",
'url': 'url', "url": "url",
} }
for k, v in mapping.items(): for k, v in mapping.items():
if event.get(v, False): if event.get(v, False):
metadata[k] = event[v] metadata[k] = event[v]
# Special field mapping # Special field mapping
metadata.update({ metadata.update(
'mobile': event.get('device-type') in {'mobile', 'tablet'}, {
'user_country_id': self._country_search( "mobile": event.get("device-type") in {"mobile", "tablet"},
event.get('country', False)), "user_country_id": self._country_search(event.get("country", False)),
}) }
)
# Mapping for special events # Mapping for special events
if mailgun_event_type == 'bounced': if mailgun_event_type == "bounced":
metadata.update({ metadata.update(
'error_type': event.get('code', False), {
'error_description': event.get('error', False), "error_type": event.get("code", False),
'error_details': event.get('notification', False), "error_description": event.get("error", False),
}) "error_details": event.get("notification", False),
elif mailgun_event_type == 'dropped': }
metadata.update({ )
'error_type': event.get('reason', False), elif mailgun_event_type == "dropped":
'error_description': event.get('code', False), metadata.update(
'error_details': event.get('description', False), {
}) "error_type": event.get("reason", False),
elif mailgun_event_type == 'complained': "error_description": event.get("code", False),
metadata.update({ "error_details": event.get("description", False),
'error_type': 'spam', }
'error_description': )
"Recipient '%s' mark this email as spam" % elif mailgun_event_type == "complained":
event.get('recipient', False), metadata.update(
}) {
"error_type": "spam",
"error_description": "Recipient '%s' mark this email as spam"
% event.get("recipient", False),
}
)
return metadata return metadata
def _mailgun_tracking_get(self, event): def _mailgun_tracking_get(self, event):
tracking = False tracking = False
tracking_email_id = event.get('tracking_email_id', False) tracking_email_id = event.get("tracking_email_id", False)
if tracking_email_id and tracking_email_id.isdigit(): if tracking_email_id and tracking_email_id.isdigit():
tracking = self.search([('id', '=', tracking_email_id)], limit=1) tracking = self.search([("id", "=", tracking_email_id)], limit=1)
return tracking return tracking
def _event_is_from_mailgun(self, event): def _event_is_from_mailgun(self, event):
@ -182,35 +199,35 @@ class MailTrackingEmail(models.Model):
@api.model @api.model
def event_process(self, request, post, metadata, event_type=None): def event_process(self, request, post, metadata, event_type=None):
res = super(MailTrackingEmail, self).event_process( res = super(MailTrackingEmail, self).event_process(
request, post, metadata, event_type=event_type) request, post, metadata, event_type=event_type
if res == 'NONE' and self._event_is_from_mailgun(post): )
if res == "NONE" and self._event_is_from_mailgun(post):
if not self._mailgun_signature_verify(post): if not self._mailgun_signature_verify(post):
res = 'ERROR: Signature' res = "ERROR: Signature"
elif not self._mailgun_event_type_verify(post): elif not self._mailgun_event_type_verify(post):
res = 'ERROR: Event type not supported' res = "ERROR: Event type not supported"
elif not self._db_verify(post): elif not self._db_verify(post):
res = 'ERROR: Invalid DB' res = "ERROR: Invalid DB"
else: else:
res = 'OK' res = "OK"
if res == 'OK': if res == "OK":
mailgun_event_type = post.get('event') mailgun_event_type = post.get("event")
mapped_event_type = self._mailgun_event_type_mapping.get( mapped_event_type = (
mailgun_event_type) or event_type self._mailgun_event_type_mapping.get(mailgun_event_type) or event_type
)
if not mapped_event_type: # pragma: no cover if not mapped_event_type: # pragma: no cover
res = 'ERROR: Bad event' res = "ERROR: Bad event"
tracking = self._mailgun_tracking_get(post) tracking = self._mailgun_tracking_get(post)
if not tracking: if not tracking:
res = 'ERROR: Tracking not found' res = "ERROR: Tracking not found"
if res == 'OK': if res == "OK":
# Complete metadata with mailgun event info # Complete metadata with mailgun event info
metadata = self._mailgun_metadata( metadata = self._mailgun_metadata(mailgun_event_type, post, metadata)
mailgun_event_type, post, metadata)
# Create event # Create event
tracking.event_create(mapped_event_type, metadata) tracking.event_create(mapped_event_type, metadata)
if res != 'NONE': if res != "NONE":
if event_type: if event_type:
_logger.info( _logger.info("Mailgun: event '%s' process '%s'", event_type, res)
"Mailgun: event '%s' process '%s'", event_type, res)
else: else:
_logger.info("Mailgun: event process '%s'", res) _logger.info("Mailgun: event process '%s'", res)
return res return res
@ -225,21 +242,21 @@ class MailTrackingEmail(models.Model):
api_key, api_url, domain, validation_key = self._mailgun_values() api_key, api_url, domain, validation_key = self._mailgun_values()
for tracking in self: for tracking in self:
if not tracking.mail_message_id: if not tracking.mail_message_id:
raise UserError(_('There is no tracked message!')) raise UserError(_("There is no tracked message!"))
message_id = tracking.mail_message_id.message_id.replace( message_id = tracking.mail_message_id.message_id.replace("<", "").replace(
"<", "").replace(">", "") ">", ""
)
res = requests.get( res = requests.get(
'%s/%s/events' % (api_url, domain), "{}/{}/events".format(api_url, domain),
auth=("api", api_key), auth=("api", api_key),
params={ params={
"begin": tracking.timestamp, "begin": tracking.timestamp,
"ascending": "yes", "ascending": "yes",
"message-id": message_id, "message-id": message_id,
} },
) )
if not res or res.status_code != 200: if not res or res.status_code != 200:
raise ValidationError(_( raise ValidationError(_("Couldn't retrieve Mailgun information"))
"Couldn't retrieve Mailgun information"))
content = res.json() content = res.json()
if "items" not in content: if "items" not in content:
raise ValidationError(_("Event information not longer stored")) raise ValidationError(_("Event information not longer stored"))
@ -247,12 +264,11 @@ class MailTrackingEmail(models.Model):
# mailgun event hasn't been synced and recipient is the same as # mailgun event hasn't been synced and recipient is the same as
# in the evaluated tracking. We use email_split since tracking # in the evaluated tracking. We use email_split since tracking
# recipient could come in format: "example" <to@dest.com> # recipient could come in format: "example" <to@dest.com>
if not self.env['mail.tracking.event'].search( if not self.env["mail.tracking.event"].search(
[('mailgun_id', '=', item["id"])]) and ( [("mailgun_id", "=", item["id"])]
item.get("recipient", "") == ) and (item.get("recipient", "") == email_split(tracking.recipient)[0]):
email_split(tracking.recipient)[0]):
mapped_event_type = self._mailgun_event_type_mapping.get( mapped_event_type = self._mailgun_event_type_mapping.get(
item["event"], item["event"]) item["event"], item["event"]
metadata = self._mailgun_metadata( )
mapped_event_type, item, {}) metadata = self._mailgun_metadata(mapped_event_type, item, {})
tracking.event_create(mapped_event_type, metadata) tracking.event_create(mapped_event_type, metadata)

View File

@ -1,20 +1,17 @@
# Copyright 2017 Tecnativa - David Vidal # Copyright 2017 Tecnativa - David Vidal
# 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 odoo import models, fields from odoo import fields, models
class MailTrackingEvent(models.Model): class MailTrackingEvent(models.Model):
_inherit = "mail.tracking.event" _inherit = "mail.tracking.event"
mailgun_id = fields.Char( mailgun_id = fields.Char(string="Mailgun Event ID", copy="False", readonly=True)
string="Mailgun Event ID",
copy="False",
readonly=True,
)
def _process_data(self, tracking_email, metadata, event_type, state): def _process_data(self, tracking_email, metadata, event_type, state):
res = super(MailTrackingEvent, self)._process_data( res = super(MailTrackingEvent, self)._process_data(
tracking_email, metadata, event_type, state) tracking_email, metadata, event_type, state
res.update({'mailgun_id': metadata.get('mailgun_id', False)}) )
res.update({"mailgun_id": metadata.get("mailgun_id", False)})
return res return res

View File

@ -11,12 +11,13 @@ from odoo.exceptions import UserError
class ResPartner(models.Model): class ResPartner(models.Model):
_inherit = 'res.partner' _inherit = "res.partner"
@api.multi @api.multi
def email_bounced_set(self, tracking_emails, reason, event=None): def email_bounced_set(self, tracking_emails, reason, event=None):
res = super(ResPartner, self).email_bounced_set( res = super(ResPartner, self).email_bounced_set(
tracking_emails, reason, event=event) tracking_emails, reason, event=event
)
self._email_bounced_set(reason, event) self._email_bounced_set(reason, event)
return res return res
@ -25,14 +26,19 @@ class ResPartner(models.Model):
for partner in self: for partner in self:
if not partner.email: if not partner.email:
continue continue
event = event or self.env['mail.tracking.event'] event = event or self.env["mail.tracking.event"]
event_str = """ event_str = """
<a href="#" <a href="#"
data-oe-model="mail.tracking.event" data-oe-id="%d">%s</a> data-oe-model="mail.tracking.event" data-oe-id="%d">%s</a>
""" % (event.id or 0, event.id or _('unknown')) """ % (
body = _('Email has been bounced: %s\n' event.id or 0,
'Reason: %s\n' event.id or _("unknown"),
'Event: %s') % (partner.email, reason, event_str) )
body = _("Email has been bounced: %s\nReason: %s\nEvent: %s") % (
partner.email,
reason,
event_str,
)
partner.message_post(body=body) partner.message_post(body=body)
@api.multi @api.multi
@ -43,55 +49,82 @@ class ResPartner(models.Model):
https://documentation.mailgun.com/en/latest/api-email-validation.html https://documentation.mailgun.com/en/latest/api-email-validation.html
""" """
api_key, api_url, domain, validation_key = self.env[ api_key, api_url, domain, validation_key = self.env[
'mail.tracking.email']._mailgun_values() "mail.tracking.email"
]._mailgun_values()
if not validation_key: if not validation_key:
raise UserError(_('You need to configure mailgun.validation_key' raise UserError(
' in order to be able to check mails validity')) _(
for partner in self.filtered('email'): "You need to configure mailgun.validation_key"
" in order to be able to check mails validity"
)
)
for partner in self.filtered("email"):
res = requests.get( res = requests.get(
# Validation API url is always the same # Validation API url is always the same
'https://api.mailgun.net/v3/address/validate', "https://api.mailgun.net/v3/address/validate",
auth=("api", validation_key), params={ auth=("api", validation_key),
"address": partner.email, params={"address": partner.email, "mailbox_verification": True},
"mailbox_verification": True, )
}) if (
if not res or res.status_code != 200 and not self.env.context.get( not res
'mailgun_auto_check'): or res.status_code != 200
raise UserError(_( and not self.env.context.get("mailgun_auto_check")
'Error %s trying to ' ):
'check mail' % res.status_code or 'of connection')) raise UserError(
_(
"Error %s trying to check mail" % res.status_code
or "of connection"
)
)
content = res.json() content = res.json()
if 'mailbox_verification' not in content: if "mailbox_verification" not in content:
if not self.env.context.get('mailgun_auto_check'): if not self.env.context.get("mailgun_auto_check"):
raise UserError( raise UserError(
_("Mailgun Error. Mailbox verification value wasn't" _(
" returned")) "Mailgun Error. Mailbox verification value wasn't"
" returned"
)
)
# Not a valid address: API sets 'is_valid' as False # Not a valid address: API sets 'is_valid' as False
# and 'mailbox_verification' as None # and 'mailbox_verification' as None
if not content['is_valid']: if not content["is_valid"]:
partner.email_bounced = True partner.email_bounced = True
body = _('%s is not a valid email address. Please check it' body = (
' in order to avoid sending issues') % partner.email _(
if not self.env.context.get('mailgun_auto_check'): "%s is not a valid email address. Please check it"
" in order to avoid sending issues"
)
% partner.email
)
if not self.env.context.get("mailgun_auto_check"):
raise UserError(body) raise UserError(body)
partner.message_post(body=body) partner.message_post(body=body)
# If the mailbox is not valid API returns 'mailbox_verification' # If the mailbox is not valid API returns 'mailbox_verification'
# as a string with value 'false' # as a string with value 'false'
if content['mailbox_verification'] == 'false': if content["mailbox_verification"] == "false":
partner.email_bounced = True partner.email_bounced = True
body = _('%s failed the mailbox verification. Please check it' body = (
' in order to avoid sending issues') % partner.email _(
if not self.env.context.get('mailgun_auto_check'): "%s failed the mailbox verification. Please check it"
" in order to avoid sending issues"
)
% partner.email
)
if not self.env.context.get("mailgun_auto_check"):
raise UserError(body) raise UserError(body)
partner.message_post(body=body) partner.message_post(body=body)
# If Mailgun can't complete the validation request the API returns # If Mailgun can't complete the validation request the API returns
# 'mailbox_verification' as a string set to 'unknown' # 'mailbox_verification' as a string set to 'unknown'
if content['mailbox_verification'] == 'unknown': if content["mailbox_verification"] == "unknown":
if not self.env.context.get('mailgun_auto_check'): if not self.env.context.get("mailgun_auto_check"):
raise UserError( raise UserError(
_("%s couldn't be verified. Either the request couln't" _(
" be completed or the mailbox provider doesn't " "%s couldn't be verified. Either the request couln't"
"support email verification") % (partner.email)) " be completed or the mailbox provider doesn't "
"support email verification"
)
% (partner.email)
)
@api.multi @api.multi
def check_email_bounced(self): def check_email_bounced(self):
@ -101,11 +134,13 @@ class ResPartner(models.Model):
https://documentation.mailgun.com/en/latest/api-suppressions.html https://documentation.mailgun.com/en/latest/api-suppressions.html
""" """
api_key, api_url, domain, validation_key = self.env[ api_key, api_url, domain, validation_key = self.env[
'mail.tracking.email']._mailgun_values() "mail.tracking.email"
]._mailgun_values()
for partner in self: for partner in self:
res = requests.get( res = requests.get(
'%s/%s/bounces/%s' % (api_url, domain, partner.email), "{}/{}/bounces/{}".format(api_url, domain, partner.email),
auth=("api", api_key)) auth=("api", api_key),
)
if res.status_code == 200 and not partner.email_bounced: if res.status_code == 200 and not partner.email_bounced:
partner.email_bounced = True partner.email_bounced = True
elif res.status_code == 404 and partner.email_bounced: elif res.status_code == 404 and partner.email_bounced:
@ -119,14 +154,15 @@ class ResPartner(models.Model):
https://documentation.mailgun.com/en/latest/api-suppressions.html https://documentation.mailgun.com/en/latest/api-suppressions.html
""" """
api_key, api_url, domain, validation_key = self.env[ api_key, api_url, domain, validation_key = self.env[
'mail.tracking.email']._mailgun_values() "mail.tracking.email"
]._mailgun_values()
for partner in self: for partner in self:
res = requests.post( res = requests.post(
'%s/%s/bounces' % (api_url, domain), "{}/{}/bounces".format(api_url, domain),
auth=("api", api_key), auth=("api", api_key),
data={'address': partner.email}) data={"address": partner.email},
partner.email_bounced = ( )
res.status_code == 200 and not partner.email_bounced) partner.email_bounced = res.status_code == 200 and not partner.email_bounced
@api.multi @api.multi
def force_unset_bounced(self): def force_unset_bounced(self):
@ -136,30 +172,31 @@ class ResPartner(models.Model):
https://documentation.mailgun.com/en/latest/api-suppressions.html https://documentation.mailgun.com/en/latest/api-suppressions.html
""" """
api_key, api_url, domain, validation_key = self.env[ api_key, api_url, domain, validation_key = self.env[
'mail.tracking.email']._mailgun_values() "mail.tracking.email"
]._mailgun_values()
for partner in self: for partner in self:
res = requests.delete( res = requests.delete(
'%s/%s/bounces/%s' % (api_url, domain, partner.email), "{}/{}/bounces/{}".format(api_url, domain, partner.email),
auth=("api", api_key)) auth=("api", api_key),
)
if res.status_code in (200, 404) and partner.email_bounced: if res.status_code in (200, 404) and partner.email_bounced:
partner.email_bounced = False partner.email_bounced = False
def _autocheck_partner_email(self): def _autocheck_partner_email(self):
for partner in self: for partner in self:
partner.with_context( partner.with_context(mailgun_auto_check=True).check_email_validity()
mailgun_auto_check=True).check_email_validity()
@api.model @api.model
def create(self, vals): def create(self, vals):
if ('email' in vals and if "email" in vals and self.env["ir.config_parameter"].sudo().get_param(
self.env['ir.config_parameter'].sudo().get_param( "mailgun.auto_check_partner_email"
'mailgun.auto_check_partner_email')): ):
self._autocheck_partner_email() self._autocheck_partner_email()
return super(ResPartner, self).create(vals) return super(ResPartner, self).create(vals)
def write(self, vals): def write(self, vals):
if ('email' in vals and if "email" in vals and self.env["ir.config_parameter"].sudo().get_param(
self.env['ir.config_parameter'].sudo().get_param( "mailgun.auto_check_partner_email"
'mailgun.auto_check_partner_email')): ):
self._autocheck_partner_email() self._autocheck_partner_email()
return super(ResPartner, self).write(vals) return super(ResPartner, self).write(vals)

View File

@ -2,205 +2,199 @@
# Copyright 2017 Tecnativa - David Vidal # Copyright 2017 Tecnativa - David Vidal
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tools import mute_logger
from odoo.tests.common import TransactionCase
from odoo.exceptions import UserError, ValidationError
import mock import mock
_packagepath = 'odoo.addons.mail_tracking_mailgun' from odoo.exceptions import UserError, ValidationError
from odoo.tests.common import TransactionCase
from odoo.tools import mute_logger
_packagepath = "odoo.addons.mail_tracking_mailgun"
class TestMailgun(TransactionCase): class TestMailgun(TransactionCase):
def mail_send(self): def mail_send(self):
mail = self.env['mail.mail'].create({ mail = self.env["mail.mail"].create(
'subject': 'Test subject', {
'email_from': 'from@example.com', "subject": "Test subject",
'email_to': self.recipient, "email_from": "from@example.com",
'body_html': '<p>This is a test message</p>', "email_to": self.recipient,
}) "body_html": "<p>This is a test message</p>",
}
)
mail.send() mail.send()
# Search tracking created # Search tracking created
tracking_email = self.env['mail.tracking.email'].search([ tracking_email = self.env["mail.tracking.email"].search(
('mail_id', '=', mail.id), [("mail_id", "=", mail.id)]
]) )
return mail, tracking_email return mail, tracking_email
def setUp(self): def setUp(self):
super(TestMailgun, self).setUp() super(TestMailgun, self).setUp()
self.recipient = 'to@example.com' self.recipient = "to@example.com"
self.mail, self.tracking_email = self.mail_send() self.mail, self.tracking_email = self.mail_send()
self.api_key = 'key-12345678901234567890123456789012' self.api_key = "key-12345678901234567890123456789012"
self.domain = 'example.com' self.domain = "example.com"
self.token = 'f1349299097a51b9a7d886fcb5c2735b426ba200ada6e9e149' self.token = "f1349299097a51b9a7d886fcb5c2735b426ba200ada6e9e149"
self.timestamp = '1471021089' self.timestamp = "1471021089"
self.signature = ('4fb6d4dbbe10ce5d620265dcd7a3c0b8' self.signature = (
'ca0dede1433103891bc1ae4086e9d5b2') "4fb6d4dbbe10ce5d620265dcd7a3c0b8ca0dede1433103891bc1ae4086e9d5b2"
self.env['ir.config_parameter'].set_param( )
'mailgun.apikey', self.api_key) self.env["ir.config_parameter"].set_param("mailgun.apikey", self.api_key)
self.env['ir.config_parameter'].set_param( self.env["ir.config_parameter"].set_param("mail.catchall.domain", self.domain)
'mail.catchall.domain', self.domain) self.env["ir.config_parameter"].set_param(
self.env['ir.config_parameter'].set_param( "mailgun.validation_key", self.api_key
'mailgun.validation_key', self.api_key) )
self.env['ir.config_parameter'].set_param( self.env["ir.config_parameter"].set_param(
'mailgun.auto_check_partner_email', '') "mailgun.auto_check_partner_email", ""
)
self.event = { self.event = {
'Message-Id': '<xxx.xxx.xxx-openerp-xxx-res.partner@test_db>', "Message-Id": "<xxx.xxx.xxx-openerp-xxx-res.partner@test_db>",
'X-Mailgun-Sid': 'WyIwNjgxZSIsICJ0b0BleGFtcGxlLmNvbSIsICI3MG' "X-Mailgun-Sid": "WyIwNjgxZSIsICJ0b0BleGFtcGxlLmNvbSIsICI3MGI0MWYiXQ==",
'I0MWYiXQ==', "token": self.token,
'token': self.token, "timestamp": self.timestamp,
'timestamp': self.timestamp, "signature": self.signature,
'signature': self.signature, "domain": "example.com",
'domain': 'example.com', "message-headers": "[]",
'message-headers': '[]', "recipient": self.recipient,
'recipient': self.recipient, "odoo_db": self.env.cr.dbname,
'odoo_db': self.env.cr.dbname, "tracking_email_id": "%s" % self.tracking_email.id,
'tracking_email_id': '%s' % self.tracking_email.id
} }
self.metadata = { self.metadata = {
'ip': '127.0.0.1', "ip": "127.0.0.1",
'user_agent': False, "user_agent": False,
'os_family': False, "os_family": False,
'ua_family': False, "ua_family": False,
} }
self.partner = self.env['res.partner'].create({ self.partner = self.env["res.partner"].create(
'name': 'Mr. Odoo', {"name": "Mr. Odoo", "email": "mrodoo@example.com"}
'email': 'mrodoo@example.com', )
})
self.response = { self.response = {
"items": [{ "items": [
"log-level": "info", {
"id": "oXAVv5URCF-dKv8c6Sa7T", "log-level": "info",
"timestamp": 1509119329.0, "id": "oXAVv5URCF-dKv8c6Sa7T",
"message": { "timestamp": 1509119329.0,
"headers": { "message": {
"to": "test@test.com", "headers": {
"message-id": "test-id@f187c54734e8", "to": "test@test.com",
"from": "Mr. Odoo <mrodoo@odoo.com>", "message-id": "test-id@f187c54734e8",
"subject": "This is a test" "from": "Mr. Odoo <mrodoo@odoo.com>",
"subject": "This is a test",
}
}, },
}, "event": "delivered",
"event": "delivered", "recipient": "to@example.com",
"recipient": "to@example.com", }
}] ]
} }
def event_search(self, event_type): def event_search(self, event_type):
event = self.env['mail.tracking.event'].search([ event = self.env["mail.tracking.event"].search(
('tracking_email_id', '=', self.tracking_email.id), [
('event_type', '=', event_type), ("tracking_email_id", "=", self.tracking_email.id),
]) ("event_type", "=", event_type),
]
)
self.assertTrue(event) self.assertTrue(event)
return event return event
def test_no_api_key(self): def test_no_api_key(self):
self.env['ir.config_parameter'].set_param('mailgun.apikey', '') self.env["ir.config_parameter"].set_param("mailgun.apikey", "")
self.test_event_delivered() self.test_event_delivered()
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):
self.env['mail.tracking.email']._mailgun_values() self.env["mail.tracking.email"]._mailgun_values()
def test_no_domain(self): def test_no_domain(self):
self.env['ir.config_parameter'].set_param('mail.catchall.domain', '') self.env["ir.config_parameter"].set_param("mail.catchall.domain", "")
self.test_event_delivered() self.test_event_delivered()
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):
self.env['mail.tracking.email']._mailgun_values() self.env["mail.tracking.email"]._mailgun_values()
# now we set an specific domain for Mailgun: # now we set an specific domain for Mailgun:
# i.e: we configure new EU zone without loosing old domain statistics # i.e: we configure new EU zone without loosing old domain statistics
self.env['ir.config_parameter'].set_param( self.env["ir.config_parameter"].set_param("mailgun.domain", "eu.example.com")
'mailgun.domain', 'eu.example.com')
self.test_event_delivered() self.test_event_delivered()
@mute_logger('odoo.addons.mail_tracking_mailgun.models' @mute_logger("odoo.addons.mail_tracking_mailgun.models.mail_tracking_email")
'.mail_tracking_email')
def test_bad_signature(self): def test_bad_signature(self):
self.event.update({ self.event.update({"event": "delivered", "signature": "bad_signature"})
'event': 'delivered', response = self.env["mail.tracking.email"].event_process(
'signature': 'bad_signature', None, self.event, self.metadata
}) )
response = self.env['mail.tracking.email'].event_process( self.assertEqual("ERROR: Signature", response)
None, self.event, self.metadata)
self.assertEqual('ERROR: Signature', response)
@mute_logger('odoo.addons.mail_tracking_mailgun.models' @mute_logger("odoo.addons.mail_tracking_mailgun.models.mail_tracking_email")
'.mail_tracking_email')
def test_bad_event_type(self): def test_bad_event_type(self):
self.event.update({ self.event.update({"event": "bad_event"})
'event': 'bad_event', response = self.env["mail.tracking.email"].event_process(
}) None, self.event, self.metadata
response = self.env['mail.tracking.email'].event_process( )
None, self.event, self.metadata) self.assertEqual("ERROR: Event type not supported", response)
self.assertEqual('ERROR: Event type not supported', response)
@mute_logger('odoo.addons.mail_tracking_mailgun.models' @mute_logger("odoo.addons.mail_tracking_mailgun.models.mail_tracking_email")
'.mail_tracking_email')
def test_bad_db(self): def test_bad_db(self):
self.event.update({ self.event.update({"event": "delivered", "odoo_db": "bad_db"})
'event': 'delivered', response = self.env["mail.tracking.email"].event_process(
'odoo_db': 'bad_db', None, self.event, self.metadata
}) )
response = self.env['mail.tracking.email'].event_process( self.assertEqual("ERROR: Invalid DB", response)
None, self.event, self.metadata)
self.assertEqual('ERROR: Invalid DB', response)
def test_bad_ts(self): def test_bad_ts(self):
timestamp = '7a' # Now time will be used instead timestamp = "7a" # Now time will be used instead
signature = ('06cc05680f6e8110e59b41152b2d1c0f' signature = "06cc05680f6e8110e59b41152b2d1c0f1045d755ef2880ff922344325c89a6d4"
'1045d755ef2880ff922344325c89a6d4') self.event.update(
self.event.update({ {"event": "delivered", "timestamp": timestamp, "signature": signature}
'event': 'delivered', )
'timestamp': timestamp, response = self.env["mail.tracking.email"].event_process(
'signature': signature, None, self.event, self.metadata
}) )
response = self.env['mail.tracking.email'].event_process( self.assertEqual("OK", response)
None, self.event, self.metadata)
self.assertEqual('OK', response)
@mute_logger('odoo.addons.mail_tracking_mailgun.models' @mute_logger("odoo.addons.mail_tracking_mailgun.models.mail_tracking_email")
'.mail_tracking_email')
def test_tracking_not_found(self): def test_tracking_not_found(self):
self.event.update({ self.event.update({"event": "delivered", "tracking_email_id": "bad_id"})
'event': 'delivered', response = self.env["mail.tracking.email"].event_process(
'tracking_email_id': 'bad_id', None, self.event, self.metadata
}) )
response = self.env['mail.tracking.email'].event_process( self.assertEqual("ERROR: Tracking not found", response)
None, self.event, self.metadata)
self.assertEqual('ERROR: Tracking not found', response)
# https://documentation.mailgun.com/user_manual.html#tracking-deliveries # https://documentation.mailgun.com/user_manual.html#tracking-deliveries
def test_event_delivered(self): def test_event_delivered(self):
self.event.update({ self.event.update({"event": "delivered"})
'event': 'delivered', response = self.env["mail.tracking.email"].event_process(
}) None, self.event, self.metadata
response = self.env['mail.tracking.email'].event_process( )
None, self.event, self.metadata) self.assertEqual("OK", response)
self.assertEqual('OK', response) events = self.event_search("delivered")
events = self.event_search('delivered')
for event in events: for event in events:
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
# https://documentation.mailgun.com/user_manual.html#tracking-opens # https://documentation.mailgun.com/user_manual.html#tracking-opens
def test_event_opened(self): def test_event_opened(self):
ip = '127.0.0.1' ip = "127.0.0.1"
user_agent = 'Odoo Test/8.0 Gecko Firefox/11.0' user_agent = "Odoo Test/8.0 Gecko Firefox/11.0"
os_family = 'Linux' os_family = "Linux"
ua_family = 'Firefox' ua_family = "Firefox"
ua_type = 'browser' ua_type = "browser"
self.event.update({ self.event.update(
'event': 'opened', {
'city': 'Mountain View', "event": "opened",
'country': 'US', "city": "Mountain View",
'region': 'CA', "country": "US",
'client-name': ua_family, "region": "CA",
'client-os': os_family, "client-name": ua_family,
'client-type': ua_type, "client-os": os_family,
'device-type': 'desktop', "client-type": ua_type,
'ip': ip, "device-type": "desktop",
'user-agent': user_agent, "ip": ip,
}) "user-agent": user_agent,
response = self.env['mail.tracking.email'].event_process( }
None, self.event, self.metadata) )
self.assertEqual('OK', response) response = self.env["mail.tracking.email"].event_process(
event = self.event_search('open') None, self.event, self.metadata
)
self.assertEqual("OK", response)
event = self.event_search("open")
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.ip, ip) self.assertEqual(event.ip, ip)
@ -209,33 +203,36 @@ class TestMailgun(TransactionCase):
self.assertEqual(event.ua_family, ua_family) self.assertEqual(event.ua_family, ua_family)
self.assertEqual(event.ua_type, ua_type) self.assertEqual(event.ua_type, ua_type)
self.assertEqual(event.mobile, False) self.assertEqual(event.mobile, False)
self.assertEqual(event.user_country_id.code, 'US') self.assertEqual(event.user_country_id.code, "US")
# https://documentation.mailgun.com/user_manual.html#tracking-clicks # https://documentation.mailgun.com/user_manual.html#tracking-clicks
def test_event_clicked(self): def test_event_clicked(self):
ip = '127.0.0.1' ip = "127.0.0.1"
user_agent = 'Odoo Test/8.0 Gecko Firefox/11.0' user_agent = "Odoo Test/8.0 Gecko Firefox/11.0"
os_family = 'Linux' os_family = "Linux"
ua_family = 'Firefox' ua_family = "Firefox"
ua_type = 'browser' ua_type = "browser"
url = 'https://odoo-community.org' url = "https://odoo-community.org"
self.event.update({ self.event.update(
'event': 'clicked', {
'city': 'Mountain View', "event": "clicked",
'country': 'US', "city": "Mountain View",
'region': 'CA', "country": "US",
'client-name': ua_family, "region": "CA",
'client-os': os_family, "client-name": ua_family,
'client-type': ua_type, "client-os": os_family,
'device-type': 'tablet', "client-type": ua_type,
'ip': ip, "device-type": "tablet",
'user-agent': user_agent, "ip": ip,
'url': url, "user-agent": user_agent,
}) "url": url,
response = self.env['mail.tracking.email'].event_process( }
None, self.event, self.metadata, event_type='click') )
self.assertEqual('OK', response) response = self.env["mail.tracking.email"].event_process(
event = self.event_search('click') None, self.event, self.metadata, event_type="click"
)
self.assertEqual("OK", response)
event = self.event_search("click")
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.ip, ip) self.assertEqual(event.ip, ip)
@ -248,27 +245,30 @@ class TestMailgun(TransactionCase):
# https://documentation.mailgun.com/user_manual.html#tracking-unsubscribes # https://documentation.mailgun.com/user_manual.html#tracking-unsubscribes
def test_event_unsubscribed(self): def test_event_unsubscribed(self):
ip = '127.0.0.1' ip = "127.0.0.1"
user_agent = 'Odoo Test/8.0 Gecko Firefox/11.0' user_agent = "Odoo Test/8.0 Gecko Firefox/11.0"
os_family = 'Linux' os_family = "Linux"
ua_family = 'Firefox' ua_family = "Firefox"
ua_type = 'browser' ua_type = "browser"
self.event.update({ self.event.update(
'event': 'unsubscribed', {
'city': 'Mountain View', "event": "unsubscribed",
'country': 'US', "city": "Mountain View",
'region': 'CA', "country": "US",
'client-name': ua_family, "region": "CA",
'client-os': os_family, "client-name": ua_family,
'client-type': ua_type, "client-os": os_family,
'device-type': 'mobile', "client-type": ua_type,
'ip': ip, "device-type": "mobile",
'user-agent': user_agent, "ip": ip,
}) "user-agent": user_agent,
response = self.env['mail.tracking.email'].event_process( }
None, self.event, self.metadata) )
self.assertEqual('OK', response) response = self.env["mail.tracking.email"].event_process(
event = self.event_search('unsub') None, self.event, self.metadata
)
self.assertEqual("OK", response)
event = self.event_search("unsub")
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.ip, ip) self.assertEqual(event.ip, ip)
@ -281,33 +281,37 @@ class TestMailgun(TransactionCase):
# https://documentation.mailgun.com/ # https://documentation.mailgun.com/
# user_manual.html#tracking-spam-complaints # user_manual.html#tracking-spam-complaints
def test_event_complained(self): def test_event_complained(self):
self.event.update({ self.event.update({"event": "complained"})
'event': 'complained', response = self.env["mail.tracking.email"].event_process(
}) None, self.event, self.metadata
response = self.env['mail.tracking.email'].event_process( )
None, self.event, self.metadata) self.assertEqual("OK", response)
self.assertEqual('OK', response) event = self.event_search("spam")
event = self.event_search('spam')
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.error_type, 'spam') self.assertEqual(event.error_type, "spam")
# https://documentation.mailgun.com/user_manual.html#tracking-bounces # https://documentation.mailgun.com/user_manual.html#tracking-bounces
def test_event_bounced(self): def test_event_bounced(self):
code = '550' code = "550"
error = ("5.1.1 The email account does not exist.\n" error = (
"5.1.1 double-checking the recipient's email address") "5.1.1 The email account does not exist.\n"
"5.1.1 double-checking the recipient's email address"
)
notification = "Please, check recipient's email address" notification = "Please, check recipient's email address"
self.event.update({ self.event.update(
'event': 'bounced', {
'code': code, "event": "bounced",
'error': error, "code": code,
'notification': notification, "error": error,
}) "notification": notification,
response = self.env['mail.tracking.email'].event_process( }
None, self.event, self.metadata) )
self.assertEqual('OK', response) response = self.env["mail.tracking.email"].event_process(
event = self.event_search('hard_bounce') None, self.event, self.metadata
)
self.assertEqual("OK", response)
event = self.event_search("hard_bounce")
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.error_type, code) self.assertEqual(event.error_type, code)
@ -316,73 +320,77 @@ class TestMailgun(TransactionCase):
# https://documentation.mailgun.com/user_manual.html#tracking-failures # https://documentation.mailgun.com/user_manual.html#tracking-failures
def test_event_dropped(self): def test_event_dropped(self):
reason = 'hardfail' reason = "hardfail"
code = '605' code = "605"
description = 'Not delivering to previously bounced address' description = "Not delivering to previously bounced address"
self.event.update({ self.event.update(
'event': 'dropped', {
'reason': reason, "event": "dropped",
'code': code, "reason": reason,
'description': description, "code": code,
}) "description": description,
response = self.env['mail.tracking.email'].event_process( }
None, self.event, self.metadata) )
self.assertEqual('OK', response) response = self.env["mail.tracking.email"].event_process(
event = self.event_search('reject') None, self.event, self.metadata
)
self.assertEqual("OK", response)
event = self.event_search("reject")
self.assertEqual(event.timestamp, float(self.timestamp)) self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient) self.assertEqual(event.recipient, self.recipient)
self.assertEqual(event.error_type, reason) self.assertEqual(event.error_type, reason)
self.assertEqual(event.error_description, code) self.assertEqual(event.error_description, code)
self.assertEqual(event.error_details, description) self.assertEqual(event.error_details, description)
@mock.patch(_packagepath + '.models.res_partner.requests') @mock.patch(_packagepath + ".models.res_partner.requests")
def test_email_validity(self, mock_request): def test_email_validity(self, mock_request):
self.partner.email_bounced = False self.partner.email_bounced = False
mock_request.get.return_value.apparent_encoding = 'ascii' mock_request.get.return_value.apparent_encoding = "ascii"
mock_request.get.return_value.status_code = 200 mock_request.get.return_value.status_code = 200
mock_request.get.return_value.json.return_value = { mock_request.get.return_value.json.return_value = {
'is_valid': True, "is_valid": True,
'mailbox_verification': 'true', "mailbox_verification": "true",
} }
# Trigger email auto validation in partner # Trigger email auto validation in partner
self.env['ir.config_parameter'].set_param( self.env["ir.config_parameter"].set_param(
'mailgun.auto_check_partner_email', 'True') "mailgun.auto_check_partner_email", "True"
self.partner.email = 'info@tecnativa.com' )
self.partner.email = "info@tecnativa.com"
self.assertFalse(self.partner.email_bounced) self.assertFalse(self.partner.email_bounced)
self.partner.email = 'xoxoxoxo@tecnativa.com' self.partner.email = "xoxoxoxo@tecnativa.com"
# Not a valid mailbox # Not a valid mailbox
mock_request.get.return_value.json.return_value = { mock_request.get.return_value.json.return_value = {
'is_valid': True, "is_valid": True,
'mailbox_verification': 'false', "mailbox_verification": "false",
} }
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.partner.check_email_validity() self.partner.check_email_validity()
# Not a valid mail address # Not a valid mail address
mock_request.get.return_value.json.return_value = { mock_request.get.return_value.json.return_value = {
'is_valid': False, "is_valid": False,
'mailbox_verification': 'false', "mailbox_verification": "false",
} }
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.partner.check_email_validity() self.partner.check_email_validity()
# Unable to fully validate # Unable to fully validate
mock_request.get.return_value.json.return_value = { mock_request.get.return_value.json.return_value = {
'is_valid': True, "is_valid": True,
'mailbox_verification': 'unknown', "mailbox_verification": "unknown",
} }
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.partner.check_email_validity() self.partner.check_email_validity()
self.assertTrue(self.partner.email_bounced) self.assertTrue(self.partner.email_bounced)
@mock.patch(_packagepath + '.models.res_partner.requests') @mock.patch(_packagepath + ".models.res_partner.requests")
def test_email_validity_exceptions(self, mock_request): def test_email_validity_exceptions(self, mock_request):
mock_request.get.return_value.status_code = 404 mock_request.get.return_value.status_code = 404
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.partner.check_email_validity() self.partner.check_email_validity()
self.env['ir.config_parameter'].set_param('mailgun.validation_key', '') self.env["ir.config_parameter"].set_param("mailgun.validation_key", "")
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.partner.check_email_validity() self.partner.check_email_validity()
@mock.patch(_packagepath + '.models.res_partner.requests') @mock.patch(_packagepath + ".models.res_partner.requests")
def test_bounced(self, mock_request): def test_bounced(self, mock_request):
self.partner.email_bounced = True self.partner.email_bounced = True
mock_request.get.return_value.status_code = 404 mock_request.get.return_value.status_code = 404
@ -398,22 +406,23 @@ class TestMailgun(TransactionCase):
def test_email_bounced_set(self): def test_email_bounced_set(self):
message_number = len(self.partner.message_ids) + 1 message_number = len(self.partner.message_ids) + 1
self.partner._email_bounced_set('test_error', False) self.partner._email_bounced_set("test_error", False)
self.assertEqual(len(self.partner.message_ids), message_number) self.assertEqual(len(self.partner.message_ids), message_number)
self.partner.email = "" self.partner.email = ""
self.partner._email_bounced_set('test_error', False) self.partner._email_bounced_set("test_error", False)
self.assertEqual(len(self.partner.message_ids), message_number) self.assertEqual(len(self.partner.message_ids), message_number)
@mock.patch(_packagepath + '.models.mail_tracking_email.requests') @mock.patch(_packagepath + ".models.mail_tracking_email.requests")
def test_manual_check(self, mock_request): def test_manual_check(self, mock_request):
mock_request.get.return_value.json.return_value = self.response mock_request.get.return_value.json.return_value = self.response
mock_request.get.return_value.status_code = 200 mock_request.get.return_value.status_code = 200
self.tracking_email.action_manual_check_mailgun() self.tracking_email.action_manual_check_mailgun()
event = self.env['mail.tracking.event'].search( event = self.env["mail.tracking.event"].search(
[('mailgun_id', '=', self.response['items'][0]['id'])]) [("mailgun_id", "=", self.response["items"][0]["id"])]
self.assertEqual(event.event_type, self.response['items'][0]['event']) )
self.assertEqual(event.event_type, self.response["items"][0]["event"])
@mock.patch(_packagepath + '.models.mail_tracking_email.requests') @mock.patch(_packagepath + ".models.mail_tracking_email.requests")
def test_manual_check_exceptions(self, mock_request): def test_manual_check_exceptions(self, mock_request):
mock_request.get.return_value.status_code = 404 mock_request.get.return_value.status_code = 404
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):