[FIX] base: Contacts still have deactivated language
Steps to reproduce the bug: - Install web_studio, contacts - Activate language English (UK) - Switch all users' language to UK - Deactivate language English (US) - Via Studio, add a related field to a contact: Self > Language Bug: Traceback: contacts still have en_US as language and it's deactivated. opw:2350362 closes odoo/odoo#60279 X-original-commit: 47ec3585f50f030025b39031807be50a9299bcd6 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com> Signed-off-by: backspac <backspac@users.noreply.github.com>
This commit is contained in:
@@ -9074,6 +9074,12 @@ msgid ""
|
||||
"records manually and try importing again."
|
||||
msgstr ""
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/models/res_lang.py:0
|
||||
#, python-format
|
||||
msgid "Cannot deactivate a language that is currently used by contacts."
|
||||
msgstr ""
|
||||
|
||||
#. module: base
|
||||
#: code:addons/base/models/res_lang.py:0
|
||||
#, python-format
|
||||
|
||||
@@ -278,8 +278,10 @@ class Lang(models.Model):
|
||||
if 'code' in vals and any(code != vals['code'] for code in lang_codes):
|
||||
raise UserError(_("Language code cannot be modified."))
|
||||
if vals.get('active') == False:
|
||||
if self.env['res.users'].search([('lang', 'in', lang_codes)]):
|
||||
if self.env['res.users'].search_count([('lang', 'in', lang_codes)]):
|
||||
raise UserError(_("Cannot deactivate a language that is currently used by users."))
|
||||
if self.env['res.partner'].search_count([('lang', 'in', lang_codes)]):
|
||||
raise UserError(_("Cannot deactivate a language that is currently used by contacts."))
|
||||
# delete linked ir.default specifying default partner's language
|
||||
self.env['ir.default'].discard_values('res.partner', 'lang', lang_codes)
|
||||
|
||||
|
||||
@@ -437,7 +437,7 @@ class TestTranslationWrite(TransactionCase):
|
||||
|
||||
def test_03_fr_single(self):
|
||||
self.env['res.lang']._activate_lang('fr_FR')
|
||||
self.env['res.users'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'})
|
||||
self.env['res.partner'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'})
|
||||
self.env.ref('base.lang_en').active = False
|
||||
|
||||
langs = self.env['res.lang'].get_installed()
|
||||
@@ -483,7 +483,7 @@ class TestTranslationWrite(TransactionCase):
|
||||
def test_04_fr_multi_no_en(self):
|
||||
self.env['res.lang']._activate_lang('fr_FR')
|
||||
self.env['res.lang']._activate_lang('es_ES')
|
||||
self.env['res.users'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'})
|
||||
self.env['res.partner'].with_context(active_test=False).search([]).write({'lang': 'fr_FR'})
|
||||
self.env.ref('base.lang_en').active = False
|
||||
|
||||
langs = self.env['res.lang'].get_installed()
|
||||
|
||||
Reference in New Issue
Block a user