summaryrefslogtreecommitdiff
path: root/addons/website/models/website.py
diff options
context:
space:
mode:
authorRomain Derie <rde@odoo.com>2019-11-22 13:20:23 +0000
committerqsm-odoo <qsm@odoo.com>2020-01-29 14:53:38 +0000
commit3028e9a8649ae5d9b23a1bdb989b903645ede5fe (patch)
treecf54e7c116cee0cb0cea3f06d65f897e8531596e /addons/website/models/website.py
parent3bce5277e378fd499bf2d0fed8c62929165b7871 (diff)
[IMP] website: introduce cookies bar on website
With this commit, it is now possible to activate a cookies bar on a website through the res.settings. The cookies bar can be edited in the frontend by entering edit mode. The cookies bar will appear until the user clicks on 'I agree'. Part of https://github.com/odoo/odoo/pull/41294 task-2087003 closes odoo/odoo#41294 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
Diffstat (limited to 'addons/website/models/website.py')
-rw-r--r--addons/website/models/website.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index f9a6a9f4c77..6de22c8f241 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -59,6 +59,7 @@ class Website(models.Model):
language_ids = fields.Many2many('res.lang', 'website_lang_rel', 'website_id', 'lang_id', 'Languages', default=_active_languages)
default_lang_id = fields.Many2one('res.lang', string="Default Language", default=_default_language, required=True)
auto_redirect_lang = fields.Boolean('Autoredirect Language', default=True, help="Should users be redirected to their browser's language")
+ cookies_bar = fields.Boolean('Cookies Bar', help="Display a customizable cookies bar on your website.")
def _default_social_facebook(self):
return self.env.ref('base.main_company').social_facebook
@@ -168,6 +169,26 @@ class Website(models.Model):
if 'cdn_activated' in values or 'cdn_url' in values or 'cdn_filters' in values:
# invalidate the caches from static node at compile time
self.env['ir.qweb'].clear_caches()
+
+ if 'cookies_bar' in values:
+ if values['cookies_bar']:
+ cookies_view = self.env.ref('website.cookie_policy', raise_if_not_found=False)
+ if cookies_view:
+ cookies_view.with_context(website_id=self.id).write({'website_id': self.id})
+ specific_cook_view = self.with_context(website_id=self.id).viewref('website.cookie_policy')
+ self.env['website.page'].create({
+ 'is_published': True,
+ 'website_indexed': False,
+ 'url': '/cookie-policy',
+ 'website_id': self.id,
+ 'view_id': specific_cook_view.id,
+ })
+ else:
+ self.env['website.page'].search([
+ ('website_id', '=', self.id),
+ ('url', '=', '/cookie-policy'),
+ ]).unlink()
+
return result
@api.model