diff --git a/addons/website/models/ir_attachment.py b/addons/website/models/ir_attachment.py index 15fe50f54717f42d13525be2c9e19cdf9d29b2bd..02a678ad9ec76e1fda43708f27236c1786fab1b2 100644 --- a/addons/website/models/ir_attachment.py +++ b/addons/website/models/ir_attachment.py @@ -17,7 +17,7 @@ class Attachment(models.Model): @api.model def create(self, vals): - website = self.env['website'].get_current_website() + website = self.env['website'].get_current_website(fallback=False) if website and 'website_id' not in vals and 'not_force_website_id' not in self.env.context: vals['website_id'] = website.id return super(Attachment, self).create(vals) diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 6a8856f269a67673079f6df5522a390c9455f9c0..d822f3e0e10cb69c8a56a702c1c9e9f2a79fbcb3 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -30,6 +30,13 @@ class View(models.Model): for view in self: view.first_page_id = self.env['website.page'].search([('view_id', '=', view.id)], limit=1) + @api.model + def create(self, vals): + website = self.env['website'].get_current_website(fallback=False) + if website and 'website_id' not in vals and 'not_force_website_id' not in self.env.context: + vals['website_id'] = website.id + return super(View, self).create(vals) + @api.multi def write(self, vals): '''COW for ir.ui.view. This way editing websites does not impact other diff --git a/addons/website/models/website.py b/addons/website/models/website.py index fc6ff771e1c72c2111f3fd6927280c4ccb1646a7..06756a444cbd7b729fb6c4641e2eccc0b66ebd9d 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -435,7 +435,7 @@ class Website(models.Model): # ---------------------------------------------------------- @api.model - def get_current_website(self): + def get_current_website(self, fallback=True): if request and request.session.get('force_website_id'): return self.browse(request.session['force_website_id']) @@ -446,15 +446,17 @@ class Website(models.Model): if country: country_id = request.env['res.country'].search([('code', '=', country)], limit=1).id - website_id = self._get_current_website_id(domain_name, country_id) + website_id = self._get_current_website_id(domain_name, country_id, fallback=fallback) return self.browse(website_id) @tools.cache('domain_name', 'country_id') - def _get_current_website_id(self, domain_name, country_id): + def _get_current_website_id(self, domain_name, country_id, fallback=True): # sort on country_group_ids so that we fall back on a generic website (empty country_group_ids) websites = self.search([('domain', '=', domain_name)]).sorted('country_group_ids') if not websites: + if not fallback: + return False return self.search([], limit=1).id elif len(websites) == 1: return websites.id