From 04b4818d8465abb2fb8359ad47e652f3558ea5e9 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Tue, 28 May 2019 10:01:27 +0000 Subject: [PATCH] [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 d0bb596f1d51b, 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) --- addons/website/models/res_config_settings.py | 7 ++++--- addons/website/models/website.py | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py index e9b6ab5cc8f..f9ebc435f57 100644 --- a/addons/website/models/res_config_settings.py +++ b/addons/website/models/res_config_settings.py @@ -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): diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 4f55ed27298..bbc8489cf47 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -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):