diff --git a/addons/event_crm/models/event_lead_rule.py b/addons/event_crm/models/event_lead_rule.py index 47c425fef26..08c5c114cb0 100644 --- a/addons/event_crm/models/event_lead_rule.py +++ b/addons/event_crm/models/event_lead_rule.py @@ -180,7 +180,7 @@ class EventLeadRule(models.Model): 'description': "%s\n%s" % (lead.description, additionnal_description), 'registration_ids': [(4, reg.id) for reg in group_registrations], }) - else: + elif group_registrations: lead_vals_list.append(group_registrations._get_lead_values(rule)) return self.env['crm.lead'].create(lead_vals_list) diff --git a/addons/event_crm/tests/test_event_crm_flow.py b/addons/event_crm/tests/test_event_crm_flow.py index 3c289f49e58..74352c775db 100644 --- a/addons/event_crm/tests/test_event_crm_flow.py +++ b/addons/event_crm/tests/test_event_crm_flow.py @@ -166,3 +166,23 @@ class TestEventCrmFlow(TestEventCrmCommon): registration.action_set_done() self.assertLeadConvertion(self.test_rule_order_done, registration) + + @users('user_eventmanager') + def test_order_rule_duplicate_lead(self): + """ Check when two rules match one event + but only one match the registration, + only one lead should be created + """ + test_rule_order_2 = self.test_rule_order.copy(default={ + 'event_registration_filter': [['email', 'not ilike', '@test.example.com']] + }) + self.env['event.registration'].create({ + 'name': 'My Registration', + 'partner_id': False, + 'email': 'super.email@test.example.com', + 'phone': False, + 'mobile': '0456332211', + 'event_id': self.event_0.id, + }) + self.assertEqual(len(self.test_rule_order.lead_ids), 1) + self.assertEqual(len(test_rule_order_2.lead_ids), 0)