diff --git a/greenmine/base/views.py b/greenmine/base/views.py index de434e46..06fa6309 100644 --- a/greenmine/base/views.py +++ b/greenmine/base/views.py @@ -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 diff --git a/greenmine/documents/serializers.py b/greenmine/documents/serializers.py new file mode 100644 index 00000000..50c4c0d3 --- /dev/null +++ b/greenmine/documents/serializers.py @@ -0,0 +1,8 @@ +from rest_framework import serializers + +from greenmine.documents.models import Document + +class DocumentSerializer(serializers.ModelSerializer): + class Meta: + model = Document + fields = () diff --git a/greenmine/documents/urls.py b/greenmine/documents/urls.py new file mode 100644 index 00000000..e40bffdc --- /dev/null +++ b/greenmine/documents/urls.py @@ -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[0-9]+)/$', api.DocumentDetail.as_view(), name='document-detail'), +)) + diff --git a/greenmine/questions/api.py b/greenmine/questions/api.py index cdb5fa11..64c951ab 100644 --- a/greenmine/questions/api.py +++ b/greenmine/questions/api.py @@ -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 diff --git a/greenmine/questions/serializers.py b/greenmine/questions/serializers.py new file mode 100644 index 00000000..83d59b41 --- /dev/null +++ b/greenmine/questions/serializers.py @@ -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 = () diff --git a/greenmine/questions/urls.py b/greenmine/questions/urls.py new file mode 100644 index 00000000..80085fa7 --- /dev/null +++ b/greenmine/questions/urls.py @@ -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[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[0-9]+)/$', api.QuestionResponseDetail.as_view(), name='question-response-detail'), +)) + diff --git a/greenmine/urls.py b/greenmine/urls.py index 07f32f89..a95afb30 100644 --- a/greenmine/urls.py +++ b/greenmine/urls.py @@ -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')), )