From 26f06049224d873310ea03737c247b1b054c1989 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Fri, 13 May 2016 22:19:38 -0500 Subject: [PATCH] karma: add django rest framework i tried to use this for datatables, but it was taking too long to get a response, so i'm abandoning this for the moment, but the support's there for the future --- dr_botzo/karma/serializers.py | 12 ++++++++++++ dr_botzo/karma/urls.py | 10 ++++++++-- dr_botzo/karma/views.py | 10 ++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 dr_botzo/karma/serializers.py diff --git a/dr_botzo/karma/serializers.py b/dr_botzo/karma/serializers.py new file mode 100644 index 0000000..3b8a6be --- /dev/null +++ b/dr_botzo/karma/serializers.py @@ -0,0 +1,12 @@ +"""Serializers for the karma objects.""" + +from rest_framework import serializers + +from karma.models import KarmaKey + + +class KarmaKeySerializer(serializers.ModelSerializer): + + class Meta: + model = KarmaKey + fields = ('id', 'key', 'score', 'rank') diff --git a/dr_botzo/karma/urls.py b/dr_botzo/karma/urls.py index c1d4908..9d73ffe 100644 --- a/dr_botzo/karma/urls.py +++ b/dr_botzo/karma/urls.py @@ -1,10 +1,16 @@ """URL patterns for the karma views.""" -from django.conf.urls import patterns, url +from django.conf.urls import patterns, url, include +from rest_framework.routers import DefaultRouter -from karma.views import key_detail, index +from karma.views import key_detail, index, KarmaKeyViewSet + +router = DefaultRouter() +router.register(r'keys', KarmaKeyViewSet) urlpatterns = patterns('races.views', url(r'^$', index, name='karma_index'), url(r'^key/(?P.+)/', key_detail, name='karma_key_detail'), + + url(r'^api/', include(router.urls)), ) diff --git a/dr_botzo/karma/views.py b/dr_botzo/karma/views.py index 74d23d2..9654f2c 100644 --- a/dr_botzo/karma/views.py +++ b/dr_botzo/karma/views.py @@ -3,8 +3,10 @@ import logging from django.shortcuts import get_object_or_404, render +from rest_framework import viewsets from karma.models import KarmaKey +from karma.serializers import KarmaKeySerializer log = logging.getLogger('karma.views') @@ -23,3 +25,11 @@ def key_detail(request, karma_key): entry = get_object_or_404(KarmaKey, key=karma_key.lower()) return render(request, 'karma/karma_key.html', {'entry': entry, 'entry_history': entry.history(mode='date')}) + + +class KarmaKeyViewSet(viewsets.ReadOnlyModelViewSet): + + """Provide list and detail actions for karma keys.""" + + queryset = KarmaKey.objects.all() + serializer_class = KarmaKeySerializer