diff --git a/greenmine/base/views.py b/greenmine/base/views.py index 06fa6309..0c26a0a6 100644 --- a/greenmine/base/views.py +++ b/greenmine/base/views.py @@ -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), }) diff --git a/greenmine/urls.py b/greenmine/urls.py index a95afb30..765712e2 100644 --- a/greenmine/urls.py +++ b/greenmine/urls.py @@ -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')), ) diff --git a/greenmine/wiki/api.py b/greenmine/wiki/api.py index e63e9403..d0a4c1c6 100644 --- a/greenmine/wiki/api.py +++ b/greenmine/wiki/api.py @@ -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 diff --git a/greenmine/wiki/serializers.py b/greenmine/wiki/serializers.py new file mode 100644 index 00000000..8b354dc9 --- /dev/null +++ b/greenmine/wiki/serializers.py @@ -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 = () diff --git a/greenmine/wiki/urls.py b/greenmine/wiki/urls.py new file mode 100644 index 00000000..e4912c91 --- /dev/null +++ b/greenmine/wiki/urls.py @@ -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[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[0-9]+)/$', api.WikiPageAttachmentDetail.as_view(), name='wiki-page-attachment-detail'), +)) +