diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index e95a3bfa1ed..0d64ebf943c 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -1902,7 +1902,7 @@ class Lead(models.Model): 'is_company': is_company, 'type': 'contact' } - if self.lang_id: + if self.lang_id.active: res['lang'] = self.lang_id.code return res diff --git a/addons/crm/tests/test_crm_lead_convert.py b/addons/crm/tests/test_crm_lead_convert.py index 1fd7ccdaf4b..f329e557c58 100644 --- a/addons/crm/tests/test_crm_lead_convert.py +++ b/addons/crm/tests/test_crm_lead_convert.py @@ -246,6 +246,27 @@ class TestLeadConvert(crm_common.TestLeadConvertCommon): # TDE FIXME: should take into account normalized email version, not encoded one # self.assertEqual(convert.partner_id, customer) + @users('user_sales_manager') + def test_lead_convert_no_lang(self): + """ Ensure converting a lead with an archived language correctly falls back on the default partner language. """ + inactive_lang = self.env["res.lang"].sudo().create({ + 'code': 'en_ZZ', + 'name': 'Inactive Lang', + 'active': False, + }) + + lead = self.lead_1.with_user(self.env.user) + lead.lang_id = inactive_lang + + convert = self.env['crm.lead2opportunity.partner'].with_context({ + 'active_model': 'crm.lead', + 'active_id': self.lead_1.id, + 'active_ids': self.lead_1.ids, + }).create({'action': 'create'}) + convert.action_apply() + self.assertTrue(lead.partner_id) + self.assertEqual(lead.partner_id.lang, 'en_US') + @users('user_sales_manager') def test_lead_convert_internals(self): """ Test internals of convert wizard """ diff --git a/addons/crm/tests/test_crm_lead_notification.py b/addons/crm/tests/test_crm_lead_notification.py index 1ecc805ad86..c31397b60f9 100644 --- a/addons/crm/tests/test_crm_lead_notification.py +++ b/addons/crm/tests/test_crm_lead_notification.py @@ -112,7 +112,7 @@ class NewLeadNotification(TestCrmCommon): } ]) expected_list = [ - (False, self.test_email, None, 'Customer Email', {'lang': 'fr_FR'}), + (False, self.test_email, None, 'Customer Email', {'lang': None}), (False, self.test_email, 'en_US', 'Customer Email', {'lang': 'en_US'}), ] for lead, expected in zip(leads, expected_list): @@ -121,7 +121,7 @@ class NewLeadNotification(TestCrmCommon): self.assertEqual(len(res), 1) self.assertEqual(res[0][:4], expected[:4]) for partner_fname in expected[4]: - found = res[0][4][partner_fname] + found = res[0][4].get(partner_fname) expected = expected[4][partner_fname] self.assertEqual( found, expected,