From bc6117d6443c5dbace00afaef8ea93ba7195c159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 7 May 2013 17:15:28 +0200 Subject: [PATCH] Adding backlog increments calculation on backend --- greenmine/scrum/models.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/greenmine/scrum/models.py b/greenmine/scrum/models.py index c3b3c16e..03d81d9c 100644 --- a/greenmine/scrum/models.py +++ b/greenmine/scrum/models.py @@ -239,7 +239,9 @@ class Project(models.Model): { 'name': milestone.name, 'finish_date': milestone.estimated_finish, - 'closed_points': milestone.closed_points + 'closed_points': milestone.closed_points, + 'client_increment_points': milestone.client_increment_points, + 'team_increment_points': milestone.team_increment_points } for milestone in self.milestones.all().order_by('estimated_start') ] @@ -308,6 +310,39 @@ class Milestone(models.Model): points = [ us.points.value for us in self.user_stories.all() if us.is_closed ] return sum(points) + @property + def client_increment_points(self): + user_stories = UserStory.objects.filter( + created_date__gt=self.estimated_start, + created_date__lt=self.estimated_finish, + client_requirement=True, + team_requirement=False + ) + points = [ us.points.value for us in user_stories ] + return sum(points) + (self.shared_increment_points / 2) + + @property + def team_increment_points(self): + user_stories = UserStory.objects.filter( + created_date__gt=self.estimated_start, + created_date__lt=self.estimated_finish, + client_requirement=False, + team_requirement=True + ) + points = [ us.points.value for us in user_stories ] + return sum(points) + (self.shared_increment_points / 2) + + @property + def shared_increment_points(self): + user_stories = UserStory.objects.filter( + created_date__gt=self.estimated_start, + created_date__lt=self.estimated_finish, + client_requirement=True, + team_requirement=True + ) + points = [ us.points.value for us in user_stories ] + return sum(points) + class UserStory(models.Model): uuid = models.CharField(max_length=40, unique=True, null=False, blank=True,