From d050805c7d1e6c738338de51787f714b9eb77ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Tue, 12 Nov 2019 18:20:25 +0100 Subject: [PATCH] fixup! [IMP] mail_tracking: Failed Messages to 12.0 --- mail_tracking/controllers/main.py | 15 ++-- mail_tracking/i18n/es.po | 70 ++++++++++--------- mail_tracking/i18n/mail_tracking.pot | 36 ++++++---- .../post-migrate.py | 0 mail_tracking/models/mail_thread.py | 3 +- mail_tracking/models/mail_tracking_email.py | 13 ++-- 6 files changed, 80 insertions(+), 57 deletions(-) rename mail_tracking/migrations/{12.0.1.0.0 => 12.0.2.0.0}/post-migrate.py (100%) diff --git a/mail_tracking/controllers/main.py b/mail_tracking/controllers/main.py index b6f27e387..c4a5e0e64 100644 --- a/mail_tracking/controllers/main.py +++ b/mail_tracking/controllers/main.py @@ -16,7 +16,6 @@ BLANK = 'R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==' @contextmanager def db_env(dbname): - # This part you're missing and it's important if not http.db_filter([dbname]): raise werkzeug.exceptions.BadRequest() cr = None @@ -48,21 +47,25 @@ class MailTrackingController(MailController): metadata = self._request_metadata() res = None with db_env(db) as env: - if env: + try: res = env['mail.tracking.email'].event_process( 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/' '//blank.gif', '/mail/tracking/open/' '///blank.gif'], - type='http', auth='none') + type='http', auth='none', methods=['GET']) def mail_tracking_open(self, db, tracking_email_id, token=False, **kw): """Route used to track mail openned (With & Without Token)""" metadata = self._request_metadata() with db_env(db) as env: - if env: + try: tracking_email = env['mail.tracking.email'].search([ ('id', '=', tracking_email_id), ('state', 'in', ['sent', 'delivered']), @@ -73,6 +76,8 @@ class MailTrackingController(MailController): else: _logger.warning( "MailTracking email '%s' not found", tracking_email_id) + except Exception: + pass # Always return GIF blank image response = werkzeug.wrappers.Response() diff --git a/mail_tracking/i18n/es.po b/mail_tracking/i18n/es.po index 80dba0ab0..9685329bd 100644 --- a/mail_tracking/i18n/es.po +++ b/mail_tracking/i18n/es.po @@ -4,18 +4,18 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-31 17:51+0000\n" -"PO-Revision-Date: 2019-10-31 18:55+0100\n" -"Last-Translator: eduardgm \n" -"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"POT-Creation-Date: 2019-11-12 17:22+0000\n" +"PO-Revision-Date: 2019-11-12 18:26+0100\n" +"Last-Translator: <>\n" +"Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 2.2.1\n" +"Plural-Forms: \n" +"X-Generator: Poedit 2.2.4\n" #. module: mail_tracking #: model:ir.model.fields,help:mail_tracking.field_mail_tracking_email__state @@ -75,8 +75,8 @@ msgid "Bounced" msgstr "Rebotado" #. module: mail_tracking -#: code:addons/mail_tracking/models/mail_thread.py:65 -#: code:addons/mail_tracking/models/mail_thread.py:69 +#: code:addons/mail_tracking/models/mail_thread.py:64 +#: 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_message__email_cc #, python-format @@ -107,7 +107,7 @@ msgstr "¡Enhorabuena! No tienes mensajes fallidos" #. module: mail_tracking #. 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 msgid "Congratulations, your failed mailbox is empty" msgstr "¡Enhorabuena! tu buzón de fallidos está vacio" @@ -198,12 +198,12 @@ msgstr "Reputación del correo" #. module: mail_tracking #: model:ir.model,name:mail_tracking.model_mail_thread msgid "Email Thread" -msgstr "Hilo del Correo" +msgstr "Hilo de mensajes" #. module: mail_tracking #: model_terms:ir.ui.view,arch_db:mail_tracking.view_res_partner_filter msgid "Email bounced" -msgstr "Correo rebotado" +msgstr "Email rebotado" #. module: mail_tracking #: model:ir.model,name:mail_tracking.model_mail_resend_message @@ -247,9 +247,9 @@ msgstr "Tipo de evento" #. module: mail_tracking #. 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/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_event_search #, python-format @@ -272,14 +272,14 @@ msgstr "Mensajes Fallidos" #. module: mail_tracking #. 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 msgid "Failed Recipients:" msgstr "Destinatarios Fallidos:" #. module: mail_tracking #. 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 msgid "Failed messages" msgstr "Mensajes fallidos" @@ -292,7 +292,7 @@ msgid "Failed messages appear here." msgstr "Los mensajes fallidos se muestran aquí." #. module: mail_tracking -#: code:addons/mail_tracking/models/mail_thread.py:93 +#: code:addons/mail_tracking/models/mail_thread.py:92 #, python-format msgid "Failed sent messages" 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_event_search msgid "Group By" -msgstr "Agrupar Por" +msgstr "Agrupar por" #. module: mail_tracking #: 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_event__id msgid "ID" -msgstr "ID" +msgstr "" #. module: mail_tracking #: 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 #: model:ir.model,name:mail_tracking.model_ir_mail_server msgid "Mail Server" -msgstr "Servidor de Correo" +msgstr "Servidor de correo" #. module: mail_tracking #: 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 #. openerp-web #: 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 msgid "Retry" msgstr "Reintentar" @@ -510,6 +510,11 @@ msgstr "Reintentar" msgid "SMTP server" 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 #: 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 @@ -531,10 +536,17 @@ msgstr "Correo del remitente" msgid "Sent" 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 #. openerp-web #: 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 msgid "Set as Reviewed" msgstr "Marcar como Revisado" @@ -553,7 +565,7 @@ msgstr "Rebotado débil" #: selection:mail.tracking.email,state:0 #: selection:mail.tracking.event,event_type:0 msgid "Spam" -msgstr "" +msgstr "No deseado" #. module: mail_tracking #: 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 #: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_event__ua_family -#, fuzzy msgid "User agent family" -msgstr "Familia de la aplicación del usuario" +msgstr "" #. module: mail_tracking #: 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 -#, fuzzy msgid "User agent type" -msgstr "Tipo de aplicación del usuario" +msgstr "" #. module: mail_tracking #: 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 msgid "Waiting" msgstr "Esperando" - -#~ msgid "Email composition wizard" -#~ msgstr "Asistente de redacción de correo electrónico" - -#~ msgid "Hide follower message" -#~ msgstr "Ocultar seguidor del mensaje" diff --git a/mail_tracking/i18n/mail_tracking.pot b/mail_tracking/i18n/mail_tracking.pot index a0fea39e1..08f9b78e8 100644 --- a/mail_tracking/i18n/mail_tracking.pot +++ b/mail_tracking/i18n/mail_tracking.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-31 17:51+0000\n" -"PO-Revision-Date: 2019-10-31 17:51+0000\n" +"POT-Creation-Date: 2019-11-12 17:22+0000\n" +"PO-Revision-Date: 2019-11-12 17:22+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -62,8 +62,8 @@ msgid "Bounced" msgstr "" #. module: mail_tracking -#: code:addons/mail_tracking/models/mail_thread.py:65 -#: code:addons/mail_tracking/models/mail_thread.py:69 +#: code:addons/mail_tracking/models/mail_thread.py:64 +#: 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_message__email_cc #, python-format @@ -94,7 +94,7 @@ msgstr "" #. module: mail_tracking #. 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 msgid "Congratulations, your failed mailbox is empty" msgstr "" @@ -234,9 +234,9 @@ msgstr "" #. module: mail_tracking #. 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/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_event_search #, python-format @@ -259,14 +259,14 @@ msgstr "" #. module: mail_tracking #. 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 msgid "Failed Recipients:" msgstr "" #. module: mail_tracking #. 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 msgid "Failed messages" msgstr "" @@ -279,7 +279,7 @@ msgid "Failed messages appear here." msgstr "" #. module: mail_tracking -#: code:addons/mail_tracking/models/mail_thread.py:93 +#: code:addons/mail_tracking/models/mail_thread.py:92 #, python-format msgid "Failed sent messages" msgstr "" @@ -487,7 +487,7 @@ msgstr "" #. module: mail_tracking #. openerp-web #: 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 msgid "Retry" msgstr "" @@ -497,6 +497,11 @@ msgstr "" msgid "SMTP server" msgstr "" +#. module: mail_tracking +#: model:ir.model.fields,field_description:mail_tracking.field_mail_tracking_email__token +msgid "Security Token" +msgstr "" + #. 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_tree @@ -518,10 +523,17 @@ msgstr "" msgid "Sent" 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 #. openerp-web #: 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 msgid "Set as Reviewed" msgstr "" diff --git a/mail_tracking/migrations/12.0.1.0.0/post-migrate.py b/mail_tracking/migrations/12.0.2.0.0/post-migrate.py similarity index 100% rename from mail_tracking/migrations/12.0.1.0.0/post-migrate.py rename to mail_tracking/migrations/12.0.2.0.0/post-migrate.py diff --git a/mail_tracking/models/mail_thread.py b/mail_tracking/models/mail_thread.py index 0793c14dd..4a385b47b 100644 --- a/mail_tracking/models/mail_thread.py +++ b/mail_tracking/models/mail_thread.py @@ -14,8 +14,7 @@ class MailThread(models.AbstractModel): 'mail.message', 'res_id', string='Failed Messages', domain=lambda self: [('model', '=', self._name)] - + self._get_failed_message_domain(), - auto_join=True) + + self._get_failed_message_domain()) def _get_failed_message_domain(self): """Domain used to display failed messages on the 'failed_messages' diff --git a/mail_tracking/models/mail_tracking_email.py b/mail_tracking/models/mail_tracking_email.py index a9166c09e..c7e84f03c 100644 --- a/mail_tracking/models/mail_tracking_email.py +++ b/mail_tracking/models/mail_tracking_email.py @@ -94,15 +94,18 @@ class MailTrackingEmail(models.Model): inverse_name='tracking_email_id', readonly=True) # Token isn't generated here to have compatibility with older trackings. # New trackings have token and older not - token = fields.Char(string="Request Token", readonly=True, - default=lambda s: uuid.uuid4().hex) + token = fields.Char(string="Security Token", readonly=True, + default=lambda s: uuid.uuid4().hex, + groups="base.group_system") @api.model_create_multi def create(self, vals_list): records = super().create(vals_list) - for record in records: - if record.state in self.env['mail.message'].get_failed_states(): - record.mail_message_id.mail_tracking_needs_action = True + failed_states = self.env['mail.message'].get_failed_states() + records \ + .filtered(lambda one: one.state in failed_states) \ + .mapped("mail_message_id") \ + .write({'mail_tracking_needs_action': True}) return records @api.multi