Refactor: greenmine.documents - Migrated api views to viewsets

remotes/origin/enhancement/email-actions
David Barragán Merino 2013-09-30 18:01:12 +02:00
parent fa3d982d6c
commit cda7e7d756
3 changed files with 11 additions and 17 deletions

View File

@ -1,21 +1,17 @@
# -*- coding: utf-8 -*-
from rest_framework import generics
from rest_framework import viewsets
from greenmine.base import filters
from . import serializers
from . import models
from . import permissions
class DocumentList(generics.ListCreateAPIView):
class DocumentsViewSet(viewsets.ModelViewSet):
model = models.Document
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,)

View File

@ -3,7 +3,7 @@
from greenmine.base.permissions import BaseDetailPermission
class DocumentDetailPermission(BaseDetailPermission):
class DocumentPermission(BaseDetailPermission):
get_permission = "can_view_document"
put_permission = "can_change_document"
delete_permission = "can_delete_document"

View File

@ -1,13 +1,11 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from greenmine.base import routers
from . import api
urlpatterns = format_suffix_patterns(patterns('',
url(r'^documents/$', api.DocumentList.as_view(), name='document-list'),
url(r'^documents/(?P<pk>[0-9]+)/$', api.DocumentDetail.as_view(), name='document-detail'),
))
router = routers.SimpleRouter(trailing_slash=False)
router.register(r"documents", api.DocumentsViewSet, base_name="documents")
urlpatterns = router.urls