diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index e7e884165d1..0ce4008ae07 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -191,7 +191,9 @@ class Lead(models.Model): ('correct', 'Correct'), ('incorrect', 'Incorrect')], string='Email Quality', compute="_compute_email_state", store=True) website = fields.Char('Website', help="Website of the contact", compute="_compute_website", readonly=False, store=True) - lang_id = fields.Many2one('res.lang', string='Language', compute='_compute_lang_id', readonly=False, store=True) + lang_id = fields.Many2one( + 'res.lang', string='Language', + compute='_compute_lang_id', readonly=False, store=True) lang_code = fields.Char(related='lang_id.code') lang_active_count = fields.Integer(compute='_compute_lang_active_count') # Address fields @@ -409,10 +411,13 @@ class Lead(models.Model): one if set. """ # prepare cache lang_codes = [code for code in self.mapped('partner_id.lang') if code] - lang_id_by_code = dict( - (code, self.env['res.lang']._lang_get_id(code)) - for code in lang_codes - ) + if lang_codes: + lang_id_by_code = dict( + (code, self.env['res.lang']._lang_get_id(code)) + for code in lang_codes + ) + else: + lang_id_by_code = {} for lead in self.filtered('partner_id'): lead.lang_id = lang_id_by_code.get(lead.partner_id.lang, False) diff --git a/addons/crm/tests/common.py b/addons/crm/tests/common.py index c50e44c1593..23c93498e7e 100644 --- a/addons/crm/tests/common.py +++ b/addons/crm/tests/common.py @@ -127,8 +127,8 @@ class TestCrmCommon(TestSalesCommon, MailCase): base_us = cls.env.ref('base.us') cls.env['res.lang']._activate_lang('fr_FR') cls.env['res.lang']._activate_lang('en_US') - cls.lang_fr = cls.env['res.lang']._lang_get('fr_FR') cls.lang_en = cls.env['res.lang']._lang_get('en_US') + cls.lang_fr = cls.env['res.lang']._lang_get('fr_FR') # leads cls.lead_1 = cls.env['crm.lead'].create({ diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index 34acfcad160..d33e9b6f4f8 100644 --- a/addons/crm/tests/test_crm_lead.py +++ b/addons/crm/tests/test_crm_lead.py @@ -70,6 +70,8 @@ class TestCRMLead(TestCrmCommon): lead.write({'partner_id': self.contact_company_1.id}) for fname in PARTNER_ADDRESS_FIELDS_TO_SYNC: self.assertEqual(lead[fname], self.contact_company_1[fname]) + self.assertEqual(self.contact_company_1.lang, self.lang_en.code) + self.assertEqual(lead.lang_id, self.lang_en) @users('user_sales_leads') def test_crm_lead_creation_no_partner(self): diff --git a/doc/cla/corporate/metrum.md b/doc/cla/corporate/metrum.md index b64bf351a8b..a04d4dec2be 100644 --- a/doc/cla/corporate/metrum.md +++ b/doc/cla/corporate/metrum.md @@ -14,3 +14,4 @@ List of contributors: Pascal Pelzer pascal.pelzer@metrum.lu https://github.com/PascalPelzer Jonathan Nemry jonathan.nemry@metrum.lu https://github.com/JonathanNEMRY +Lorenzo Ciciotti lorenzo.ciciotti@metrum.lu https://github.com/lorenzo6ioti