Minor model and api fixes.
parent
43f2b87d0d
commit
9b39a0db28
|
@ -36,6 +36,8 @@ class ProjectList(generics.ListCreateAPIView):
|
||||||
model = Project
|
model = Project
|
||||||
serializer_class = ProjectSerializer
|
serializer_class = ProjectSerializer
|
||||||
|
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.owner = self.request.user
|
||||||
|
|
||||||
class ProjectDetail(generics.RetrieveUpdateDestroyAPIView):
|
class ProjectDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = Project
|
model = Project
|
||||||
|
@ -47,6 +49,9 @@ class MilestoneList(generics.ListCreateAPIView):
|
||||||
serializer_class = MilestoneSerializer
|
serializer_class = MilestoneSerializer
|
||||||
filter_fields = ('project',)
|
filter_fields = ('project',)
|
||||||
|
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
|
||||||
class MilestoneDetail(generics.RetrieveUpdateDestroyAPIView):
|
class MilestoneDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = Milestone
|
model = Milestone
|
||||||
|
@ -71,6 +76,9 @@ class ChangeList(generics.ListCreateAPIView):
|
||||||
model = Change
|
model = Change
|
||||||
serializer_class = ChangeSerializer
|
serializer_class = ChangeSerializer
|
||||||
|
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
|
||||||
class ChangeDetail(generics.RetrieveUpdateDestroyAPIView):
|
class ChangeDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = Change
|
model = Change
|
||||||
|
@ -81,6 +89,9 @@ class ChangeAttachmentList(generics.ListCreateAPIView):
|
||||||
model = ChangeAttachment
|
model = ChangeAttachment
|
||||||
serializer_class = ChangeAttachmentSerializer
|
serializer_class = ChangeAttachmentSerializer
|
||||||
|
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
|
||||||
class ChangeAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
class ChangeAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = ChangeAttachment
|
model = ChangeAttachment
|
||||||
|
@ -92,6 +103,9 @@ class TaskList(generics.ListCreateAPIView):
|
||||||
serializer_class = TaskSerializer
|
serializer_class = TaskSerializer
|
||||||
filter_fields = ('user_story', 'milestone', 'project')
|
filter_fields = ('user_story', 'milestone', 'project')
|
||||||
|
|
||||||
|
def pre_save(self, obj):
|
||||||
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
|
||||||
class TaskDetail(generics.RetrieveUpdateDestroyAPIView):
|
class TaskDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = Task
|
model = Task
|
||||||
|
|
|
@ -191,7 +191,8 @@ class Milestone(models.Model):
|
||||||
uuid = models.CharField(max_length=40, unique=True, blank=True)
|
uuid = models.CharField(max_length=40, unique=True, blank=True)
|
||||||
name = models.CharField(max_length=200, db_index=True)
|
name = models.CharField(max_length=200, db_index=True)
|
||||||
slug = models.SlugField(max_length=250, unique=True, blank=True)
|
slug = models.SlugField(max_length=250, unique=True, blank=True)
|
||||||
owner = models.ForeignKey('base.User', related_name="milestones", blank=True)
|
owner = models.ForeignKey('base.User', related_name="milestones",
|
||||||
|
null=True, blank=True)
|
||||||
project = models.ForeignKey('Project', related_name="milestones")
|
project = models.ForeignKey('Project', related_name="milestones")
|
||||||
|
|
||||||
estimated_start = models.DateField(null=True, default=None)
|
estimated_start = models.DateField(null=True, default=None)
|
||||||
|
@ -204,8 +205,6 @@ class Milestone(models.Model):
|
||||||
disponibility = models.FloatField(null=True, default=0.0)
|
disponibility = models.FloatField(null=True, default=0.0)
|
||||||
order = models.PositiveSmallIntegerField("Order", default=1)
|
order = models.PositiveSmallIntegerField("Order", default=1)
|
||||||
|
|
||||||
tags = PickledObjectField()
|
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if not self.slug:
|
if not self.slug:
|
||||||
self.slug = slugify_uniquely(self.name, self.__class__)
|
self.slug = slugify_uniquely(self.name, self.__class__)
|
||||||
|
@ -216,15 +215,6 @@ class Milestone(models.Model):
|
||||||
ordering = ['-created_date']
|
ordering = ['-created_date']
|
||||||
unique_together = ('name', 'project')
|
unique_together = ('name', 'project')
|
||||||
|
|
||||||
@property
|
|
||||||
def total_points(self):
|
|
||||||
"""
|
|
||||||
Get total story points for this milestone.
|
|
||||||
"""
|
|
||||||
|
|
||||||
total = sum(iter_points(self.user_stories.all()))
|
|
||||||
return "{0:.1f}".format(total)
|
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,7 @@ class UserStorySerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class MilestoneSerializer(serializers.ModelSerializer):
|
class MilestoneSerializer(serializers.ModelSerializer):
|
||||||
tags = PickleField()
|
user_stories = UserStorySerializer(many=True, required=False)
|
||||||
user_stories = UserStorySerializer(many=True)
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Milestone
|
model = Milestone
|
||||||
|
|
Loading…
Reference in New Issue