Merge branch 'master' into permissions
commit
c2654c010b
|
@ -54,7 +54,7 @@ class GreenmineSessionMiddleware(object):
|
|||
|
||||
COORS_ALLOWED_ORIGINS = getattr(settings, 'COORS_ALLOWED_ORIGINS', '*')
|
||||
COORS_ALLOWED_METHODS = getattr(settings, 'COORS_ALLOWED_METHODS',
|
||||
['POST', 'GET', 'OPTIONS', 'PUT', 'DELETE'])
|
||||
['POST', 'GET', 'OPTIONS', 'PUT', 'DELETE', 'PATCH'])
|
||||
COORS_ALLOWED_HEADERS = getattr(settings, 'COORS_ALLOWED_HEADERS',
|
||||
['Content-Type', 'X-Requested-With',
|
||||
'X-Session-Token', 'Accept-Encoding'])
|
||||
|
|
|
@ -45,7 +45,7 @@ admin.site.register(models.Milestone, MilestoneAdmin)
|
|||
|
||||
|
||||
class UserStoryAdmin(reversion.VersionAdmin):
|
||||
list_display = ["ref", "milestone", "project", "owner"]
|
||||
list_display = ["ref", "milestone", "project", "owner", 'status', 'is_closed']
|
||||
|
||||
admin.site.register(models.UserStory, UserStoryAdmin)
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ class ProjectDetail(generics.RetrieveUpdateDestroyAPIView):
|
|||
permission_classes = (ProjectDetailPermission,)
|
||||
|
||||
|
||||
class MilestoneList(SimpleFilterMixin, generics.ListCreateAPIView):
|
||||
class MilestoneList(generics.ListCreateAPIView):
|
||||
model = Milestone
|
||||
serializer_class = MilestoneSerializer
|
||||
filter_fields = ('project',)
|
||||
|
@ -61,7 +61,7 @@ class MilestoneDetail(generics.RetrieveUpdateDestroyAPIView):
|
|||
permission_classes = (MilestoneDetailPermission,)
|
||||
|
||||
|
||||
class UserStoryList(SimpleFilterMixin, generics.ListCreateAPIView):
|
||||
class UserStoryList(generics.ListCreateAPIView):
|
||||
model = UserStory
|
||||
serializer_class = UserStorySerializer
|
||||
filter_fields = ('project', 'milestone')
|
||||
|
|
|
@ -247,8 +247,12 @@ class UserStory(models.Model):
|
|||
def __unicode__(self):
|
||||
return u"{0} ({1})".format(self.subject, self.ref)
|
||||
|
||||
@property
|
||||
def is_closed(self):
|
||||
return self.status.is_closed
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.ref and self.project:
|
||||
if self.ref is None and self.project:
|
||||
self.ref = ref_uniquely(self.project, "last_us_ref", self.__class__)
|
||||
|
||||
super(UserStory, self).save(*args, **kwargs)
|
||||
|
|
|
@ -13,7 +13,7 @@ class PickleField(serializers.WritableField):
|
|||
return obj
|
||||
|
||||
def from_native(self, data):
|
||||
return json.loads(data)
|
||||
return data
|
||||
|
||||
|
||||
class ProjectSerializer(serializers.ModelSerializer):
|
||||
|
@ -26,6 +26,7 @@ class ProjectSerializer(serializers.ModelSerializer):
|
|||
|
||||
class UserStorySerializer(serializers.ModelSerializer):
|
||||
tags = PickleField()
|
||||
is_closed = serializers.BooleanField()
|
||||
|
||||
class Meta:
|
||||
model = UserStory
|
||||
|
|
Loading…
Reference in New Issue