Browse Source

Jan 01 [ADD] : Initial Commit 'cookie_consent_manager'

pull/195/merge
AjmalCybro 5 months ago
parent
commit
a51a91dece
  1. 48
      cookie_consent_manager/README.rst
  2. 22
      cookie_consent_manager/__init__.py
  3. 47
      cookie_consent_manager/__manifest__.py
  4. 5
      cookie_consent_manager/doc/RELEASE_NOTES.md
  5. 23
      cookie_consent_manager/models/__init__.py
  6. 96
      cookie_consent_manager/models/cookie_information.py
  7. 32
      cookie_consent_manager/models/res_config_settings.py
  8. 2
      cookie_consent_manager/security/ir.model.access.csv
  9. BIN
      cookie_consent_manager/static/description/assets/icons/check.png
  10. BIN
      cookie_consent_manager/static/description/assets/icons/chevron.png
  11. BIN
      cookie_consent_manager/static/description/assets/icons/cogs.png
  12. BIN
      cookie_consent_manager/static/description/assets/icons/consultation.png
  13. BIN
      cookie_consent_manager/static/description/assets/icons/ecom-black.png
  14. BIN
      cookie_consent_manager/static/description/assets/icons/education-black.png
  15. BIN
      cookie_consent_manager/static/description/assets/icons/hotel-black.png
  16. BIN
      cookie_consent_manager/static/description/assets/icons/license.png
  17. BIN
      cookie_consent_manager/static/description/assets/icons/lifebuoy.png
  18. BIN
      cookie_consent_manager/static/description/assets/icons/manufacturing-black.png
  19. BIN
      cookie_consent_manager/static/description/assets/icons/pos-black.png
  20. BIN
      cookie_consent_manager/static/description/assets/icons/puzzle.png
  21. BIN
      cookie_consent_manager/static/description/assets/icons/restaurant-black.png
  22. BIN
      cookie_consent_manager/static/description/assets/icons/service-black.png
  23. BIN
      cookie_consent_manager/static/description/assets/icons/trading-black.png
  24. BIN
      cookie_consent_manager/static/description/assets/icons/training.png
  25. BIN
      cookie_consent_manager/static/description/assets/icons/update.png
  26. BIN
      cookie_consent_manager/static/description/assets/icons/user.png
  27. BIN
      cookie_consent_manager/static/description/assets/icons/wrench.png
  28. BIN
      cookie_consent_manager/static/description/assets/misc/categories.png
  29. BIN
      cookie_consent_manager/static/description/assets/misc/check-box.png
  30. BIN
      cookie_consent_manager/static/description/assets/misc/compass.png
  31. BIN
      cookie_consent_manager/static/description/assets/misc/corporate.png
  32. BIN
      cookie_consent_manager/static/description/assets/misc/customer-support.png
  33. BIN
      cookie_consent_manager/static/description/assets/misc/cybrosys-logo.png
  34. BIN
      cookie_consent_manager/static/description/assets/misc/features.png
  35. BIN
      cookie_consent_manager/static/description/assets/misc/logo.png
  36. BIN
      cookie_consent_manager/static/description/assets/misc/pictures.png
  37. BIN
      cookie_consent_manager/static/description/assets/misc/pie-chart.png
  38. BIN
      cookie_consent_manager/static/description/assets/misc/right-arrow.png
  39. BIN
      cookie_consent_manager/static/description/assets/misc/star.png
  40. BIN
      cookie_consent_manager/static/description/assets/misc/support.png
  41. BIN
      cookie_consent_manager/static/description/assets/misc/whatsapp.png
  42. BIN
      cookie_consent_manager/static/description/assets/modules/1.png
  43. BIN
      cookie_consent_manager/static/description/assets/modules/2.png
  44. BIN
      cookie_consent_manager/static/description/assets/modules/3.png
  45. BIN
      cookie_consent_manager/static/description/assets/modules/4.png
  46. BIN
      cookie_consent_manager/static/description/assets/modules/5.png
  47. BIN
      cookie_consent_manager/static/description/assets/modules/6.png
  48. BIN
      cookie_consent_manager/static/description/assets/screenshots/1.png
  49. BIN
      cookie_consent_manager/static/description/assets/screenshots/2.png
  50. BIN
      cookie_consent_manager/static/description/assets/screenshots/4.png
  51. BIN
      cookie_consent_manager/static/description/assets/screenshots/5.png
  52. BIN
      cookie_consent_manager/static/description/assets/screenshots/6.png
  53. BIN
      cookie_consent_manager/static/description/assets/screenshots/v15-hero.gif
  54. BIN
      cookie_consent_manager/static/description/banner.jpg
  55. BIN
      cookie_consent_manager/static/description/icon.png
  56. 613
      cookie_consent_manager/static/description/index.html
  57. 67
      cookie_consent_manager/views/cookie_information_views.xml
  58. 27
      cookie_consent_manager/views/res_config_settings_views.xml
  59. 432
      cookie_consent_manager/views/website_cookie_bar_templates.xml

