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),
'points': reverse('points-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,
}))
return http.HttpResponse(JSONRenderer().render(return_data.data),
content_type="application/json",
status=201)
return Response(return_data.data)
except User.DoesNotExist:
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
class QuestionResource(ModelResource):
class Meta:
queryset = Question.objects.all()
resource_name = 'question'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
class QuestionList(generics.ListCreateAPIView):
model = Question
serializer_class = QuestionSerializer
class QuestionResponseResource(ModelResource):
class Meta:
queryset = QuestionResponse.objects.all()
resource_name = 'questionresponse'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
class QuestionDetail(generics.RetrieveUpdateDestroyAPIView):
model = Question
serializer_class = QuestionSerializer
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/scrum/', include('greenmine.scrum.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'^grappelli/', include('grappelli.urls')),
)