diff --git a/config/settings/base.py b/config/settings/base.py index 6fba91c29..3cb9ed001 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -195,6 +195,7 @@ "envergo.utils.context_processors.settings_context", "envergo.utils.context_processors.multi_sites_context", "envergo.analytics.context_processors.analytics", + "envergo.analytics.context_processors.visitor_id", "envergo.evaluations.context_processors.request_eval_context", ], }, diff --git a/config/tests/test_urls.py b/config/tests/test_urls.py index 74e16e842..2fbb8afd9 100644 --- a/config/tests/test_urls.py +++ b/config/tests/test_urls.py @@ -21,8 +21,6 @@ def site() -> Site: "contact_us", "accessibility", "stats", - "privacy", - "terms_of_service", "legal_mentions", "moulinette_home", "moulinette_result", @@ -34,6 +32,8 @@ def site() -> Site: AMENAGEMENT_URLS = [ # "/avis", + "privacy", + "terms_of_service", "zone_map", "2150_debug", "faq", diff --git a/envergo/analytics/context_processors.py b/envergo/analytics/context_processors.py index 0eff13584..76aa1b81a 100644 --- a/envergo/analytics/context_processors.py +++ b/envergo/analytics/context_processors.py @@ -106,3 +106,12 @@ def analytics(request): return { "matomo_dimensions": matomo_dimensions, } + + +def visitor_id(request): + """Add the visitor id to the templates. + + Mostly useful for legal mentions and privacy static pages. + """ + visitor_id = request.COOKIES.get(VISITOR_COOKIE_NAME, "") + return {"visitor_id": visitor_id} diff --git a/envergo/analytics/views.py b/envergo/analytics/views.py index b928c34b5..68221af43 100644 --- a/envergo/analytics/views.py +++ b/envergo/analytics/views.py @@ -26,6 +26,15 @@ class DisableVisitorCookie(RedirectView): pattern_name = "legal_mentions" + def get_redirect_url(self, *args, **kwargs): + """Redirect to the previous page. + + If somehow the referer is missing, we fallback to the default redirect url. + """ + referer = self.request.META.get("HTTP_REFERER") + redirect_url = super().get_redirect_url(*args, **kwargs) + return referer or redirect_url + def post(self, request, *args, **kwargs): response = super().post(request, *args, **kwargs) set_visitor_id_cookie(response, "") diff --git a/envergo/pages/urls_amenagement.py b/envergo/pages/urls_amenagement.py index 4892c5d43..b6f88f108 100644 --- a/envergo/pages/urls_amenagement.py +++ b/envergo/pages/urls_amenagement.py @@ -7,19 +7,25 @@ AvailabilityInfo, GeometriciansView, HomeAmenagementView, - LegalMentionsView, NewsFeed, NewsView, Outlinks, - PrivacyView, TermsOfServiceView, ) urlpatterns = [ path("", HomeAmenagementView.as_view(), name="home"), - path(_("legal-mentions/"), LegalMentionsView.as_view(), name="legal_mentions"), + path( + _("legal-mentions/"), + TemplateView.as_view(template_name="amenagement/pages/legal_mentions.html"), + name="legal_mentions", + ), path(_("tos/"), TermsOfServiceView.as_view(), name="terms_of_service"), - path(_("privacy/"), PrivacyView.as_view(), name="privacy"), + path( + _("privacy/"), + TemplateView.as_view(template_name="pages/privacy.html"), + name="privacy", + ), path( "stats/", RedirectView.as_view(url="https://sites.google.com/view/stats-envergo/"), diff --git a/envergo/pages/urls_haie.py b/envergo/pages/urls_haie.py index 0e67de32e..e693c066b 100644 --- a/envergo/pages/urls_haie.py +++ b/envergo/pages/urls_haie.py @@ -2,19 +2,15 @@ from django.utils.translation import gettext_lazy as _ from django.views.generic import RedirectView, TemplateView -from envergo.pages.views import ( - HomeHaieView, - LegalMentionsView, - Outlinks, - PrivacyView, - TermsOfServiceView, -) +from envergo.pages.views import HomeHaieView, Outlinks urlpatterns = [ path("", HomeHaieView.as_view(), name="home"), - path(_("legal-mentions/"), LegalMentionsView.as_view(), name="legal_mentions"), - path(_("tos/"), TermsOfServiceView.as_view(), name="terms_of_service"), - path(_("privacy/"), PrivacyView.as_view(), name="privacy"), + path( + _("legal-mentions/"), + TemplateView.as_view(template_name="haie/pages/legal_mentions.html"), + name="legal_mentions", + ), path( "stats/", RedirectView.as_view(url="https://sites.google.com/view/stats-envergo/"), diff --git a/envergo/pages/views.py b/envergo/pages/views.py index 24b6bc8d7..98dafdc21 100644 --- a/envergo/pages/views.py +++ b/envergo/pages/views.py @@ -169,24 +169,10 @@ def get_context_data(self, **kwargs): return context -class LegalMentionsView(TemplateView): - template_name = "pages/legal_mentions.html" - - class TermsOfServiceView(TemplateView): template_name = "pages/terms_of_service.html" -class PrivacyView(TemplateView): - template_name = "pages/privacy.html" - - def get_context_data(self, **kwargs): - visitor_id = self.request.COOKIES.get(settings.VISITOR_COOKIE_NAME, "") - context = super().get_context_data(**kwargs) - context["visitor_id"] = visitor_id - return context - - class Outlinks(TemplateView): template_name = "pages/outlinks.html" diff --git a/envergo/templates/pages/legal_mentions.html b/envergo/templates/amenagement/pages/legal_mentions.html similarity index 100% rename from envergo/templates/pages/legal_mentions.html rename to envergo/templates/amenagement/pages/legal_mentions.html diff --git a/envergo/templates/haie/pages/legal_mentions.html b/envergo/templates/haie/pages/legal_mentions.html new file mode 100644 index 000000000..d8c41ecfc --- /dev/null +++ b/envergo/templates/haie/pages/legal_mentions.html @@ -0,0 +1,134 @@ +{% extends 'base.html' %} + +{% block title %}{{ _("Legal mentions") }}{% endblock %} + +{% block top-bar %}{% endblock %} + +{% block article %} +
+ Le Guichet unique de la haie est édité par la Fabrique Numérique du + Ministère de la transition écologique, de l’énergie, du climat et de la prévention des risques (Grande Arche de la Défense, 92055 La Défense CEDEX), avec l'appui de l'incubateur de services numériques Beta.gouv.fr de la direction interministérielle du numérique + (DINUM). +
+ +M. Philippe MAZENC, directeur général de l'aménagement, du logement et de la nature (DGALN).
+ +Scalingo SAS, 15 avenue du Rhin, 67100 Strasbourg, France.
+ ++ Le Guichet unique de la haie traite certaines données à caractère personnel conformément à la réglementation prévue par le règlement (UE) n° 2016/679 dit « RGPD » et la loi n° 78-17 relative à l’informatique, aux fichiers et aux libertés. +
+ ++ Seules sont recueillies les données expressément nécessaires au bon + fonctionnement du service et au respect des obligations légales de l'éditeur. +
+ ++ Les seules données recueillies sont celles fournies directement par les usagers + dans le contexte de l'utilisation du service. +
+ +Vous disposez :
+ +Pour les exercer, contactez-nous à : contact@haie.beta.gouv.fr
+ ++ Puisque ce sont des droits personnels, nous ne traiterons votre demande que si nous sommes en mesure de vous identifier. Dans le cas où nous ne parvenons pas à vous identifier, nous pouvons être amenés à vous demander une preuve de votre identité. +
+ ++ Pour vous aider dans votre démarche, vous trouverez un modèle de courrier élaboré par la CNIL ici : https://www.cnil.fr/fr/modele/courrier/exercer-son-droit-dacces +
+ ++ Nous nous engageons à vous répondre dans un délai raisonnable qui ne saurait dépasser un mois à compter de la réception de votre demande. +
+ ++ Les co-responsables du traitement de vos données à caractère personnel sont la direction générale de l'aménagement, du logement et de la nature au sein du ministère en charge de l’environnement, et la direction générale de la performance économique et environnementale des entreprises du ministère en charge de l’agriculture. +
+ ++ Un cookie est un fichier déposé sur votre terminal lors de la visite d’un site. Il a pour but de collecter des informations relatives à votre navigation et de vous adresser des services adaptés à votre terminal (ordinateur, mobile ou tablette). +
++ En application de l’article 5(3) de la directive 2002/58/CE modifiée concernant le traitement des données à caractère personnel et la protection de la vie privée dans le secteur des communications électroniques, transposée à l’article 82 de la loi n° 78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et aux libertés, les traceurs ou cookies suivent deux régimes distincts : +
++ Ce consentement de la personne concernée pour une ou plusieurs finalités spécifiques constitue une base légale au sens du RGPD et doit être entendu au sens de l'article 6-1 a) du RGPD et à la libre circulation des données. +
+ +Cookies recensés sur le Guichet unique de la haie :
+ ++ MATOMO une solution de mesure d’audience dans sa version anonymisée et exemptée de consentement et validée par la CNIL. +
+Même si le suivi est anonyme, vous pouvez vous opposer au suivi de votre navigation sur ce site web.
+ +Vous pouvez choisir de ne pas transmettre d'informations à matomo :
+ + + + + + {% if visitor_id %} ++ Nous réalisons également un suivi statistique de certaines actions de navigation (par exemple les étapes d’utilisation du simulateur ou l’utilisation de l’outil de saisie du linéaire de haie) qui sont stockées de manière anonyme, afin de mieux comprendre l'utilisation du service. +
+ ++ Vous avez la possibilité de refuser que les événements dont vous êtes à + l'origine soient pris en compte. Votre refus sera à renouveler tous les 13 mois, durée de vie maximum du cookie. +
+ + + {% endif %} + ++ Quelques icônes issues du projet Remix Icon par Remix Design. +
+ +{% endblock %} diff --git a/envergo/templates/pages/privacy.html b/envergo/templates/pages/privacy.html index e1d4601a7..fed94444a 100644 --- a/envergo/templates/pages/privacy.html +++ b/envergo/templates/pages/privacy.html @@ -297,7 +297,7 @@- Nous réalisons également un suivi statistique de certaines actions de navigation (e.g. utilisation du simulateur) qui sont stockées localement et de manière anonyme, afin de mieux comprendre l'utilisation du service. + Nous réalisons également un suivi statistique de certaines actions de navigation (e.g. utilisation du simulateur) qui sont stockées de manière anonyme, afin de mieux comprendre l'utilisation du service.
@@ -316,8 +316,5 @@
CRISP, un agent conversationnel de type chatbot dans une configuration ayant pour finalité exclusive de permettre ou faciliter la communication par voie électronique.
-- SENTRY un outil de monitoring qui permet de faire remonter les bogues dans une configuration auto-hébergée. -
{% endblock %}