Refactor: greenmine.documents - Migrated api views to viewsets
parent
fa3d982d6c
commit
cda7e7d756
|
@ -1,21 +1,17 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from rest_framework import generics
|
from rest_framework import viewsets
|
||||||
|
|
||||||
|
from greenmine.base import filters
|
||||||
|
|
||||||
from . import serializers
|
from . import serializers
|
||||||
from . import models
|
from . import models
|
||||||
from . import permissions
|
from . import permissions
|
||||||
|
|
||||||
|
|
||||||
class DocumentList(generics.ListCreateAPIView):
|
class DocumentsViewSet(viewsets.ModelViewSet):
|
||||||
model = models.Document
|
model = models.Document
|
||||||
serializer_class = serializers.DocumentSerializer
|
serializer_class = serializers.DocumentSerializer
|
||||||
|
permission_classes = (permissions.DocumentPermission,)
|
||||||
|
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
return super(DocumentList, self).filter(project__members=self.request.user)
|
|
||||||
|
|
||||||
|
|
||||||
class DocumentDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
||||||
model = models.Document
|
|
||||||
serializer_class = serializers.DocumentSerializer
|
|
||||||
permission_classes = (permissions.DocumentDetailPermission,)
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
from greenmine.base.permissions import BaseDetailPermission
|
from greenmine.base.permissions import BaseDetailPermission
|
||||||
|
|
||||||
|
|
||||||
class DocumentDetailPermission(BaseDetailPermission):
|
class DocumentPermission(BaseDetailPermission):
|
||||||
get_permission = "can_view_document"
|
get_permission = "can_view_document"
|
||||||
put_permission = "can_change_document"
|
put_permission = "can_change_document"
|
||||||
delete_permission = "can_delete_document"
|
delete_permission = "can_delete_document"
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from django.conf.urls import patterns, url
|
from greenmine.base import routers
|
||||||
from rest_framework.urlpatterns import format_suffix_patterns
|
|
||||||
|
|
||||||
from . import api
|
from . import api
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = format_suffix_patterns(patterns('',
|
router = routers.SimpleRouter(trailing_slash=False)
|
||||||
url(r'^documents/$', api.DocumentList.as_view(), name='document-list'),
|
router.register(r"documents", api.DocumentsViewSet, base_name="documents")
|
||||||
url(r'^documents/(?P<pk>[0-9]+)/$', api.DocumentDetail.as_view(), name='document-detail'),
|
|
||||||
))
|
|
||||||
|
|
||||||
|
urlpatterns = router.urls
|
||||||
|
|
Loading…
Reference in New Issue