[FIX] website: onchange new record adaptation

Before this commit, when you go on website config settings, you can't save.
This is because the website default lang field is not set anymore (supposed to
be set in onchange), and since it is hidden in the view if only one language,
there is no clue about the error field.

Following d0bb596f1d, x2many fields of new records are new records, meaning
that:
`self.many2one in self.x2many`
is not true anymore since self.x2many is a new record.

Also:
`self.many2one = self.x2many[0]`
is not working as before, the new record is not saved in the many2one

closes odoo/odoo#33716

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
This commit is contained in:
Romain Derie
2019-05-28 10:13:36 +00:00
parent d9c33c4c78
commit 04b4818d84
2 changed files with 7 additions and 5 deletions
+4 -3
View File
@@ -107,10 +107,11 @@ 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 not self.language_ids:
language_ids = self.language_ids._origin
if not 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]
elif self.website_default_lang_id not in language_ids:
self.website_default_lang_id = language_ids[0]
@api.depends('language_ids')
def _compute_language_count(self):
+3 -2
View File
@@ -119,8 +119,9 @@ class Website(models.Model):
@api.onchange('language_ids')
def _onchange_language_ids(self):
if self.language_ids and self.default_lang_id not in self.language_ids:
self.default_lang_id = self.language_ids[0]
language_ids = self.language_ids._origin
if language_ids and self.default_lang_id not in language_ids:
self.default_lang_id = language_ids[0]
@api.multi
def _compute_menu(self):