From 7efccacb87562a860fe9fd502ed3237a07d6c8f8 Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Thu, 6 Feb 2025 08:37:28 +0100 Subject: [PATCH 1/5] [ADD] add CGU link in footer --- templates/portal_layout.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/portal_layout.xml b/templates/portal_layout.xml index 247c337..a836a3e 100644 --- a/templates/portal_layout.xml +++ b/templates/portal_layout.xml @@ -66,7 +66,7 @@ title="Enercoop Midi Pyrénées" >Enercoop Midi-Pyrénées</a> afin de faciliter l’autoconsommation collective d’électricité renouvelable | <a href="/mentions-legales" - >Mentions légales</a> + >Mentions légales</a> | <a href="/web/cgu">CGU</a> </p> </div> </xpath> -- GitLab From f88b9e01f072f351d17dad39ac6b4ae6b7ccf921 Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Mon, 17 Feb 2025 13:53:47 +0100 Subject: [PATCH 2/5] [UPD] check on each routes --- controllers/__init__.py | 1 + controllers/main.py | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/controllers/__init__.py b/controllers/__init__.py index 12a7e52..24d4d42 100644 --- a/controllers/__init__.py +++ b/controllers/__init__.py @@ -1 +1,2 @@ from . import main +from odoo.http import request diff --git a/controllers/main.py b/controllers/main.py index daed2f0..554a3a0 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -9,12 +9,25 @@ from odoo.addons.portal.controllers.portal import CustomerPortal as CustomerPort from odoo.addons.portal.controllers.web import Home as Home from odoo.addons.web.controllers.utils import is_user_internal +def cgu_check(): + ret = False + s = request.session + user = request.env["res.users"].sudo().browse(s.uid) + if user and not user.cgu_accepted_date: + ret = request.redirect("/web/cgu") + return ret class Home(Home): @http.route() def index(self, *args, **kw): + if request.session.uid and not is_user_internal(request.session.uid): return request.redirect_query("/operations", query=request.params) + + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted + return super().index(*args, **kw) def _login_redirect(self, uid, redirect=None): @@ -99,6 +112,11 @@ class CustomerPortal(CustomerPortal): @http.route(["/infos"], type="http", auth="user", website=True, sitemap=True) def infos(self, page=1, **kwargs): + + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted + values = { "page_name": "infos", "page_breadcrumbs": "Informations", @@ -109,18 +127,33 @@ class CustomerPortal(CustomerPortal): ["/mentions-legales"], type="http", auth="user", website=True, sitemap=True ) def legal(self, page=1, **kwargs): + + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted + values = { "page_name": "legal", "page_breadcrumbs": "Mentions légales", } return request.render("oacc_portal.legal", values) + @http.route(["/operations"], type="http", auth="user", website=True, sitemap=True) def view_all_operations_page(self, page=1, **kwargs): """ Retourne la liste de toutes les opérations dans lesquelles l'utilisateur ou sa société sont engagés """ + # s = request.session + # user = request.env["res.users"].sudo().browse(s.uid) + # if user and not user.cgu_accepted_date: + # return request.redirect("/web/cgu") + + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted + values = self._prepare_portal_layout_values() values.update(self._get_role()) @@ -212,6 +245,9 @@ class CustomerPortal(CustomerPortal): website=True, ) def operation(self, operation, **kw): + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted render_values = self._get_operation_values(operation) return request.render("oacc_portal.operation_main", render_values) @@ -222,6 +258,9 @@ class CustomerPortal(CustomerPortal): website=True, ) def contact(self, operation, **kw): + cgu_not_accepted = cgu_check() + if cgu_not_accepted: + return cgu_not_accepted render_values = {} render_values.update(self._get_role(operation)) render_values.update({"page_name": "contact", "page_breadcrumbs": "Contact"}) -- GitLab From 7791a5cc8379f936ef1aa802103e38271465a701 Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Mon, 17 Feb 2025 15:52:57 +0100 Subject: [PATCH 3/5] [UPD] use dispatch --- controllers/main.py | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/controllers/main.py b/controllers/main.py index 554a3a0..75e228e 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -9,14 +9,6 @@ from odoo.addons.portal.controllers.portal import CustomerPortal as CustomerPort from odoo.addons.portal.controllers.web import Home as Home from odoo.addons.web.controllers.utils import is_user_internal -def cgu_check(): - ret = False - s = request.session - user = request.env["res.users"].sudo().browse(s.uid) - if user and not user.cgu_accepted_date: - ret = request.redirect("/web/cgu") - return ret - class Home(Home): @http.route() def index(self, *args, **kw): @@ -24,10 +16,6 @@ class Home(Home): if request.session.uid and not is_user_internal(request.session.uid): return request.redirect_query("/operations", query=request.params) - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted - return super().index(*args, **kw) def _login_redirect(self, uid, redirect=None): @@ -113,10 +101,6 @@ class CustomerPortal(CustomerPortal): @http.route(["/infos"], type="http", auth="user", website=True, sitemap=True) def infos(self, page=1, **kwargs): - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted - values = { "page_name": "infos", "page_breadcrumbs": "Informations", @@ -128,10 +112,6 @@ class CustomerPortal(CustomerPortal): ) def legal(self, page=1, **kwargs): - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted - values = { "page_name": "legal", "page_breadcrumbs": "Mentions légales", @@ -145,14 +125,6 @@ class CustomerPortal(CustomerPortal): Retourne la liste de toutes les opérations dans lesquelles l'utilisateur ou sa société sont engagés """ - # s = request.session - # user = request.env["res.users"].sudo().browse(s.uid) - # if user and not user.cgu_accepted_date: - # return request.redirect("/web/cgu") - - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted values = self._prepare_portal_layout_values() values.update(self._get_role()) @@ -245,9 +217,6 @@ class CustomerPortal(CustomerPortal): website=True, ) def operation(self, operation, **kw): - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted render_values = self._get_operation_values(operation) return request.render("oacc_portal.operation_main", render_values) @@ -258,9 +227,6 @@ class CustomerPortal(CustomerPortal): website=True, ) def contact(self, operation, **kw): - cgu_not_accepted = cgu_check() - if cgu_not_accepted: - return cgu_not_accepted render_values = {} render_values.update(self._get_role(operation)) render_values.update({"page_name": "contact", "page_breadcrumbs": "Contact"}) -- GitLab From 5a7af36fb68517017e849a42916bba0b736abe6e Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Mon, 17 Feb 2025 15:58:43 +0100 Subject: [PATCH 4/5] [UPD] pre commit --- controllers/main.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/controllers/main.py b/controllers/main.py index 75e228e..0b559e1 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -9,10 +9,10 @@ from odoo.addons.portal.controllers.portal import CustomerPortal as CustomerPort from odoo.addons.portal.controllers.web import Home as Home from odoo.addons.web.controllers.utils import is_user_internal + class Home(Home): @http.route() def index(self, *args, **kw): - if request.session.uid and not is_user_internal(request.session.uid): return request.redirect_query("/operations", query=request.params) @@ -100,7 +100,6 @@ class CustomerPortal(CustomerPortal): @http.route(["/infos"], type="http", auth="user", website=True, sitemap=True) def infos(self, page=1, **kwargs): - values = { "page_name": "infos", "page_breadcrumbs": "Informations", @@ -111,14 +110,12 @@ class CustomerPortal(CustomerPortal): ["/mentions-legales"], type="http", auth="user", website=True, sitemap=True ) def legal(self, page=1, **kwargs): - values = { "page_name": "legal", "page_breadcrumbs": "Mentions légales", } return request.render("oacc_portal.legal", values) - @http.route(["/operations"], type="http", auth="user", website=True, sitemap=True) def view_all_operations_page(self, page=1, **kwargs): """ -- GitLab From 73516b3cf8508b8776376703cb90f4a28934496f Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Mon, 17 Feb 2025 15:59:54 +0100 Subject: [PATCH 5/5] [UPD] pre commit --- controllers/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/controllers/__init__.py b/controllers/__init__.py index 24d4d42..12a7e52 100644 --- a/controllers/__init__.py +++ b/controllers/__init__.py @@ -1,2 +1 @@ from . import main -from odoo.http import request -- GitLab