diff options
| author | Romain Derie <rde@odoo.com> | 2019-11-22 13:20:23 +0000 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2020-01-29 14:53:38 +0000 |
| commit | 3028e9a8649ae5d9b23a1bdb989b903645ede5fe (patch) | |
| tree | cf54e7c116cee0cb0cea3f06d65f897e8531596e /addons/website/models | |
| parent | 3bce5277e378fd499bf2d0fed8c62929165b7871 (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')
| -rw-r--r-- | addons/website/models/res_config_settings.py | 1 | ||||
| -rw-r--r-- | addons/website/models/website.py | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py index 85449fd23c2..054ec2d019c 100644 --- a/addons/website/models/res_config_settings.py +++ b/addons/website/models/res_config_settings.py @@ -28,6 +28,7 @@ class ResConfigSettings(models.TransientModel): website_default_lang_code = fields.Char('Default language code', related='website_id.default_lang_id.code', readonly=False) specific_user_account = fields.Boolean(related='website_id.specific_user_account', readonly=False, help='Are newly created user accounts website specific') + website_cookies_bar = fields.Boolean(related='website_id.cookies_bar', readonly=False) google_analytics_key = fields.Char('Google Analytics Key', related='website_id.google_analytics_key', readonly=False) google_management_client_id = fields.Char('Google Client ID', related='website_id.google_management_client_id', readonly=False) 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 |
