Different kind of points for US API

remotes/origin/enhancement/email-actions
Alejandro Alonso 2013-07-17 09:12:51 +02:00
parent 28a59bbc88
commit 9a1c9c8403
2 changed files with 21 additions and 0 deletions

View File

@ -455,6 +455,9 @@ class UserStory(models.Model):
def is_closed(self):
return self.status.is_closed
def get_role_points(self):
return self.role_points
class Attachment(models.Model):
owner = models.ForeignKey('base.User', null=False, blank=False,

View File

@ -34,15 +34,33 @@ class ProjectSerializer(serializers.ModelSerializer):
fields = ()
class RolePointsField(serializers.WritableField):
def to_native(self, obj):
return {str(o.role.id): o.points.order for o in obj.all()}
def from_native(self, obj):
return json.loads(obj)
class UserStorySerializer(serializers.ModelSerializer):
tags = PickleField()
is_closed = serializers.Field(source='is_closed')
points = RolePointsField(source='role_points')
class Meta:
model = UserStory
fields = ()
depth = 0
def save_object(self, obj, **kwargs):
role_points = obj._related_data.pop('role_points')
super(UserStorySerializer, self).save_object(obj, **kwargs)
for role_id, points_order in role_points.items():
role_points = obj.role_points.get(role__id=role_id)
role_points.points.order = points_order
role_points.points.save()
class MilestoneSerializer(serializers.ModelSerializer):
user_stories = UserStorySerializer(many=True, required=False)