[FIX] mail: _get_recipient_data return groups for pids
Note: fix not necessary since odoo/odoo@https://github.com/odoo/odoo/commit/a62927e7e2d7df4047f8606b41e70ef61ac29b73 landed in master. This forward port contains only the test. Step to reproduce: - Go to a project with visibility set on 'Invited portal users and all internal users' - Go a task - Send an follow invitation to Marc Demo (an internal user) Intended behavior: The mail has a 'View task button' Current behavior: No view task button This behaviour is due to the function _get_recipient_data which is supposed to return groups when given pids but doesn't. See _get_recipient_data docstring. opw-2727410 closes odoo/odoo#83594 X-original-commit: d113cb6398806a1a744085d041b73b827f9f4ada Signed-off-by: Damhaut Florian (flda) <flda@odoo.com> Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
committed by
Thibault Delavallée
parent
9311b087e1
commit
ac98d89a98
@@ -458,9 +458,13 @@ class RecipientsNotificationTest(TestMailCommon):
|
||||
def assertRecipientsData(self, recipients_data, records, partners, partner_to_users=None):
|
||||
""" Custom assert as recipients structure is custom and may change due
|
||||
to some implementation choice. """
|
||||
self.assertEqual(set(recipients_data.keys()), set(records.ids))
|
||||
for record in records:
|
||||
record_data = recipients_data[record.id]
|
||||
if records:
|
||||
self.assertEqual(set(recipients_data.keys()), set(records.ids))
|
||||
record_ids = records.ids
|
||||
else:
|
||||
records, record_ids = [False], [0]
|
||||
for record, record_id in zip(records, record_ids):
|
||||
record_data = recipients_data[record_id]
|
||||
self.assertEqual(set(record_data.keys()), set(partners.ids))
|
||||
for partner in partners:
|
||||
partner_data = record_data[partner.id]
|
||||
@@ -479,7 +483,10 @@ class RecipientsNotificationTest(TestMailCommon):
|
||||
self.assertEqual(partner_data['groups'], set())
|
||||
self.assertEqual(partner_data['notif'], 'email')
|
||||
self.assertFalse(partner_data['uid'])
|
||||
self.assertEqual(partner_data['is_follower'], partner in record.message_partner_ids)
|
||||
if record:
|
||||
self.assertEqual(partner_data['is_follower'], partner in record.message_partner_ids)
|
||||
else:
|
||||
self.assertFalse(partner_data['is_follower'])
|
||||
self.assertEqual(partner_data['share'], partner.partner_share)
|
||||
self.assertEqual(partner_data['ushare'], user.share)
|
||||
|
||||
@@ -675,3 +682,11 @@ class RecipientsNotificationTest(TestMailCommon):
|
||||
pids=(self.env.user.partner_id + self.partner_admin).ids
|
||||
)
|
||||
self.assertRecipientsData(recipients_data, test_records, self.env.user.partner_id + self.partner_admin)
|
||||
|
||||
# on mail.thread, False everywhere: pathologic case
|
||||
test_partners = self.partner_admin + self.partner_employee + self.common_partner
|
||||
recipients_data = self.env['mail.followers']._get_recipient_data(
|
||||
self.env['mail.thread'], False, False,
|
||||
pids=test_partners.ids
|
||||
)
|
||||
self.assertRecipientsData(recipients_data, False, test_partners)
|
||||
|
||||
Reference in New Issue
Block a user