diff options
| author | nie <nie@odoo.com> | 2020-10-16 15:09:38 +0000 |
|---|---|---|
| committer | nie <nie@odoo.com> | 2020-10-19 13:08:20 +0000 |
| commit | c8c828ee14533176cfef5b2e7d29344286af74be (patch) | |
| tree | bae953d321265d6c1c3a33fd866f756a81ef4514 | |
| parent | 679ebc3381179f6b18364c6f2b4d4f7f34274698 (diff) | |
[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#60276
X-original-commit: 47ec3585f50f030025b39031807be50a9299bcd6
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: backspac <backspac@users.noreply.github.com>
| -rw-r--r-- | odoo/addons/base/i18n/base.pot | 6 | ||||
| -rw-r--r-- | odoo/addons/base/models/res_lang.py | 4 | ||||
| -rw-r--r-- | odoo/addons/base/tests/test_translate.py | 4 |
3 files changed, 11 insertions, 3 deletions
diff --git a/odoo/addons/base/i18n/base.pot b/odoo/addons/base/i18n/base.pot index c3819e0cb5a..2758c317b4d 100644 --- a/odoo/addons/base/i18n/base.pot +++ b/odoo/addons/base/i18n/base.pot @@ -9077,6 +9077,12 @@ 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 msgid "Cannot deactivate a language that is currently used by users." msgstr "" diff --git a/odoo/addons/base/models/res_lang.py b/odoo/addons/base/models/res_lang.py index 7ab93e46fb7..16eb59b95cb 100644 --- a/odoo/addons/base/models/res_lang.py +++ b/odoo/addons/base/models/res_lang.py @@ -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) diff --git a/odoo/addons/base/tests/test_translate.py b/odoo/addons/base/tests/test_translate.py index 276c05bf7ba..e9b9b3a935f 100644 --- a/odoo/addons/base/tests/test_translate.py +++ b/odoo/addons/base/tests/test_translate.py @@ -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() |
