Now can filter issue attachments by issue id

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-04-08 14:00:02 +02:00
parent d3cbb2cb24
commit e0b32366a2
3 changed files with 15 additions and 4 deletions

View File

@ -100,20 +100,29 @@ class UserStoryDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsAuthenticated, UserStoryDetailPermission,)
class IssuesAttachmentFilter(django_filters.FilterSet):
issue = django_filters.NumberFilter(name="object_id", lookup_type='exact')
class Meta:
model = Attachment
fields = ['project', 'issue']
class IssuesAttachmentList(generics.ListCreateAPIView):
model = Attachment
serializer_class = AttachmentSerializer
permission_classes = (IsAuthenticated,)
filter_class = IssuesAttachmentFilter
def get_queryset(self):
return super(IssueAttachmentList, self).get_queryset()\
return super(IssuesAttachmentList, self).get_queryset()\
.filter(project__members=self.request.user)
def pre_save(self, obj):
obj.owner = self.request.user
class AttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
class IssuesAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
model = Attachment
serializer_class = AttachmentSerializer
permission_classes = (IsAuthenticated, AttachmentDetailPermission,)

View File

@ -49,9 +49,11 @@ class MilestoneSerializer(serializers.ModelSerializer):
class AttachmentSerializer(serializers.ModelSerializer):
issue = serializers.Field(source='object_id')
class Meta:
model = Attachment
fields = ('id', 'project', 'owner', 'attached_file', 'created_date',)
fields = ('id', 'project', 'owner', 'attached_file', 'created_date', 'issue')
class TaskSerializer(serializers.ModelSerializer):

View File

@ -19,7 +19,7 @@ urlpatterns = format_suffix_patterns(patterns('',
url(r'^issues/$', api.IssueList.as_view(), name='issues-list'),
url(r'^issues/(?P<pk>[0-9]+)/$', api.IssueDetail.as_view(), name='issues-detail'),
url(r'^issues/attachments/$', api.IssuesAttachmentList.as_view(), name='issues-attachment-list'),
url(r'^issues/attachments/(?P<pk>[0-9]+)/$', api.AttachmentDetail.as_view(), name='issues-attachment-detail'),
url(r'^issues/attachments/(?P<pk>[0-9]+)/$', api.IssuesAttachmentDetail.as_view(), name='issues-attachment-detail'),
url(r'^issues/statuses/$', api.IssueStatusList.as_view(), name='issues-status-list'),
url(r'^issues/statuses/(?P<pk>[0-9]+)/$', api.IssueStatusDetail.as_view(), name='issues-status-detail'),
url(r'^issues/types/$', api.IssueTypeList.as_view(), name='issues-type-list'),