From b8fe404eae1e015d3b548a37a5cc7283a216ae43 Mon Sep 17 00:00:00 2001 From: "Lucas Perais (lpe)" Date: Wed, 29 Aug 2018 16:40:11 +0200 Subject: [PATCH] [FIX] project: portal should see projects only when he has tasks before this commit, on /my/tasks, in the filter dropdown, every project that had visibility = portal was displayed regardless of whether the portal user was a follower or not After this commit, we search project in a more clever manner OPW 1878187 closes #26615 --- addons/project/controllers/portal.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/project/controllers/portal.py b/addons/project/controllers/portal.py index 2e0f8528076..1ea74c36da4 100644 --- a/addons/project/controllers/portal.py +++ b/addons/project/controllers/portal.py @@ -104,7 +104,16 @@ class CustomerPortal(CustomerPortal): } # extends filterby criteria with project (criteria name is the project id) # Note: portal users can't view projects they don't follow - projects = request.env['project.project'].sudo().search([('privacy_visibility', '=', 'portal')]) + partner = request.env.user.partner_id + domain_projects = [ + '&', + ('privacy_visibility', '=', 'portal'), + '|', + ('message_partner_ids', 'child_of', [partner.commercial_partner_id.id]), + ('task_ids.message_partner_ids', 'child_of', [partner.commercial_partner_id.id]) + ] + + projects = request.env['project.project'].sudo().search(domain_projects) domain = [('project_id', 'in', projects.ids)] for proj in projects: searchbar_filters.update({