[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
This commit is contained in:
rde
2017-10-12 16:20:42 +02:00
committed by Jeremy Kersten
parent cd6c898643
commit 3549078ef4
+13 -10
View File
@@ -537,13 +537,23 @@ class Page(models.Model):
date_publish = fields.Datetime('Publishing Date')
# 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')
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')
@api.one
def _compute_homepage(self):
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
def _compute_visible(self):
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):
def save_page_info(self, website_id, data):
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
page = self.browse(int(data['id']))
original_url = page.url
@@ -597,7 +599,8 @@ class Page(models.Model):
'url': url,
'website_published': data['website_published'],
'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