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), 'documents': reverse('document-list', request=request, format=format),
'questions': reverse('question-list', request=request, format=format), 'questions': reverse('question-list', request=request, format=format),
'question_responses': reverse('question-response-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/scrum/', include('greenmine.scrum.urls')),
url(r'^api/documents/', include('greenmine.documents.urls')), url(r'^api/documents/', include('greenmine.documents.urls')),
url(r'^api/questions/', include('greenmine.questions.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'^admin/', include(admin.site.urls)),
url(r'^grappelli/', include('grappelli.urls')), url(r'^grappelli/', include('grappelli.urls')),
) )

View File

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