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 to SMTP server configured
Delivered: Delivered to final MX server
Opened: Opened by partner
+
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
@@ -440,6 +441,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
- David Vidal
- Ernesto Tejeda
- Rafael Blasco
+- Alexandre Díaz
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+