[FIX] website: res_config_setting in multi company
Before this commit, if the first website in the select was not in your current company, it raises a traceback. Now with filter on your own company, and support empty website selected removing required on related field and using attrs dynamic to make it required closes odoo/odoo#30769
This commit is contained in:
@@ -4,14 +4,13 @@
|
|||||||
from ast import literal_eval
|
from ast import literal_eval
|
||||||
|
|
||||||
from odoo import api, fields, models
|
from odoo import api, fields, models
|
||||||
from odoo.exceptions import AccessDenied
|
|
||||||
|
|
||||||
|
|
||||||
class ResConfigSettings(models.TransientModel):
|
class ResConfigSettings(models.TransientModel):
|
||||||
_inherit = 'res.config.settings'
|
_inherit = 'res.config.settings'
|
||||||
|
|
||||||
def _default_website(self):
|
def _default_website(self):
|
||||||
return self.env['website'].search([], limit=1)
|
return self.env['website'].search([('company_id', '=', self.env.user.company_id.id)], limit=1)
|
||||||
|
|
||||||
website_id = fields.Many2one('website', string="website",
|
website_id = fields.Many2one('website', string="website",
|
||||||
default=_default_website, ondelete='cascade')
|
default=_default_website, ondelete='cascade')
|
||||||
@@ -23,7 +22,7 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
language_count = fields.Integer(string='Number of languages', compute='_compute_language_count', readonly=True)
|
language_count = fields.Integer(string='Number of languages', compute='_compute_language_count', readonly=True)
|
||||||
website_default_lang_id = fields.Many2one(
|
website_default_lang_id = fields.Many2one(
|
||||||
string='Default language', related='website_id.default_lang_id', readonly=False,
|
string='Default language', related='website_id.default_lang_id', readonly=False,
|
||||||
relation='res.lang', required=True,
|
relation='res.lang', required=False,
|
||||||
oldname='default_lang_id')
|
oldname='default_lang_id')
|
||||||
website_default_lang_code = fields.Char(
|
website_default_lang_code = fields.Char(
|
||||||
'Default language code', related='website_id.default_lang_code', readonly=False,
|
'Default language code', related='website_id.default_lang_code', readonly=False,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
Settings on this page will apply to this website
|
Settings on this page will apply to this website
|
||||||
</div>
|
</div>
|
||||||
<div class="mt16">
|
<div class="mt16">
|
||||||
<field name="website_id" widget="selection" required="1"/>
|
<field name="website_id" widget="selection"/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button name="action_website_create_new" type="object" string="Create a New Website" class="btn-secondary" icon="fa-arrow-right"/>
|
<button name="action_website_create_new" type="object" string="Create a New Website" class="btn-secondary" icon="fa-arrow-right"/>
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<div class="content-group">
|
<div class="content-group">
|
||||||
<div class="row mt16">
|
<div class="row mt16">
|
||||||
<label class="col-lg-3 o_light_label" string="Name" for="website_name"/>
|
<label class="col-lg-3 o_light_label" string="Name" for="website_name"/>
|
||||||
<field name="website_name" required="1"/>
|
<field name="website_name" attrs="{'required': [('website_id', '!=', False)] }"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-lg-3 o_light_label" for="favicon" />
|
<label class="col-lg-3 o_light_label" for="favicon" />
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
<field name="language_count" invisible="1"/>
|
<field name="language_count" invisible="1"/>
|
||||||
<div class="mt8" attrs="{'invisible':[('language_count', '<', 2)]}">
|
<div class="mt8" attrs="{'invisible':[('language_count', '<', 2)]}">
|
||||||
<label class="o_light_label mr8" string="Default" for="website_default_lang_id"/>
|
<label class="o_light_label mr8" string="Default" for="website_default_lang_id"/>
|
||||||
<field name="website_default_lang_id" widget="selection"/>
|
<field name="website_default_lang_id" widget="selection" attrs="{'required': [('website_id', '!=', False)]}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Reference in New Issue
Block a user