diff --git a/odoo/addons/base/res/res_lang.py b/odoo/addons/base/res/res_lang.py index c43baf0ad49..d1517a69764 100644 --- a/odoo/addons/base/res/res_lang.py +++ b/odoo/addons/base/res/res_lang.py @@ -216,8 +216,16 @@ class Lang(models.Model): lang_codes = self.mapped('code') 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 and self.env['res.users'].search([('lang', 'in', lang_codes)]): - raise UserError(_("Cannot unactivate a language that is currently used by users.")) + if vals.get('active') == False: + if self.env['res.users'].search([('lang', 'in', lang_codes)]): + raise UserError(_("Cannot unactivate a language that is currently used by users.")) + # delete linked ir.value specifying default partner's language + default_lang = self.env['ir.values'].search([ + ('key', '=', 'default'), + ('name', '=', 'lang'), + ('model', '=', 'res.partner')]) + if default_lang and default_lang.value_unpickle in lang_codes: + default_lang.unlink() self.clear_caches() return super(Lang, self).write(vals)