diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 290b041370c..ecd391dedb5 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -500,11 +500,11 @@ class Project(models.Model): for project in self: project.milestone_count_reached = mapped_count.get(project.id, 0) - @api.depends('milestone_ids', 'milestone_ids.is_reached', 'milestone_ids.deadline') + @api.depends('milestone_ids', 'milestone_ids.is_reached', 'milestone_ids.deadline', 'allow_milestones') def _compute_is_milestone_exceeded(self): today = fields.Date.context_today(self) read_group = self.env['project.milestone']._read_group([ - ('project_id', 'in', self.ids), + ('project_id', 'in', self.filtered('allow_milestones').ids), ('is_reached', '=', False), ('deadline', '<', today)], ['project_id'], ['project_id']) mapped_count = {group['project_id'][0]: group['project_id_count'] for group in read_group} @@ -523,6 +523,7 @@ class Project(models.Model): FROM project_project P LEFT JOIN project_milestone M ON P.id = M.project_id WHERE M.is_reached IS false + AND P.allow_milestones IS true AND M.deadline < CAST(now() AS date) """ if (operator == '=' and value is True) or (operator == '!=' and value is False):