From 8c3fed2088ed64c03f5bee7b33a53f2d524a6791 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Oct 2016 08:58:25 +0200 Subject: [PATCH] Fixing method total_closed_points_by_date for milestone model --- taiga/projects/milestones/models.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/taiga/projects/milestones/models.py b/taiga/projects/milestones/models.py index 4488d178..ef58437d 100644 --- a/taiga/projects/milestones/models.py +++ b/taiga/projects/milestones/models.py @@ -124,18 +124,22 @@ class Milestone(WatchedModelMixin, models.Model): user_stories[us.id] = us tasks = self.tasks.\ - select_related("user_story").\ - exclude(finished_date__isnull=True).\ - exclude(user_story__isnull=True) + select_related("user_story").\ + exclude(finished_date__isnull=True).\ + exclude(user_story__isnull=True) # For each finished task we try to know the proporional part of points # it represetnts from the user story and add it to the closed points # for that date # This calulation is the total user story points divided by its number of tasks for task in tasks: - user_story = user_stories[task.user_story.id] - total_us_points = user_story._total_us_points - us_tasks_counter = user_story.num_tasks + user_story = user_stories.get(task.user_story.id, None) + if user_story is None: + total_us_points = 0 + us_tasks_counter = 0 + else: + total_us_points = user_story._total_us_points + us_tasks_counter = user_story.num_tasks # If the task was finished before starting the sprint it needs # to be included @@ -144,7 +148,9 @@ class Milestone(WatchedModelMixin, models.Model): finished_date = self.estimated_start points_by_date = self._total_closed_points_by_date.get(finished_date, 0) - points_by_date += total_us_points / us_tasks_counter + if us_tasks_counter != 0: + points_by_date += total_us_points / us_tasks_counter + self._total_closed_points_by_date[finished_date] = points_by_date # At this point self._total_closed_points_by_date keeps a dict where the