diff --git a/addons/email_template/tests/test_mail.py b/addons/email_template/tests/test_mail.py index 73dbe28114c..80b9dcee5a2 100644 --- a/addons/email_template/tests/test_mail.py +++ b/addons/email_template/tests/test_mail.py @@ -165,6 +165,7 @@ class test_message_compose(TestMailBase): message_pigs_pids = [partner.id for partner in message_pigs.notified_partner_ids] message_bird_pids = [partner.id for partner in message_bird.notified_partner_ids] partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])]) + partner_ids.append(p_a_id) self.assertEqual(set(message_pigs_pids), set(partner_ids), 'mail.message on pigs incorrect number of notified_partner_ids') self.assertEqual(set(message_bird_pids), set(partner_ids), 'mail.message on bird notified_partner_ids incorrect') diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index d545f3782b4..d80b65ed648 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -849,9 +849,7 @@ class mail_message(osv.Model): # message has no subtype_id: pure log message -> no partners, no one notified if not message.subtype_id: return True - # all partner_ids of the mail.message have to be notified - if message.partner_ids: - partners_to_notify |= set(message.partner_ids) + # all followers of the mail.message document have to be added as partners and notified if message.model and message.res_id: fol_obj = self.pool.get("mail.followers") @@ -866,7 +864,11 @@ class mail_message(osv.Model): if message.author_id and message.model == "res.partner" and message.res_id == message.author_id.id: partners_to_notify |= set([message.author_id]) elif message.author_id: - partners_to_notify = partners_to_notify - set([message.author_id]) + partners_to_notify -= set([message.author_id]) + + # all partner_ids of the mail.message have to be notified regardless of the above (even the author if explicitly added!) + if message.partner_ids: + partners_to_notify |= set(message.partner_ids) # notify if partners_to_notify: