Migrating wiki app to rest_framework

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-28 08:13:37 +01:00
parent 6d72a69dc8
commit 6e3f9d63a3
5 changed files with 48 additions and 16 deletions

View File

@ -35,6 +35,8 @@ class ApiRoot(APIView):
'documents': reverse('document-list', request=request, format=format),
'questions': reverse('question-list', request=request, format=format),
'question_responses': reverse('question-response-list', request=request, format=format),
'wiki_pages': reverse('wiki-page-list', request=request, format=format),
'wiki_page_attachments': reverse('wiki-page-attachment-list', request=request, format=format),
})

View File

@ -10,6 +10,7 @@ urlpatterns = patterns('',
url(r'^api/scrum/', include('greenmine.scrum.urls')),
url(r'^api/documents/', include('greenmine.documents.urls')),
url(r'^api/questions/', include('greenmine.questions.urls')),
url(r'^api/wiki/', include('greenmine.wiki.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^grappelli/', include('grappelli.urls')),
)

View File

@ -1,22 +1,24 @@
# myapp/api.py
from tastypie.resources import ModelResource
from tastypie.authentication import SessionAuthentication
from tastypie.authorization import DjangoAuthorization
from rest_framework import generics
from greenmine.wiki.serializers import WikiPageSerializer, WikiPageAttachmentSerializer
from greenmine.wiki.models import WikiPage, WikiPageAttachment
class WikiPageResource(ModelResource):
class Meta:
queryset = WikiPage.objects.all()
resource_name = 'wikipage'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
class WikiPageList(generics.ListCreateAPIView):
model = WikiPage
serializer_class = WikiPageSerializer
class WikiPageAttachmentResource(ModelResource):
class Meta:
queryset = WikiPageAttachment.objects.all()
resource_name = 'wikipageattachment'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
model = WikiPage
serializer_class = WikiPageSerializer
class WikiPageAttachmentList(generics.ListCreateAPIView):
model = WikiPageAttachment
serializer_class = WikiPageAttachmentSerializer
class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
model = WikiPageAttachment
serializer_class = WikiPageAttachmentSerializer

View File

@ -0,0 +1,15 @@
from rest_framework import serializers
from greenmine.wiki.models import WikiPage, WikiPageAttachment
class WikiPageSerializer(serializers.ModelSerializer):
class Meta:
model = WikiPage
fields = ()
class WikiPageAttachmentSerializer(serializers.ModelSerializer):
class Meta:
model = WikiPageAttachment
fields = ()

12
greenmine/wiki/urls.py Normal file
View File

@ -0,0 +1,12 @@
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from greenmine.wiki import api
urlpatterns = format_suffix_patterns(patterns('',
url(r'^wiki_pages/$', api.WikiPageList.as_view(), name='wiki-page-list'),
url(r'^wiki_pages/(?P<pk>[0-9]+)/$', 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/(?P<pk>[0-9]+)/$', api.WikiPageAttachmentDetail.as_view(), name='wiki-page-attachment-detail'),
))