From 789984307baefec43ec6b0ddf01bd3e29ca6d1fb Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 9 Oct 2013 15:30:08 +0200 Subject: [PATCH] Add total points method to user story model. --- greenmine/projects/userstories/models.py | 8 ++++++++ greenmine/projects/userstories/serializers.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/greenmine/projects/userstories/models.py b/greenmine/projects/userstories/models.py index 3d86f841..055fcfa2 100644 --- a/greenmine/projects/userstories/models.py +++ b/greenmine/projects/userstories/models.py @@ -142,6 +142,14 @@ class UserStory(WatchedMixin, models.Model): def get_role_points(self): return self.role_points + def get_total_points(self): + total = 0.0 + for rp in self.role_points.select_related("points"): + if rp.points.value: + total += rp.points.value + + return total + def _get_watchers_by_role(self): return { "owner": self.owner, diff --git a/greenmine/projects/userstories/serializers.py b/greenmine/projects/userstories/serializers.py index b1e89427..6f59948b 100644 --- a/greenmine/projects/userstories/serializers.py +++ b/greenmine/projects/userstories/serializers.py @@ -32,6 +32,7 @@ class UserStorySerializer(serializers.ModelSerializer): tags = PickleField(blank=True, default=[]) is_closed = serializers.Field(source="is_closed") points = RolePointsField(source="role_points") + total_points = serializers.SerializerMethodField("get_total_points") comment = serializers.SerializerMethodField("get_comment") history = serializers.SerializerMethodField("get_history") @@ -51,6 +52,9 @@ class UserStorySerializer(serializers.ModelSerializer): order=points_order) role_points.save() + def get_total_points(self, obj): + return obj.get_total_points() + def get_comment(self, obj): # TODO return ""