diff --git a/addons/survey/tests/test_survey_invite.py b/addons/survey/tests/test_survey_invite.py index 9c8a29a709e..0b86bf3dbd0 100644 --- a/addons/survey/tests/test_survey_invite.py +++ b/addons/survey/tests/test_survey_invite.py @@ -84,6 +84,17 @@ class TestSurveyInvite(common.TestSurveyCommon): self.assertEqual(answers.mapped('partner_id'), self.customer) self.assertEqual(set(answers.mapped('deadline')), set([deadline])) + with self.subTest('Warning when inviting an already invited partner'): + action = self.survey.action_send_survey() + invite_form = Form(self.env[action['res_model']].with_context(action['context'])) + invite_form.send_email = True + invite_form.partner_ids.add(self.customer) + + self.assertIn(self.customer, invite_form.existing_partner_ids) + self.assertEqual(invite_form.existing_text, + 'The following customers have already received an invite: Caroline Customer.') + + @users('survey_manager') def test_survey_invite_authentication_nosignup(self): Answer = self.env['survey.user_input'] diff --git a/addons/survey/wizard/survey_invite.py b/addons/survey/wizard/survey_invite.py index a2192ec54ba..cbb81a121ec 100644 --- a/addons/survey/wizard/survey_invite.py +++ b/addons/survey/wizard/survey_invite.py @@ -71,8 +71,7 @@ class SurveyInvite(models.TransientModel): @api.depends('partner_ids', 'survey_id') def _compute_existing_partner_ids(self): - existing_answers = self.survey_id.user_input_ids - self.existing_partner_ids = existing_answers.mapped('partner_id') & self.partner_ids + self.existing_partner_ids = list(set(self.survey_id.user_input_ids.partner_id.ids) & set(self.partner_ids.ids)) @api.depends('emails', 'survey_id') def _compute_existing_emails(self):