Skip to content
Snippets Groups Projects
Commit 3549078e authored by rde's avatar rde Committed by Jeremy Kersten
Browse files

[REF] website: function inverse on computed field is_homepage

Before this commit, we were using data[] array from json call to write on
website model accordingly of is_homepage value.

Now, we use the newly created inverse function of the computed field to handle
that to make it more clear
parent cd6c8986
No related branches found
No related tags found
No related merge requests found
...@@ -537,13 +537,23 @@ class Page(models.Model): ...@@ -537,13 +537,23 @@ class Page(models.Model):
date_publish = fields.Datetime('Publishing Date') date_publish = fields.Datetime('Publishing Date')
# This is needed to be able to display if page is a menu in /website/pages # This is needed to be able to display if page is a menu in /website/pages
menu_ids = fields.One2many('website.menu', 'page_id', 'Related Menus') menu_ids = fields.One2many('website.menu', 'page_id', 'Related Menus')
is_homepage = fields.Boolean(compute='_compute_homepage', string='Homepage') is_homepage = fields.Boolean(compute='_compute_homepage', inverse='_set_homepage', string='Homepage')
is_visible = fields.Boolean(compute='_compute_visible', string='Is Visible') is_visible = fields.Boolean(compute='_compute_visible', string='Is Visible')
@api.one @api.one
def _compute_homepage(self): def _compute_homepage(self):
self.is_homepage = self == self.env['website'].get_current_website().homepage_id self.is_homepage = self == self.env['website'].get_current_website().homepage_id
@api.one
def _set_homepage(self):
website = self.env['website'].get_current_website()
if self.is_homepage:
if website.homepage_id != self:
website.write({'homepage_id': self.id})
else:
if website.homepage_id == self:
website.write({'homepage_id': None})
@api.one @api.one
def _compute_visible(self): def _compute_visible(self):
self.is_visible = self.website_published and (not self.date_publish or self.date_publish < fields.Datetime.now()) self.is_visible = self.website_published and (not self.date_publish or self.date_publish < fields.Datetime.now())
...@@ -558,14 +568,6 @@ class Page(models.Model): ...@@ -558,14 +568,6 @@ class Page(models.Model):
def save_page_info(self, website_id, data): def save_page_info(self, website_id, data):
website = self.env['website'].browse(website_id) website = self.env['website'].browse(website_id)
if data['is_homepage'] and website.homepage_id.id != int(data['id']):
# If page is set as the new homepage, set it on website (only page can be set as homepage)
website.write({'homepage_id': data['id']})
else:
if not data['is_homepage'] and website.homepage_id.id == int(data['id']):
# If the page is not a homepage, check if it was the homepage
website.write({'homepage_id': None})
#If URL has been edited, slug it #If URL has been edited, slug it
page = self.browse(int(data['id'])) page = self.browse(int(data['id']))
original_url = page.url original_url = page.url
...@@ -597,7 +599,8 @@ class Page(models.Model): ...@@ -597,7 +599,8 @@ class Page(models.Model):
'url': url, 'url': url,
'website_published': data['website_published'], 'website_published': data['website_published'],
'website_indexed': data['website_indexed'], 'website_indexed': data['website_indexed'],
'date_publish': data['date_publish'] or None 'date_publish': data['date_publish'] or None,
'is_homepage': data['is_homepage'],
}) })
# Create redirect if needed # Create redirect if needed
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment