fixup! [IMP] mail_tracking: Failed Messages to 12.0

pull/447/head
Alexandre Díaz 2019-11-12 18:20:25 +01:00
parent f4b56004a9
commit d050805c7d
6 changed files with 80 additions and 57 deletions

View File

@ -16,7 +16,6 @@ BLANK = 'R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
@contextmanager @contextmanager
def db_env(dbname): def db_env(dbname):
# This part you're missing and it's important
if not http.db_filter([dbname]): if not http.db_filter([dbname]):
raise werkzeug.exceptions.BadRequest() raise werkzeug.exceptions.BadRequest()
cr = None cr = None
@ -48,21 +47,25 @@ class MailTrackingController(MailController):
metadata = self._request_metadata() metadata = self._request_metadata()
res = None res = None
with db_env(db) as env: with db_env(db) as env:
if env: try:
res = env['mail.tracking.email'].event_process( res = env['mail.tracking.email'].event_process(
http.request, kw, metadata, event_type=event_type) http.request, kw, metadata, event_type=event_type)
return res or 'NOT FOUND' except Exception:
pass
if not res or res == 'NOT FOUND':
return werkzeug.exceptions.NotAcceptable()
return res
@http.route(['/mail/tracking/open/<string:db>' @http.route(['/mail/tracking/open/<string:db>'
'/<int:tracking_email_id>/blank.gif', '/<int:tracking_email_id>/blank.gif',
'/mail/tracking/open/<string:db>' '/mail/tracking/open/<string:db>'
'/<int:tracking_email_id>/<string:token>/blank.gif'], '/<int:tracking_email_id>/<string:token>/blank.gif'],
type='http', auth='none') type='http', auth='none', methods=['GET'])
def mail_tracking_open(self, db, tracking_email_id, token=False, **kw): def mail_tracking_open(self, db, tracking_email_id, token=False, **kw):
"""Route used to track mail openned (With & Without Token)""" """Route used to track mail openned (With & Without Token)"""
metadata = self._request_metadata() metadata = self._request_metadata()
with db_env(db) as env: with db_env(db) as env:
if env: try:
tracking_email = env['mail.tracking.email'].search([ tracking_email = env['mail.tracking.email'].search([
('id', '=', tracking_email_id), ('id', '=', tracking_email_id),
('state', 'in', ['sent', 'delivered']), ('state', 'in', ['sent', 'delivered']),
@ -73,6 +76,8 @@ class MailTrackingController(MailController):
else: else:
_logger.warning( _logger.warning(
"MailTracking email '%s' not found", tracking_email_id) "MailTracking email '%s' not found", tracking_email_id)
except Exception:
pass
# Always return GIF blank image # Always return GIF blank image
response = werkzeug.wrappers.Response() response = werkzeug.wrappers.Response()

View File

@ -4,18 +4,18 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 10.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-31 17:51+0000\n" "POT-Creation-Date: 2019-11-12 17:22+0000\n"
"PO-Revision-Date: 2019-10-31 18:55+0100\n" "PO-Revision-Date: 2019-11-12 18:26+0100\n"
"Last-Translator: eduardgm <eduard.garcia@qubiq.es>\n" "Last-Translator: <>\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "Language-Team: \n"
"Language: es\n" "Language: es\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: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: \n"
"X-Generator: Poedit 2.2.1\n" "X-Generator: Poedit 2.2.4\n"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,help:mail_tracking.field_mail_tracking_email__state #: model:ir.model.fields,help:mail_tracking.field_mail_tracking_email__state
@ -75,8 +75,8 @@ msgid "Bounced"
msgstr "Rebotado" msgstr "Rebotado"
#. module: mail_tracking #. module: mail_tracking
#: code:addons/mail_tracking/models/mail_thread.py:65 #: code:addons/mail_tracking/models/mail_thread.py:64
#: code:addons/mail_tracking/models/mail_thread.py:69 #: code:addons/mail_tracking/models/mail_thread.py:68
#: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__email_cc #: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__email_cc
#: model:ir.model.fields,field_description:mail_tracking.field_mail_message__email_cc #: model:ir.model.fields,field_description:mail_tracking.field_mail_message__email_cc
#, python-format #, python-format
@ -107,7 +107,7 @@ msgstr "¡Enhorabuena! No tienes mensajes fallidos"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:235 #: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:231
#, python-format #, python-format
msgid "Congratulations, your failed mailbox is empty" msgid "Congratulations, your failed mailbox is empty"
msgstr "¡Enhorabuena! tu buzón de fallidos está vacio" msgstr "¡Enhorabuena! tu buzón de fallidos está vacio"
@ -198,12 +198,12 @@ msgstr "Reputación del correo"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model,name:mail_tracking.model_mail_thread #: model:ir.model,name:mail_tracking.model_mail_thread
msgid "Email Thread" msgid "Email Thread"
msgstr "Hilo del Correo" msgstr "Hilo de mensajes"
#. module: mail_tracking #. module: mail_tracking
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_res_partner_filter #: model_terms:ir.ui.view,arch_db:mail_tracking.view_res_partner_filter
msgid "Email bounced" msgid "Email bounced"
msgstr "Correo rebotado" msgstr "Email rebotado"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model,name:mail_tracking.model_mail_resend_message #: model:ir.model,name:mail_tracking.model_mail_resend_message
@ -247,9 +247,9 @@ msgstr "Tipo de evento"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:352 #: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:350
#: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:13 #: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:13
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:21 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:21
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search
#, python-format #, python-format
@ -272,14 +272,14 @@ msgstr "Mensajes Fallidos"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:39 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:39
#, python-format #, python-format
msgid "Failed Recipients:" msgid "Failed Recipients:"
msgstr "Destinatarios Fallidos:" msgstr "Destinatarios Fallidos:"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:7 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:7
#, python-format #, python-format
msgid "Failed messages" msgid "Failed messages"
msgstr "Mensajes fallidos" msgstr "Mensajes fallidos"
@ -292,7 +292,7 @@ msgid "Failed messages appear here."
msgstr "Los mensajes fallidos se muestran aquí." msgstr "Los mensajes fallidos se muestran aquí."
#. module: mail_tracking #. module: mail_tracking
#: code:addons/mail_tracking/models/mail_thread.py:93 #: code:addons/mail_tracking/models/mail_thread.py:92
#, python-format #, python-format
msgid "Failed sent messages" msgid "Failed sent messages"
msgstr "Mensajes enviados fallidos" msgstr "Mensajes enviados fallidos"
@ -301,7 +301,7 @@ msgstr "Mensajes enviados fallidos"
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search
msgid "Group By" msgid "Group By"
msgstr "Agrupar Por" msgstr "Agrupar por"
#. module: mail_tracking #. module: mail_tracking
#: selection:mail.tracking.event,event_type:0 #: selection:mail.tracking.event,event_type:0
@ -313,7 +313,7 @@ msgstr "Rebote duro"
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__id #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__id
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__id #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__id
msgid "ID" msgid "ID"
msgstr "ID" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search
@ -354,7 +354,7 @@ msgstr "Última actualización en"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model,name:mail_tracking.model_ir_mail_server #: model:ir.model,name:mail_tracking.model_ir_mail_server
msgid "Mail Server" msgid "Mail Server"
msgstr "Servidor de Correo" msgstr "Servidor de correo"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__mail_tracking_needs_action #: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__mail_tracking_needs_action
@ -500,7 +500,7 @@ msgstr "Rechazado"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:10 #: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:10
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:35 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:35
#, python-format #, python-format
msgid "Retry" msgid "Retry"
msgstr "Reintentar" msgstr "Reintentar"
@ -510,6 +510,11 @@ msgstr "Reintentar"
msgid "SMTP server" msgid "SMTP server"
msgstr "Servidor SMTP" msgstr "Servidor SMTP"
#. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__token
msgid "Security Token"
msgstr "Token de seguridad"
#. module: mail_tracking #. module: mail_tracking
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_tree #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_tree
@ -531,10 +536,17 @@ msgstr "Correo del remitente"
msgid "Sent" msgid "Sent"
msgstr "Enviado" msgstr "Enviado"
#. module: mail_tracking
#. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:30
#, python-format
msgid "Set all as reviewed"
msgstr "Marcar todos como revisados"
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:7 #: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:7
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:32 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:32
#, python-format #, python-format
msgid "Set as Reviewed" msgid "Set as Reviewed"
msgstr "Marcar como Revisado" msgstr "Marcar como Revisado"
@ -553,7 +565,7 @@ msgstr "Rebotado débil"
#: selection:mail.tracking.email,state:0 #: selection:mail.tracking.email,state:0
#: selection:mail.tracking.event,event_type:0 #: selection:mail.tracking.event,event_type:0
msgid "Spam" msgid "Spam"
msgstr "" msgstr "No deseado"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__state #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__state
@ -678,16 +690,14 @@ msgstr "Aplicación del usuario"
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__ua_family #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__ua_family
#, fuzzy
msgid "User agent family" msgid "User agent family"
msgstr "Familia de la aplicación del usuario" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__ua_type #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__ua_type
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search
#, fuzzy
msgid "User agent type" msgid "User agent type"
msgstr "Tipo de aplicación del usuario" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__user_country_id #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__user_country_id
@ -699,9 +709,3 @@ msgstr "País del Usuario"
#, python-format #, python-format
msgid "Waiting" msgid "Waiting"
msgstr "Esperando" msgstr "Esperando"
#~ msgid "Email composition wizard"
#~ msgstr "Asistente de redacción de correo electrónico"
#~ msgid "Hide follower message"
#~ msgstr "Ocultar seguidor del mensaje"

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 12.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-10-31 17:51+0000\n" "POT-Creation-Date: 2019-11-12 17:22+0000\n"
"PO-Revision-Date: 2019-10-31 17:51+0000\n" "PO-Revision-Date: 2019-11-12 17:22+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -62,8 +62,8 @@ msgid "Bounced"
msgstr "" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: code:addons/mail_tracking/models/mail_thread.py:65 #: code:addons/mail_tracking/models/mail_thread.py:64
#: code:addons/mail_tracking/models/mail_thread.py:69 #: code:addons/mail_tracking/models/mail_thread.py:68
#: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__email_cc #: model:ir.model.fields,field_description:mail_tracking.field_mail_compose_message__email_cc
#: model:ir.model.fields,field_description:mail_tracking.field_mail_message__email_cc #: model:ir.model.fields,field_description:mail_tracking.field_mail_message__email_cc
#, python-format #, python-format
@ -94,7 +94,7 @@ msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:235 #: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:231
#, python-format #, python-format
msgid "Congratulations, your failed mailbox is empty" msgid "Congratulations, your failed mailbox is empty"
msgstr "" msgstr ""
@ -234,9 +234,9 @@ msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:352 #: code:addons/mail_tracking/static/src/js/failed_message/discuss.js:350
#: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:13 #: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:13
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:21 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:21
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_event_search
#, python-format #, python-format
@ -259,14 +259,14 @@ msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:39 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:39
#, python-format #, python-format
msgid "Failed Recipients:" msgid "Failed Recipients:"
msgstr "" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:7 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:7
#, python-format #, python-format
msgid "Failed messages" msgid "Failed messages"
msgstr "" msgstr ""
@ -279,7 +279,7 @@ msgid "Failed messages appear here."
msgstr "" msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: code:addons/mail_tracking/models/mail_thread.py:93 #: code:addons/mail_tracking/models/mail_thread.py:92
#, python-format #, python-format
msgid "Failed sent messages" msgid "Failed sent messages"
msgstr "" msgstr ""
@ -487,7 +487,7 @@ msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:10 #: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:10
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:35 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:35
#, python-format #, python-format
msgid "Retry" msgid "Retry"
msgstr "" msgstr ""
@ -497,6 +497,11 @@ msgstr ""
msgid "SMTP server" msgid "SMTP server"
msgstr "" msgstr ""
#. module: mail_tracking
#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__token
msgid "Security Token"
msgstr ""
#. module: mail_tracking #. module: mail_tracking
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_search
#: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_tree #: model_terms:ir.ui.view,arch_db:mail_tracking.view_mail_tracking_email_tree
@ -518,10 +523,17 @@ msgstr ""
msgid "Sent" msgid "Sent"
msgstr "" msgstr ""
#. module: mail_tracking
#. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/discuss.xml:30
#, python-format
msgid "Set all as reviewed"
msgstr ""
#. module: mail_tracking #. module: mail_tracking
#. openerp-web #. openerp-web
#: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:7 #: code:addons/mail_tracking/static/src/xml/failed_message/common.xml:7
#: code:addons/mail_tracking/static/src/xml/failed_message/widget.xml:32 #: code:addons/mail_tracking/static/src/xml/failed_message/thread.xml:32
#, python-format #, python-format
msgid "Set as Reviewed" msgid "Set as Reviewed"
msgstr "" msgstr ""

View File

@ -14,8 +14,7 @@ class MailThread(models.AbstractModel):
'mail.message', 'res_id', string='Failed Messages', 'mail.message', 'res_id', string='Failed Messages',
domain=lambda self: domain=lambda self:
[('model', '=', self._name)] [('model', '=', self._name)]
+ self._get_failed_message_domain(), + self._get_failed_message_domain())
auto_join=True)
def _get_failed_message_domain(self): def _get_failed_message_domain(self):
"""Domain used to display failed messages on the 'failed_messages' """Domain used to display failed messages on the 'failed_messages'

View File

@ -94,15 +94,18 @@ class MailTrackingEmail(models.Model):
inverse_name='tracking_email_id', readonly=True) inverse_name='tracking_email_id', readonly=True)
# Token isn't generated here to have compatibility with older trackings. # Token isn't generated here to have compatibility with older trackings.
# New trackings have token and older not # New trackings have token and older not
token = fields.Char(string="Request Token", readonly=True, token = fields.Char(string="Security Token", readonly=True,
default=lambda s: uuid.uuid4().hex) default=lambda s: uuid.uuid4().hex,
groups="base.group_system")
@api.model_create_multi @api.model_create_multi
def create(self, vals_list): def create(self, vals_list):
records = super().create(vals_list) records = super().create(vals_list)
for record in records: failed_states = self.env['mail.message'].get_failed_states()
if record.state in self.env['mail.message'].get_failed_states(): records \
record.mail_message_id.mail_tracking_needs_action = True .filtered(lambda one: one.state in failed_states) \
.mapped("mail_message_id") \
.write({'mail_tracking_needs_action': True})
return records return records
@api.multi @api.multi