Minor model and api fixes.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-03-31 18:35:08 +02:00
parent 43f2b87d0d
commit 9b39a0db28
3 changed files with 17 additions and 14 deletions

View File

@ -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

View File

@ -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

View File

@ -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