*: base, http_routing, website Make the language switcher available on portal without website installed. Part of https://github.com/odoo/odoo/pull/55300 task-2203383 Co-authored-by: Jeremy Kersten <jke@odoo.com> Co-authored-by: qsm-odoo <qsm@odoo.com>
27 lines
941 B
Python
27 lines
941 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models, tools, _
|
|
from odoo.addons.website.models import ir_http
|
|
from odoo.exceptions import UserError
|
|
from odoo.http import request
|
|
|
|
|
|
class Lang(models.Model):
|
|
_inherit = "res.lang"
|
|
|
|
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)
|
|
|
|
@api.model
|
|
@tools.ormcache_context(keys=("website_id",))
|
|
def get_available(self):
|
|
website = ir_http.get_request_website()
|
|
if not website:
|
|
return super().get_available()
|
|
# Return the website-available ones in this case
|
|
return request.website.language_ids.get_sorted()
|