48
cookie_consent_manager/README.rst

@ -0,0 +1,48 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Cookie Consent Manager
======================
Cookie consent Manger to handle cookie template
Configuration
=============
* No additional configurations needed
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
-------
General Public License, Version 3 (AGPL v3).
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Credits
-------
* Developers: (V16) Rosmy John, Jumana Jabin MP,
(V17) Ayana KP,
Contact: odoo@cybrosys.com
Contacts
--------
* Mail Contact : odoo@cybrosys.com
* Website : https://cybrosys.com
Bug Tracker
-----------
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Maintainer
==========
.. image:: https://cybrosys.com/images/logo.png
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
For support and more information, please visit `Our Website <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

22
cookie_consent_manager/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C)2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Ayana KP @cybrosys(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import models

47
cookie_consent_manager/__manifest__.py

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C)2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Ayana KP@cybrosys(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
{
'name': 'Cookie Consent Manager',
'version': '15.0.1.0.0',
'category': 'Extra Tools',
'summary': """Manage and customize website cookie consent templates""",
'description': """This allows website owners to manage and customize their
cookie consent templates. With this module, you can create, modify, and
display customized cookie consent banners to comply with data protection
regulations and improve user privacy on your Odoo website.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'depends': ['base_setup', 'website'],
'data': [
'security/ir.model.access.csv',
'views/res_config_settings_views.xml',
'views/cookie_information_views.xml',
'views/website_cookie_bar_templates.xml'
],
'images': ['static/description/banner.jpg'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

5
cookie_consent_manager/doc/RELEASE_NOTES.md

@ -0,0 +1,5 @@
## Module <cookie_consent_manager>
#### 18.11.2024
#### Version 15.0.1.0.0
#### ADD
- Initial commit for Cookie Consent Manager

23
cookie_consent_manager/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Ayana KP@cybrosys(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import cookie_information
from . import res_config_settings

96
cookie_consent_manager/models/cookie_information.py

@ -0,0 +1,96 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C)2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Ayana KP @cybrosys(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import api, fields, models
from odoo.exceptions import ValidationError
OBJECT_COLOR = {
"0": "#FFFFFF", # No color (default to white)
"1": "#FF0000", # Red
"2": "#FFA500", # Orange
"3": "#FFFF00", # Yellow
"4": "#ADD8E6", # Light blue
"5": "#800080", # Dark purple
"6": "#FA8072", # Salmon pink
"7": "#0000CD", # Medium blue
"8": "#00008B", # Dark blue
"9": "#FF00FF", # Fuchsia
"10": "#008000", # Green
"11": "#800080", # Purple
}
class CookieInformation(models.Model):
"""This class is used to store information about a cookie template."""
_name = "cookie.information"
_description = "Cookie Information"
_rec_name = 'template_title'
template_title = fields.Char(string="Template Name",
help="Title of the template")
pop_up_text = fields.Char(string="Pop Up text", help="Cookie message")
cookie_color = fields.Integer(string="Cookie Color",
help="Change the color of cookie")
is_change_pop_up_position = fields.Boolean(string="Change Pop up position",
help="Change the pop up "
"position")
is_change_pop_up_position_top = fields.Boolean(
string="Move to Top", help="Change the pop up position to top")
is_change_pop_up_position_bottom = fields.Boolean(
string="Move to Bottom", help="Change the pop up position to bottom")
pop_up_position_top = fields.Selection([
('top_left', 'Top Left'), ('top_right', 'Top Right'),
('top_center', 'Top Center'),
('full_top_container', 'Full Top Container')],
help="Change the pop up position on top",
string="Pop Up Position on Top", )
pop_up_position_bottom = fields.Selection([
('bottom_left', 'Bottom Left'), ('bottom_right', 'Bottom Right'),
('bottom_center', 'Bottom Center'),
('full_bottom_container', 'Full Bottom Container')],
help="Change the pop up position on bottom",
string="Pop Up Position on Bottom", )
accept_btn_txt = fields.Char(string="Accept button text",
help="Name for the Accept button")
reject_btn_txt = fields.Char(string="Reject button text",
help="Name for the reject button")
cookie_policy_btn = fields.Char(string="Read button text",
help="Name for Cookie Policy")
@api.model
def _get_color(self, value):
"""Get the color code corresponding to the given value."""
return OBJECT_COLOR.get(str(value),
"#FFFFFF") # default to white if not found
@api.onchange('is_change_pop_up_position_bottom')
def _onchange_is_change_pop_up_position_bottom(self):
if(self.pop_up_position_top):
self.pop_up_position_top = ""
@api.onchange('is_change_pop_up_position_top')
def _onchange_is_change_pop_up_position_top(self):
if (self.pop_up_position_bottom):
self.pop_up_position_bottom = ""

32
cookie_consent_manager/models/res_config_settings.py

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C)2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Ayana KP @cybrosys(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
"""This class represents the user can select the cookie template """
_inherit = 'res.config.settings'
cookie_template_id = fields.Many2one(
'cookie.information', string="Cookie Template",
config_parameter='cookie_consent_manager.cookie_template_id',
help="Cookie Template")

2
cookie_consent_manager/security/ir.model.access.csv

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_cookie_information_model,access.cookie.information.model,model_cookie_information,base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_cookie_information_model access.cookie.information.model model_cookie_information base.group_system 1 1 1 1

BIN
cookie_consent_manager/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
cookie_consent_manager/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
cookie_consent_manager/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
cookie_consent_manager/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
cookie_consent_manager/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
cookie_consent_manager/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
cookie_consent_manager/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
cookie_consent_manager/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cookie_consent_manager/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cookie_consent_manager/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
cookie_consent_manager/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
cookie_consent_manager/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
cookie_consent_manager/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
cookie_consent_manager/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
cookie_consent_manager/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
cookie_consent_manager/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
cookie_consent_manager/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cookie_consent_manager/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
cookie_consent_manager/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cookie_consent_manager/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cookie_consent_manager/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cookie_consent_manager/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
cookie_consent_manager/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cookie_consent_manager/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cookie_consent_manager/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
cookie_consent_manager/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

BIN
cookie_consent_manager/static/description/assets/misc/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
cookie_consent_manager/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
cookie_consent_manager/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
cookie_consent_manager/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
cookie_consent_manager/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
cookie_consent_manager/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
cookie_consent_manager/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
cookie_consent_manager/static/description/assets/modules/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
cookie_consent_manager/static/description/assets/modules/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
cookie_consent_manager/static/description/assets/modules/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
cookie_consent_manager/static/description/assets/modules/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
cookie_consent_manager/static/description/assets/modules/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
cookie_consent_manager/static/description/assets/modules/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
cookie_consent_manager/static/description/assets/screenshots/v15-hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
cookie_consent_manager/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
cookie_consent_manager/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

613
cookie_consent_manager/static/description/index.html

@ -0,0 +1,613 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="./assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
<div
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Cookie Consent Manager</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
Cookie Consent Manager Can Create Their Own Cookies
Templates</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/v15-hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="./assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="./assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div>
<img src="./assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
This module helps to customize your own template for
cookie.
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-start"
style="margin-top: 40px; margin-bottom: 40px">
<img src="./assets/misc/check-box.png" class="mr-2"/>
<div>
<span
style="display: block; font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Create a New Design for Cookie Settings.</span>
<span style="display: block; font-family: 'Montserrat', sans-serif; font-size: 12px;"> </span>
</div>
</div>
<div class="d-flex align-items-start"
style="margin-top: 30px; margin-bottom: 30px">
<img src="./assets/misc/check-box.png" class="mr-2"/>
<div>
<span
style="display: block; font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Customize cookie design according to your taste</span>
<span style="display: block; font-family: 'Montserrat', sans-serif; font-size: 14px;"> </span>
</div>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h4 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Cookie Settings on the Configuration</h4>
<img src="./assets/screenshots/1.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h4 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Setting the Cookie position, Color and Button name also.</h4>
<img src="./assets/screenshots/2.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h4 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Choose the Template from Settings.</h4>
<img src="./assets/screenshots/4.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h4 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
We can change the Cookie Position to Top and change color.</h4>
<img src="./assets/screenshots/5.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h4 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
We can change the Cookie position to the Bottom and change
color.</h4>
<img src="./assets/screenshots/6.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related
Products
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/website_product_attachments/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/product_visibility_website/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/2.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/website_pdf_preview_snippet/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-https://apps.odoo.com/apps/modules/15.0/wishlist_product_website_backend/responsive center-block"
style="border-radius: 0px;"
src="assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/wishlist_product_website_backend/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/website_product_publish/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/5.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/15.0/product_brand_ecommerce/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/6.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="width:35px; color:#000"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span>
</a> <a class="carousel-control-next" href="#demo1"
data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right" style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/education-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/service-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</div>
<!-- END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="./assets/misc/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="./assets/misc/support.png" height="48" width="48"
style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need help?
Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="./assets/misc/whatsapp.png" height="52" width="52"
style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068
27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="./assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
<!-- END OF SUPPORT -->

67
cookie_consent_manager/views/cookie_information_views.xml

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--Cookie information action-->
<record id="cookie_information_action" model="ir.actions.act_window">
<field name="name">Cookie Information</field>
<field name="res_model">cookie.information</field>
<field name="view_mode">tree,form</field>
</record>
<!--Cookie information form view-->
<record id="cookie_information_view_form" model="ir.ui.view">
<field name="name">cookie.information.view.form
</field>
<field name="model">cookie.information</field>
<field name="arch" type="xml">
<form string="Cookie">
<sheet>
<div class="oe_title">
<label for="template_title"/>
<h1>
<field name="template_title"/>
</h1>
</div>
<group>
<group>
<field name="pop_up_text"/>
<field name="accept_btn_txt"/>
<field name="reject_btn_txt"/>
<field name="cookie_policy_btn"/>
<field name="cookie_color" widget="color_picker"/>
</group>
<group>
<field name="is_change_pop_up_position"/>
<field name="is_change_pop_up_position_top"
attrs="{'invisible': ['|',('is_change_pop_up_position', '=', False),('is_change_pop_up_position_bottom', '=', True)]}"/>
<field name="is_change_pop_up_position_bottom"
attrs="{'invisible': ['|',('is_change_pop_up_position', '=', False),('is_change_pop_up_position_top', '=', True)]}"/>
<field name="pop_up_position_bottom"
attrs="{'invisible': ['|',('is_change_pop_up_position', '=', False),('is_change_pop_up_position_top', '!=', False)]}"/>
<field name="pop_up_position_top"
attrs="{'invisible': ['|',('is_change_pop_up_position', '=', False),('is_change_pop_up_position_bottom', '!=', False)]}"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!--Cookie information tree view-->
<record id="cookie_information_view_tree" model="ir.ui.view">
<field name="name">cookie.information.view.tree
</field>
<field name="model">cookie.information</field>
<field name="arch" type="xml">
<tree>
<field name="template_title"/>
<field name="pop_up_text"/>
<field name="cookie_color"/>
<field name="is_change_pop_up_position"/>
</tree>
</field>
</record>
<!--Menu item for the cookie settings-->
<menuitem name="Cookie Settings"
id="cookie_information_menu"
action="cookie_information_action"
parent="website.menu_website_global_configuration"
groups="base.group_system"/>
</odoo>

27
cookie_consent_manager/views/res_config_settings_views.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!--Cookie settings on the configuration-->
<record id="res_config_settings_view_form"
model="ir.ui.view">
<field name="name">
res.config.settings.view.form.inherit.cookie.consent.manager
</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="20"/>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='website_cookies_bar_setting']"
position="after">
<div class="col-12 col-lg-6 o_setting_box"
attrs="{'invisible': [('website_cookies_bar', '=', False)]}">
<div class="o_setting_left_pane"/>
<div class="o_setting_right_pane">
<label for="cookie_template_id"/>
<br/>
<field name="cookie_template_id"/>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

432
cookie_consent_manager/views/website_cookie_bar_templates.xml

@ -0,0 +1,432 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Inherits website cookie template -->
<template id="cookies_bar_template" inherit_id="website.cookies_bar"
name="Cookies Bar Template">
<xpath expr="//div[@id='website_cookies_bar']" position="replace">
<t t-set="user_selected"
t-value="request.env['ir.config_parameter'].sudo().get_param('cookie_consent_manager.cookie_template_id')"/>
<t t-set="cookie_template_id"
t-value="request.env['cookie.information'].sudo().browse(int(user_selected))"/>
<div id="website_cookies_bar"
t-if="website.cookies_bar"
class="s_popup o_snippet_invisible o_no_save"
data-name="Cookies Bar" data-vcss="001" data-invisible="1">
<div class="modal s_popup_bottom s_popup_no_backdrop o_cookies_discrete"
data-show-after="500"
data-display="afterDelay"
data-consents-duration="999"
data-bs-focus="false"
data-bs-backdrop="false"
data-bs-keyboard="false"
tabindex="-1"
role="dialog">
<div class="modal-dialog d-flex s_popup_size_full">
<!--Check the user wants to change the popup position-->
<t t-if="cookie_template_id.is_change_pop_up_position">
<!-- Check the popup position is move to bottom-->
<t t-if="cookie_template_id.is_change_pop_up_position_bottom">
<!-- Check the popup position is move to bottom left-->
<t t-if="cookie_template_id.pop_up_position_bottom == 'bottom_left'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; margin-left: 0px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!-- Check the popup position is move to bottom right-->
<t t-if="cookie_template_id.pop_up_position_bottom == 'bottom_right'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; margin-left: 1000px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="js_close_popup o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2 o_cookies_bar_text_button_essential">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!-- Check the popup position is move to bottom center-->
<t t-if="cookie_template_id.pop_up_position_bottom == 'bottom_center'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; margin-left: 500px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="js_close_popup o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!-- Check the popup position is move to full bottom-->
<t t-if="cookie_template_id.pop_up_position_bottom == 'full_bottom_container'">
<div class="modal-content oe_structure"
t-att-style="'width: 100%; height:100px; margin-right: 0px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
</t>
<!--Check the popup position is move to top-->
<t t-if="cookie_template_id.pop_up_position_top">
<!-- Check the popup position is move to top left-->
<t t-if="cookie_template_id.pop_up_position_top == 'top_left'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; height:1000px; margin-right: 0px; top: 30px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-out="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-out="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!--Check the popup position is move to top right-->
<t t-if="cookie_template_id.pop_up_position_top == 'top_right'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; height:1000px; margin-left: 1000px; top: 30px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!-- Check the popup position is move to top center-->
<t t-if="cookie_template_id.pop_up_position_top == 'top_center'">
<div class="modal-content oe_structure"
t-att-style="'width: 900px; height:1000px; margin-left: 500px; top: 30px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
<!-- Check the popup position is move to full top-->
<t t-if="cookie_template_id.pop_up_position_top == 'full_top_container'">
<div class="modal-content oe_structure"
t-att-style="'width: 100%; height:1000px; margin-right: 0px;'">
<!-- Keep this section equivalent to the rendering of the `website.cookies_bar.discrete` client template -->
<section
class="o_colored_level o_cc o_cc1"
t-att-style="'background-color: %s !important; height: 100px;'% cookie_template_id._get_color(cookie_template_id.cookie_color)">
<div class="container" style="display: flex; flex-direction: column; align-items: center;">
<div class="row">
<center>
<p>
<span class="pe-1">
<t t-esc="cookie_template_id.pop_up_text"/>
</span>
<a href="/cookie-policy"
class="o_cookies_bar_text_policy btn btn-link btn-sm px-0">
<t t-esc="cookie_template_id.cookie_policy_btn"/>
</a>
</p>
</center>
</div>
<div class="row">
<div class="btn-group"
role="group" style="gap: 10px;">
<a href="#"
id="cookies-consent-essential"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm px-2">
Only essentials
</a>
<a href="#"
id="cookies-consent-all"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.accept_btn_txt"/>
</a>
<a href="#"
id="cookies-close"
role="button"
class="js_close_popup btn btn-outline-primary rounded-circle btn-sm">
<t t-esc="cookie_template_id.reject_btn_txt"/>
</a>
</div>
</div>
</div>
</section>
</div>
</t>
</t>
</t>
</div>
</div>
</div>
</xpath>
</template>
</odoo>
Loading…
Cancel
Save