diff --git a/addons/website/models/website_page.py b/addons/website/models/website_page.py index e4d0487b028..d5e5eb67e4c 100644 --- a/addons/website/models/website_page.py +++ b/addons/website/models/website_page.py @@ -178,6 +178,12 @@ class Page(models.Model): 'url_to': url, 'website_id': website_id, }) + # Sync website's homepage URL + website = self.env['website'].get_current_website() + page_url_normalized = {'homepage_url': page.url} + website._handle_homepage_url(page_url_normalized) + if website.homepage_url == page_url_normalized['homepage_url']: + website.homepage_url = vals['url'] vals['url'] = url # If name has changed, check for key uniqueness diff --git a/addons/website/tests/test_page.py b/addons/website/tests/test_page.py index f967d44be5e..9d24d93946d 100644 --- a/addons/website/tests/test_page.py +++ b/addons/website/tests/test_page.py @@ -306,6 +306,44 @@ class WithContext(HttpCase): canonical_url = root_html.xpath('//link[@rel="canonical"]')[0].attrib['href'] self.assertIn(canonical_url, [f"{website.domain}/", f"{website.domain}/page_1"]) + def test_website_homepage_url_change(self): + website = self.env['website'].browse([1]) + + test_page = self.env['website.page'].create({ + 'name': 'HomepageUrlTest', + 'type': 'qweb', + 'arch': '