Minor changes on wiki api.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-07-23 22:06:10 +02:00
parent d36d19b796
commit 6090254821
2 changed files with 28 additions and 25 deletions

View File

@ -5,27 +5,32 @@ from django.utils.translation import ugettext as _
from django.http import Http404 from django.http import Http404
from rest_framework import generics from rest_framework import generics
from rest_framework.permissions import IsAuthenticated
from greenmine.wiki.serializers import WikiPageSerializer, WikiPageAttachmentSerializer
from greenmine.wiki.models import WikiPage, WikiPageAttachment from . import models
from greenmine.wiki.permissions import WikiPageDetailPermission, WikiPageAttachmentDetailPermission from . import serializers
from . import permissions
class WikiPageList(generics.ListCreateAPIView): class WikiPageList(generics.ListCreateAPIView):
model = WikiPage model = models.WikiPage
serializer_class = WikiPageSerializer serializer_class = serializers.WikiPageSerializer
permission_classes = (IsAuthenticated,)
filter_fields = ["project"]
def get_queryset(self): def get_queryset(self):
return self.model.objects.filter(project__members=self.request.user) qs = super(WikiPageList, self).get_queryset()
return qs.filter(project__members=self.request.user)
def pre_save(self, obj): def pre_save(self, obj):
obj.owner = self.request.user obj.owner = self.request.user
class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView): class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
model = WikiPage model = models.WikiPage
serializer_class = WikiPageSerializer serializer_class = serializers.WikiPageSerializer
permission_classes = (WikiPageDetailPermission,) permission_classes = (IsAuthenticated, permissions.WikiPageDetailPermission,)
def get_object(self, queryset=None): def get_object(self, queryset=None):
if queryset is None: if queryset is None:
@ -42,15 +47,15 @@ class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
return obj return obj
class WikiPageAttachmentList(generics.ListCreateAPIView): #class WikiPageAttachmentList(generics.ListCreateAPIView):
model = WikiPageAttachment # model = WikiPageAttachment
serializer_class = WikiPageAttachmentSerializer # serializer_class = WikiPageAttachmentSerializer
#
def get_queryset(self): # def get_queryset(self):
return self.model.objects.filter(wikipage__project__members=self.request.user) # return self.model.objects.filter(wikipage__project__members=self.request.user)
#
#
class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView): #class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
model = WikiPageAttachment # model = WikiPageAttachment
serializer_class = WikiPageAttachmentSerializer # serializer_class = WikiPageAttachmentSerializer
permission_classes = (WikiPageAttachmentDetailPermission,) # permission_classes = (WikiPageAttachmentDetailPermission,)

View File

@ -2,13 +2,11 @@
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns from rest_framework.urlpatterns import format_suffix_patterns
from greenmine.wiki import api from greenmine.wiki import api
urlpatterns = format_suffix_patterns(patterns('', urlpatterns = format_suffix_patterns(patterns('',
url(r'^pages/$', api.WikiPageList.as_view(), name='wiki-page-list'), url(r'^pages$', api.WikiPageList.as_view(), name='wiki-page-list'),
url(r'^pages/(?P<projectid>\d+)-(?P<slug>[\w\-\d]+)/$', api.WikiPageDetail.as_view(), name='wiki-page-detail'), url(r'^pages/(?P<projectid>\d+)-(?P<slug>[\w\-\d]+)$', api.WikiPageDetail.as_view(), name='wiki-page-detail'),
#url(r'^wiki_page_attachments/$', api.WikiPageAttachmentList.as_view(), name='wiki-page-attachment-list'), #url(r'^wiki_page_attachments/$', api.WikiPageAttachmentList.as_view(), name='wiki-page-attachment-list'),
#url(r'^wiki_page_attachments/(?P<pk>[0-9]+)/$', api.WikiPageAttachmentDetail.as_view(), name='wiki-page-attachment-detail'), #url(r'^wiki_page_attachments/(?P<pk>[0-9]+)/$', api.WikiPageAttachmentDetail.as_view(), name='wiki-page-attachment-detail'),
)) ))