From 2f421aea9aad7f06d7becbf9a1ba42401ac2c381 Mon Sep 17 00:00:00 2001 From: mikaelGusse Date: Tue, 3 Sep 2024 12:52:08 +0300 Subject: [PATCH] Add small cookie notice to base.html --- assets/css/cookie-notice.css | 12 ++++++++++++ assets/js/cookie-notice.js | 10 ++++++++++ e2e_tests/helpers.py | 2 ++ e2e_tests/test_compare_submissions.py | 3 ++- locale/en/LC_MESSAGES/django.po | 4 ++++ locale/fi/LC_MESSAGES/django.po | 4 ++++ templates/base.html | 8 ++++++++ 7 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 assets/css/cookie-notice.css create mode 100644 assets/js/cookie-notice.js diff --git a/assets/css/cookie-notice.css b/assets/css/cookie-notice.css new file mode 100644 index 000000000..d328bacf6 --- /dev/null +++ b/assets/css/cookie-notice.css @@ -0,0 +1,12 @@ +.cookie-notice { + display: flex; + border-bottom: 1px solid #eee; + justify-content: space-between; + margin: auto; + padding: 10px; + gap: 10px; +} + +#cookie-notice-dismiss { + justify-content: flex-end; +} diff --git a/assets/js/cookie-notice.js b/assets/js/cookie-notice.js new file mode 100644 index 000000000..05846fccc --- /dev/null +++ b/assets/js/cookie-notice.js @@ -0,0 +1,10 @@ +document.getElementById('cookie-notice-dismiss').addEventListener('click', function() { + document.getElementById('cookie-notice').style.display = 'none'; + + document.cookie = "cookiesConfirmed=true; max-age=" + (60 * 60 * 24 * 365); +}); + + +if (document.cookie.includes('cookiesConfirmed')) { + document.getElementById('cookie-notice').style.display = 'none'; +} diff --git a/e2e_tests/helpers.py b/e2e_tests/helpers.py index d9deae6e5..4aa54ace6 100644 --- a/e2e_tests/helpers.py +++ b/e2e_tests/helpers.py @@ -12,6 +12,8 @@ def __init__(self, name: str, label: str = None): self.name = name self.label = label if label else name +def dismiss_cookie_notice(page: Page): + page.get_by_role("button", name="Close").click() def login(page: Page, username: str, password: str): page.goto("http://localhost:8000/?hl=en") diff --git a/e2e_tests/test_compare_submissions.py b/e2e_tests/test_compare_submissions.py index 5c61f1532..9cdf0e244 100644 --- a/e2e_tests/test_compare_submissions.py +++ b/e2e_tests/test_compare_submissions.py @@ -1,5 +1,5 @@ from playwright.sync_api import Page, expect -from e2e_tests.helpers import upload_submission, login, logout, File +from e2e_tests.helpers import upload_submission, login, logout, File, dismiss_cookie_notice def test_compare_submissions(page: Page) -> None: @@ -8,6 +8,7 @@ def test_compare_submissions(page: Page) -> None: green = "rgb(212, 237, 218)" red = "rgb(248, 215, 218)" login(page, "student", "student") + dismiss_cookie_notice(page) page.get_by_role("link", name="Def. Course Current DEF000 1.").click() upload_submission( page, diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 166eec9f1..1aa38c4e1 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -1927,6 +1927,10 @@ msgstr "signature title" msgid "LABEL_SMALL_PRINT" msgstr "small print" +#: templates/base.html +msgid "COOKIE_NOTICE_TEXT" +msgstr "This website uses cookies to improve functionality. You agree to our cookie policy by using this site." + #: diploma/models.py msgid "LABEL_POINT_LIMITS" msgstr "point limits" diff --git a/locale/fi/LC_MESSAGES/django.po b/locale/fi/LC_MESSAGES/django.po index 05a141b05..9cc9f170c 100644 --- a/locale/fi/LC_MESSAGES/django.po +++ b/locale/fi/LC_MESSAGES/django.po @@ -6060,3 +6060,7 @@ msgstr "Järjestelmätason saavutettavuusselostetta ei löytynyt." #: userprofile/views.py msgid "NO_SUPPORT_PAGE" msgstr "Ei tukisivua. Ota yhteys ylläpitäjään!" + +#: templates/base.html +msgid "COOKIE_NOTICE_TEXT" +msgstr "Tämä sivusto käyttää evästeitä toiminnalisuuden parantamiseksi. Käyttämällä sivustoa hyväksyt evästeiden käytön." diff --git a/templates/base.html b/templates/base.html index e393ed574..740eb3e35 100644 --- a/templates/base.html +++ b/templates/base.html @@ -74,6 +74,7 @@ + @@ -249,6 +250,12 @@

{% translate "SITE" %}