diff --git a/greenmine/projects/api.py b/greenmine/projects/api.py index f68a326a..0138072c 100644 --- a/greenmine/projects/api.py +++ b/greenmine/projects/api.py @@ -29,6 +29,8 @@ class ProjectViewSet(ModelCrudViewSet): 'name': project.name, 'total_milestones': project.total_milestones, 'total_points': project.total_story_points, + 'closed_points': sum(project.closed_points.values()), + 'defined_points': sum(project.defined_points.values()), 'milestones': self._milestones_stats(project) } return Response(project_stats) diff --git a/greenmine/projects/models.py b/greenmine/projects/models.py index d8702efa..91dfc602 100644 --- a/greenmine/projects/models.py +++ b/greenmine/projects/models.py @@ -18,6 +18,7 @@ from . import choices import reversion import itertools +import collections def get_attachment_file_path(instance, filename): @@ -234,6 +235,17 @@ class Project(models.Model): def future_shared_increment(self): return self._get_points_increment(True, True) + @property + def closed_points(self): + closed_points = 0 + for ml in self.milestones.all(): + closed_points = ml.closed_points + return closed_points + + @property + def defined_points(self): + return self._get_user_stories_points(self.user_stories.all()) + # User Stories common Models class UserStoryStatus(models.Model):