diff --git a/addons/website/models/__init__.py b/addons/website/models/__init__.py index 173075aafbf..77c01e012a0 100644 --- a/addons/website/models/__init__.py +++ b/addons/website/models/__init__.py @@ -18,3 +18,4 @@ from . import res_company from . import res_partner from . import res_users from . import res_config_settings +from . import res_lang diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py index 73c95fc0530..875e9d1ff0c 100644 --- a/addons/website/models/res_config_settings.py +++ b/addons/website/models/res_config_settings.py @@ -18,7 +18,7 @@ class ResConfigSettings(models.TransientModel): website_domain = fields.Char('Website Domain', related='website_id.domain', readonly=False) website_country_group_ids = fields.Many2many(related='website_id.country_group_ids', readonly=False) website_company_id = fields.Many2one(related='website_id.company_id', string='Website Company', readonly=False) - language_ids = fields.Many2many(related='website_id.language_ids', relation='res.lang', readonly=False) + language_ids = fields.Many2many(related='website_id.language_ids', relation='res.lang', readonly=False, required=True) language_count = fields.Integer(string='Number of languages', compute='_compute_language_count', readonly=True) website_default_lang_id = fields.Many2one( string='Default language', related='website_id.default_lang_id', readonly=False, @@ -106,7 +106,9 @@ class ResConfigSettings(models.TransientModel): def _onchange_language_ids(self): # If current default language is removed from language_ids # update the website_default_lang_id - if self.language_ids and self.website_default_lang_id not in self.language_ids: + if not self.language_ids: + self.website_default_lang_id = False + elif self.website_default_lang_id not in self.language_ids: self.website_default_lang_id = self.language_ids[0] @api.depends('language_ids') diff --git a/addons/website/models/res_lang.py b/addons/website/models/res_lang.py new file mode 100644 index 00000000000..147ff26c6d0 --- /dev/null +++ b/addons/website/models/res_lang.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models, _ +from odoo.exceptions import UserError + + +class Lang(models.Model): + _inherit = "res.lang" + + @api.multi + def write(self, vals): + if 'active' in vals and not vals['active']: + if self.env['website'].search([('language_ids', 'in', self._ids)]): + raise UserError(_("Cannot deactivate a language that is currently used on a website.")) + return super(Lang, self).write(vals)