diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py index d581a42e1ee..cd55e1f71d1 100644 --- a/addons/mail/models/mail_message.py +++ b/addons/mail/models/mail_message.py @@ -372,10 +372,19 @@ class Message(models.Model): else: partner_ids = [partner_tree[partner.id] for partner in message.partner_ids if partner.id in partner_tree] - + # we read customer_email_status before filtering inactive user because we don't want to miss a red enveloppe + customer_email_status = ( + (all(n.email_status == 'sent' for n in message.notification_ids) and 'sent') or + (any(n.email_status == 'exception' for n in message.notification_ids) and 'exception') or + (any(n.email_status == 'bounce' for n in message.notification_ids) and 'bounce') or + 'ready' + ) customer_email_data = [] - filter_notification = lambda notif: (notif.email_status in ('bounce', 'exception', 'canceled') and (notif.res_partner_id.partner_share and notif.res_partner_id.active)) or\ - (notif.res_partner_id.partner_share and notif.res_partner_id.active) + def filter_notification(notif): + return ( + (notif.email_status in ('bounce', 'exception', 'canceled') or notif.res_partner_id.partner_share) and + notif.res_partner_id.active + ) for notification in message.notification_ids.filtered(filter_notification): customer_email_data.append((partner_tree[notification.res_partner_id.id][0], partner_tree[notification.res_partner_id.id][1], notification.email_status)) @@ -391,9 +400,7 @@ class Message(models.Model): message_dict.update({ 'author_id': author, 'partner_ids': partner_ids, - 'customer_email_status': (all(d[2] == 'sent' for d in customer_email_data) and 'sent') or - (any(d[2] == 'exception' for d in customer_email_data) and 'exception') or - (any(d[2] == 'bounce' for d in customer_email_data) and 'bounce') or 'ready', + 'customer_email_status': customer_email_status, 'customer_email_data': customer_email_data, 'attachment_ids': attachment_ids, 'tracking_value_ids': tracking_value_ids, diff --git a/addons/mail/static/src/xml/thread.xml b/addons/mail/static/src/xml/thread.xml index ca8ae9b8319..325f274f958 100644 --- a/addons/mail/static/src/xml/thread.xml +++ b/addons/mail/static/src/xml/thread.xml @@ -174,7 +174,8 @@ (from #) - + +