From 56f4b44a5a6ae6fc2d3d2b0a6b6b53df44402d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 2 Sep 2022 17:08:37 +0200 Subject: [PATCH] [IMP] contract: Use _prepare_home_portal_values() function. --- contract/__manifest__.py | 2 +- contract/controllers/main.py | 21 +++++++++++++------- contract/views/contract_portal_templates.xml | 4 ++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/contract/__manifest__.py b/contract/__manifest__.py index eeb43101f..ad4213990 100644 --- a/contract/__manifest__.py +++ b/contract/__manifest__.py @@ -11,7 +11,7 @@ { "name": "Recurring - Contracts Management", - "version": "15.0.1.4.0", + "version": "15.0.1.5.0", "category": "Contract Management", "license": "AGPL-3", "author": "Tecnativa, ACSONE SA/NV, Odoo Community Association (OCA)", diff --git a/contract/controllers/main.py b/contract/controllers/main.py index 9c664709b..844444218 100644 --- a/contract/controllers/main.py +++ b/contract/controllers/main.py @@ -1,4 +1,4 @@ -# Copyright 2020 Tecnativa - Víctor Martínez +# Copyright 2020-2022 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import _, http @@ -9,12 +9,16 @@ from odoo.addons.portal.controllers.portal import CustomerPortal, pager as porta class PortalContract(CustomerPortal): - def _prepare_portal_layout_values(self): - values = super()._prepare_portal_layout_values() - model = "contract.contract" - values["contract_count"] = 0 - if request.env[model].check_access_rights("read", raise_exception=False): - values["contract_count"] = request.env[model].search_count([]) + def _prepare_home_portal_values(self, counters): + values = super()._prepare_home_portal_values(counters) + if "contract_count" in counters: + contract_model = request.env["contract.contract"] + contract_count = ( + contract_model.search_count([]) + if contract_model.check_access_rights("read", raise_exception=False) + else 0 + ) + values["contract_count"] = contract_count return values def _contract_get_page_view_values(self, contract, access_token, **kwargs): @@ -40,6 +44,9 @@ class PortalContract(CustomerPortal): ): values = self._prepare_portal_layout_values() contract_obj = request.env["contract.contract"] + # Avoid error if the user does not have access. + if not contract_obj.check_access_rights("read", raise_exception=False): + return request.redirect("/my") domain = self._get_filter_domain(kw) searchbar_sortings = { "date": {"label": _("Date"), "order": "recurring_next_date desc"}, diff --git a/contract/views/contract_portal_templates.xml b/contract/views/contract_portal_templates.xml index 1cb78c75e..43b9933c2 100644 --- a/contract/views/contract_portal_templates.xml +++ b/contract/views/contract_portal_templates.xml @@ -31,10 +31,10 @@ priority="30" > - + Contracts - +