From c36b61b1a1ff93f22b1232fbd989460f6de8a19b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Wed, 3 Jul 2019 11:12:11 +0200 Subject: [PATCH] [MIG] mail_tracking: Adapt Cc to 12.0 --- mail_tracking/README.rst | 10 ++++- mail_tracking/models/mail_mail.py | 1 + mail_tracking/models/mail_message.py | 7 ++-- mail_tracking/readme/CONTRIBUTORS.rst | 1 + mail_tracking/readme/USAGE.rst | 7 +++- mail_tracking/static/description/index.html | 2 + mail_tracking/static/src/js/mail_tracking.js | 40 ++++++++++++++++++- .../static/src/xml/mail_tracking.xml | 31 ++++++++++++-- 8 files changed, 89 insertions(+), 10 deletions(-) diff --git a/mail_tracking/README.rst b/mail_tracking/README.rst index 5c2d05960..f4ff09fc5 100644 --- a/mail_tracking/README.rst +++ b/mail_tracking/README.rst @@ -23,7 +23,7 @@ Email tracking :target: https://runbot.odoo-community.org/runbot/205/12.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module shows email notification tracking status for any messages in mail thread (chatter). Each notified partner will have an intuitive icon just @@ -70,6 +70,9 @@ These are all available status icons: .. |unknown| image:: mail_tracking/static/src/img/unknown.png :width: 10px +.. |cc| image:: static/src/img/cc.png + :width: 10px + |unknown| **Unknown**: No email tracking info available. Maybe this notified partner has 'Receive Inbox Notifications by Email' == 'Never' |waiting| **Waiting**: Waiting to be sent @@ -82,12 +85,14 @@ These are all available status icons: |opened| **Opened**: Opened by partner +|cc| **Cc**: It's a Carbon-Copy recipient. Can't know the status so is 'Unknown' + + If you want to see all tracking emails and events you can go to * Settings > Technical > Email > Tracking emails * Settings > Technical > Email > Tracking events - Bug Tracker =========== @@ -116,6 +121,7 @@ Contributors * David Vidal * Ernesto Tejeda * Rafael Blasco + * Alexandre Díaz Other credits ~~~~~~~~~~~~~ diff --git a/mail_tracking/models/mail_mail.py b/mail_tracking/models/mail_mail.py index 37edb9786..2342d1c89 100644 --- a/mail_tracking/models/mail_mail.py +++ b/mail_tracking/models/mail_mail.py @@ -4,6 +4,7 @@ import time from datetime import datetime from email.utils import COMMASPACE + from odoo import models, fields diff --git a/mail_tracking/models/mail_message.py b/mail_tracking/models/mail_message.py index 38d10e063..7492021e6 100644 --- a/mail_tracking/models/mail_message.py +++ b/mail_tracking/models/mail_message.py @@ -106,7 +106,8 @@ class MailMessage(models.Model): for message_dict in messages: mail_message_id = message_dict.get('id', False) if mail_message_id: - message_dict['partner_trackings'] = \ - partner_trackings[mail_message_id] - message_dict['email_cc'] = email_cc[mail_message_id] + message_dict.update({ + 'partner_trackings': partner_trackings[mail_message_id], + 'email_cc': email_cc[mail_message_id], + }) return res diff --git a/mail_tracking/readme/CONTRIBUTORS.rst b/mail_tracking/readme/CONTRIBUTORS.rst index 81d195371..78a16cba0 100644 --- a/mail_tracking/readme/CONTRIBUTORS.rst +++ b/mail_tracking/readme/CONTRIBUTORS.rst @@ -5,3 +5,4 @@ * David Vidal * Ernesto Tejeda * Rafael Blasco + * Alexandre Díaz diff --git a/mail_tracking/readme/USAGE.rst b/mail_tracking/readme/USAGE.rst index 87df760bd..4bf4a0745 100644 --- a/mail_tracking/readme/USAGE.rst +++ b/mail_tracking/readme/USAGE.rst @@ -22,6 +22,9 @@ These are all available status icons: .. |unknown| image:: mail_tracking/static/src/img/unknown.png :width: 10px +.. |cc| image:: static/src/img/cc.png + :width: 10px + |unknown| **Unknown**: No email tracking info available. Maybe this notified partner has 'Receive Inbox Notifications by Email' == 'Never' |waiting| **Waiting**: Waiting to be sent @@ -34,8 +37,10 @@ These are all available status icons: |opened| **Opened**: Opened by partner +|cc| **Cc**: It's a Carbon-Copy recipient. Can't know the status so is 'Unknown' + + If you want to see all tracking emails and events you can go to * Settings > Technical > Email > Tracking emails * Settings > Technical > Email > Tracking events - diff --git a/mail_tracking/static/description/index.html b/mail_tracking/static/description/index.html index 90220f00e..dfddbbbed 100644 --- a/mail_tracking/static/description/index.html +++ b/mail_tracking/static/description/index.html @@ -409,6 +409,7 @@ status icon will appear just right to name of notified partner.

sent Sent: Sent to SMTP server configured

delivered Delivered: Delivered to final MX server

opened Opened: Opened by partner

+

cc Cc: It’s a Carbon-Copy recipient. Can’t know the status so is ‘Unknown’

If you want to see all tracking emails and events you can go to

diff --git a/mail_tracking/static/src/js/mail_tracking.js b/mail_tracking/static/src/js/mail_tracking.js index 828ba7807..cc2336038 100644 --- a/mail_tracking/static/src/js/mail_tracking.js +++ b/mail_tracking/static/src/js/mail_tracking.js @@ -28,6 +28,7 @@ odoo.define('mail_tracking.partner_tracking', function(require){ init: function (parent, data, emojis) { this._super.apply(this, arguments); this._partnerTrackings = data.partner_trackings || []; + this._emailCc = data.email_cc || []; }, /** @@ -37,7 +38,16 @@ odoo.define('mail_tracking.partner_tracking', function(require){ * @return {boolean} */ hasPartnerTrackings: function () { - return !!(this._partnerTrackings && (this._partnerTrackings.length > 0)); + return _.some(this._partnerTrackings); + }, + + /** + * State whether this message contains some email Cc values + * + * @return {boolean} + */ + hasEmailCc: function () { + return _.some(this._emailCc); }, /** @@ -53,6 +63,34 @@ odoo.define('mail_tracking.partner_tracking', function(require){ } return this._partnerTrackings; }, + + /** + * Get the email Cc values of this message + * If this message has no email Cc values, returns [] + * + * @return {Array} + */ + getEmailCc: function () { + if (!this.hasEmailCc()) { + return []; + } + return this._emailCc; + }, + + /** + * Check if the email is an Cc + * If this message has no email Cc values, returns false + * + * @return {Boolean} + */ + isEmailCc: function (email) { + if (!this.hasEmailCc()) { + return false; + } + return _.some(this._emailCc, function (item) { + return item[0] === email; + }); + }, }); ThreadWidget.include({ diff --git a/mail_tracking/static/src/xml/mail_tracking.xml b/mail_tracking/static/src/xml/mail_tracking.xml index 167b453cf..f02640f84 100644 --- a/mail_tracking/static/src/xml/mail_tracking.xml +++ b/mail_tracking/static/src/xml/mail_tracking.xml @@ -48,16 +48,17 @@ - +

To: + - - + - - @@ -73,6 +74,30 @@ + + + + + + + + + + + + + + + + + + + + +