From 3f263f1eae2be3745f2e7e85cb2336497c36ada8 Mon Sep 17 00:00:00 2001 From: "Xavier BOL (xbo)" Date: Fri, 20 May 2022 11:30:47 +0200 Subject: [PATCH] [IMP] project: display milestone field in the tasks in Project Sharing Before this commit, the external collaborator cannot see in which milestone the tasks in the project are linked in the Project Sharing feature. This commit adds the milestone field in the Project Sharing to show the milestone linked to a task in the project shared. task-2829542 --- addons/project/data/project_demo.xml | 4 ++++ addons/project/models/project.py | 6 +++-- addons/project/models/res_config_settings.py | 2 +- .../project/views/project_sharing_views.xml | 23 +++++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/addons/project/data/project_demo.xml b/addons/project/data/project_demo.xml index c8b388a39b7..f8b0a6ddb0a 100644 --- a/addons/project/data/project_demo.xml +++ b/addons/project/data/project_demo.xml @@ -11,6 +11,10 @@ + + + + diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 82c5ec9b59b..1410b39ae0a 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -45,6 +45,9 @@ PROJECT_TASK_READABLE_FIELDS = { 'legend_done', 'user_ids', 'display_parent_task_button', + 'allow_milestones', + 'milestone_id', + 'has_late_and_unreached_milestone', } PROJECT_TASK_WRITABLE_FIELDS = { @@ -1138,7 +1141,6 @@ class Task(models.Model): has_late_and_unreached_milestone = fields.Boolean( compute='_compute_has_late_and_unreached_milestone', search='_search_has_late_and_unreached_milestone', - groups='project.group_project_milestone', ) # Task Dependencies fields @@ -2024,7 +2026,7 @@ class Task(models.Model): if all(not task.allow_milestones for task in self): self.has_late_and_unreached_milestone = False return - late_milestones = self.env['project.milestone']._search([ + late_milestones = self.env['project.milestone'].sudo()._search([ # sudo is needed for the portal user in Project Sharing. ('id', 'in', self.milestone_id.ids), ('is_reached', '=', False), ('deadline', '<', fields.Date.today()), diff --git a/addons/project/models/res_config_settings.py b/addons/project/models/res_config_settings.py index 0dd42cc8a62..93ebc05699a 100644 --- a/addons/project/models/res_config_settings.py +++ b/addons/project/models/res_config_settings.py @@ -14,7 +14,7 @@ class ResConfigSettings(models.TransientModel): group_project_stages = fields.Boolean("Project Stages", implied_group="project.group_project_stages") group_project_recurring_tasks = fields.Boolean("Recurring Tasks", implied_group="project.group_project_recurring_tasks") group_project_task_dependencies = fields.Boolean("Task Dependencies", implied_group="project.group_project_task_dependencies") - group_project_milestone = fields.Boolean('Milestones', implied_group='project.group_project_milestone') + group_project_milestone = fields.Boolean('Milestones', implied_group='project.group_project_milestone', group='base.group_portal,base.group_user') rating_status = fields.Selection( [('stage', 'Rating when changing stage'), ('periodic', 'Periodic rating') diff --git a/addons/project/views/project_sharing_views.xml b/addons/project/views/project_sharing_views.xml index a148174051b..f5d06ca7d48 100644 --- a/addons/project/views/project_sharing_views.xml +++ b/addons/project/views/project_sharing_views.xml @@ -44,6 +44,8 @@ + + @@ -56,6 +58,10 @@
+ +
+ +

@@ -119,10 +125,12 @@ + + @@ -179,6 +187,13 @@ + + + + @@ -240,6 +261,7 @@ + @@ -253,6 +275,7 @@ domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> +