[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>
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user