Your project description goes here
Project description
django-cookie-monster
This package gives you two versions of a cookie banner. The simple one is basically just a hint to inform users that you are using cookies. The group version let's your users decide which cookies he needs.
Quickstart
Install django-cookie-monster::
pip install django-cookie-monster
Add it to your INSTALLED_APPS
:
INSTALLED_APPS = (
...
'cookie_monster',
...
)
Add a type and data property to all script tags that store any cookies.
<!-- before -->
<script>// This is my script</script>
<!-- after -->
<script type="text/plain" data-cookieconsent="the_ID_of_my_group">// This is my script</script>
Settings
Overwrite strings in your settings file. You will find a complete reference below.
COOKIE_MONSTER = {
'banner': {
'title': 'My Cookie Banner Title',
}
}
To switch from standard to group mode you need to specify a list of setting groups.
COOKIE_MONSTER = {
'cookie_groups': {
'rows': [
'Name',
'Provider',
'Purpose',
],
'groups': [
{
'title': 'Necessary',
'required': True,
'cookies': [
{
'id': 'application',
'rows': [
'Language',
'example.com',
'site language',
],
},
],
},
{
'title': 'Marketing',
'required': False,
'cookies': [
{
'id': 'GTM',
'rows': [
'Google Tag Manager',
'Google.com',
'tracking cookie',
],
},
],
},
],
},
}
This is an example of a fully customised version of a cookie banner:
COOKIE_MONSTER = {
'banner': {
'title': 'My Cookie Banner Title',
'text': 'This is my custom text with a dynamic <a href="https://example.com/">link</a> to another page.',
'policy_link': 'contents.utils.my_callable_that_returns_a_dynamic_link_to_the_privacy_page',
'buttons': {
'confirm': {'label': 'Accept all cookies'},
'toggle': {'label': 'Toggle settings'},
'accept_all_cookies': {'label': 'Accept all Cookies'},
'accept_all_group_cookies': {'label': 'Accept {groupTitle} Cookies'}
},
},
'accordion_title': '{groupTitle} ({amount})',
'cookie': {
'samesite': 'Lax'
},
'custom_theme': True,
'cookie_groups': {
'rows': [
'Name',
'Provider',
'Purpose',
],
'groups': [
{
'title': 'Necessary',
'required': True,
'cookies': [
{
'id': 'application',
'rows': [
'Language',
'example.com',
'site language',
],
},
],
},
{
'title': 'Marketing',
'required': False,
'cookies': [
{
'id': 'GTM',
'rows': [
'Google Tag Manager',
'Google.com',
'tracking cookie',
],
},
],
},
],
},
}
Contribute
Installation
To install the frontend you will need to run:
npm i
Building frontend
The frontend can be built via:
npm run build
Unit test
You can unit test the frontend code with:
npm test
History
0.1.8 (2023-02-02) ++++++++++++++++++
- Add Django 4 compatibility
0.1.7 (2022-10-11) ++++++++++++++++++
- Add samesite configuration option
0.1.6 (2022-01-31) ++++++++++++++++++
- Simplify banner text to prevent fails
DEPRECATION WARNING:
- The setting variable
policy_link
was removed due to errors. Please handle any text/link combinations yourself.
0.1.5 (2021-02-15) ++++++++++++++++++
- Add plain html support for the groups labels
0.1.4 (2020-05-13) ++++++++++++++++++
- Improve backward compatibility of browsers
0.1.3 (2020-05-13) ++++++++++++++++++
- Fix translation issue in banner text
0.1.2 (2020-04-09) ++++++++++++++++++
- Bugfix
0.1.1 (2020-04-08) ++++++++++++++++++
- Bugfix
0.1.0 (2019-10-16) ++++++++++++++++++
- First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-cookie-monster-0.1.8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008dae3a9cef91afc490b019e25548bcb0caf12113b3e74ea285a4cd2eeda5d6 |
|
MD5 | 29d7f4603a586d55b3a51ff6775668d7 |
|
BLAKE2b-256 | 08d6fcdfc841c483f8e77483d82b6314900c30bb41106eaa86e18339b7f84a1d |