Migrating questions app to rest_framework

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-27 23:18:59 +01:00
parent e17a902e56
commit 6d72a69dc8
7 changed files with 68 additions and 19 deletions

View File

@ -33,6 +33,8 @@ class ApiRoot(APIView):
'issue-types': reverse('issue-type-list', request=request, format=format), 'issue-types': reverse('issue-type-list', request=request, format=format),
'points': reverse('points-list', request=request, format=format), 'points': reverse('points-list', request=request, format=format),
'documents': reverse('document-list', request=request, format=format), '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),
}) })
@ -61,9 +63,7 @@ class Login(APIView):
'colorize_tags': request.user.colorize_tags, 'colorize_tags': request.user.colorize_tags,
})) }))
return http.HttpResponse(JSONRenderer().render(return_data.data), return Response(return_data.data)
content_type="application/json",
status=201)
except User.DoesNotExist: except User.DoesNotExist:
pass pass

View File

@ -0,0 +1,8 @@
from rest_framework import serializers
from greenmine.documents.models import Document
class DocumentSerializer(serializers.ModelSerializer):
class Meta:
model = Document
fields = ()

View File

@ -0,0 +1,10 @@
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from greenmine.documents 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'),
))

View File

@ -1,22 +1,25 @@
# 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.questions.serializers import QuestionSerializer, QuestionResponseSerializer
from greenmine.questions.models import Question, QuestionResponse from greenmine.questions.models import Question, QuestionResponse
class QuestionResource(ModelResource): class QuestionList(generics.ListCreateAPIView):
class Meta: model = Question
queryset = Question.objects.all() serializer_class = QuestionSerializer
resource_name = 'question'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
class QuestionResponseResource(ModelResource): class QuestionDetail(generics.RetrieveUpdateDestroyAPIView):
class Meta: model = Question
queryset = QuestionResponse.objects.all() serializer_class = QuestionSerializer
resource_name = 'questionresponse'
authentication = SessionAuthentication()
authorization = DjangoAuthorization() class QuestionResponseList(generics.ListCreateAPIView):
model = QuestionResponse
serializer_class = QuestionResponseSerializer
class QuestionResponseDetail(generics.RetrieveUpdateDestroyAPIView):
model = QuestionResponse
serializer_class = QuestionResponseSerializer

View File

@ -0,0 +1,15 @@
from rest_framework import serializers
from greenmine.questions.models import Question, QuestionResponse
class QuestionSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields = ()
class QuestionResponseSerializer(serializers.ModelSerializer):
class Meta:
model = QuestionResponse
fields = ()

View File

@ -0,0 +1,12 @@
from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns
from greenmine.questions import api
urlpatterns = format_suffix_patterns(patterns('',
url(r'^questions/$', api.QuestionList.as_view(), name='question-list'),
url(r'^questions/(?P<pk>[0-9]+)/$', api.QuestionDetail.as_view(), name='question-detail'),
url(r'^question_responses/$', api.QuestionResponseList.as_view(), name='question-response-list'),
url(r'^question_responses/(?P<pk>[0-9]+)/$', api.QuestionResponseDetail.as_view(), name='question-response-detail'),
))

View File

@ -9,6 +9,7 @@ urlpatterns = patterns('',
url(r'^api/', include('greenmine.base.urls')), url(r'^api/', include('greenmine.base.urls')),
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'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
url(r'^grappelli/', include('grappelli.urls')), url(r'^grappelli/', include('grappelli.urls')),
) )