From c667f3acd4be8bc9a758668b33778d272398ecfc Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 23 Nov 2016 18:23:10 +0100 Subject: [PATCH] first crude strokedata get method --- rowers/serializers.py | 12 ++++++++++-- rowers/urls.py | 6 ++++-- rowers/views.py | 13 ++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/rowers/serializers.py b/rowers/serializers.py index c58706ef..362c7c01 100644 --- a/rowers/serializers.py +++ b/rowers/serializers.py @@ -7,6 +7,14 @@ class RowerSerializer(serializers.HyperlinkedModelSerializer): model = Rower fields = ( 'weightcategory', + 'max', + 'rest', + 'ut2', + 'ut1', + 'at', + 'tr', + 'an', + 'ftp', ) @@ -32,5 +40,5 @@ class WorkoutSerializer(serializers.HyperlinkedModelSerializer): 'csvfilename', ) - - + + diff --git a/rowers/urls.py b/rowers/urls.py index 9e3a9526..8ba2a5c0 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -14,8 +14,8 @@ from django.conf.urls import ( handler400, handler403, handler404, handler500, ) -from rowers.permissions import IsOwnerOrNot -from rowers.serializers import WorkoutSerializer +from rowers.permissions import IsOwnerOrNot,IsOwnerOrReadOnly +from rowers.serializers import WorkoutSerializer,RowerSerializer class WorkoutViewSet(viewsets.ModelViewSet): queryset = Workout.objects.all().order_by("-date", "-starttime") @@ -26,6 +26,7 @@ class WorkoutViewSet(viewsets.ModelViewSet): # Routers provide an easy way of automatically determining the URL conf. router = routers.DefaultRouter() router.register(r'api/workouts',WorkoutViewSet) +#router.register(r'api/rower',RowerViewSet) handler500 = 'views.error500_view' handler404 = 'views.error404_view' @@ -39,6 +40,7 @@ urlpatterns = [ url(r'^', include(router.urls)), url(r'^api-docs$', views.schema_view), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), + url(r'^api/(\d+)/strokedata$',views.strokedatajson), url(r'^testbokeh$',views.testbokeh), url(r'^500/$', TemplateView.as_view(template_name='500.html'),name='500'), url(r'^404/$', TemplateView.as_view(template_name='404.html'),name='404'), diff --git a/rowers/views.py b/rowers/views.py index bfcb0115..8d46f9d5 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -33,6 +33,8 @@ from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SEC from rowsandall_app.settings import SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI, SPORTTRACKS_CLIENT_SECRET import requests import json +from rest_framework.renderers import JSONRenderer +from rest_framework.parsers import JSONParser from rowsandall_app.rows import handle_uploaded_file from rowers.tasks import handle_makeplot,handle_otwsetpower,handle_sendemailtcx,handle_sendemailcsv from rowers.tasks import handle_sendemail_unrecognized @@ -4445,4 +4447,13 @@ def rower_edit_view(request,message=""): except Rower.DoesNotExist: return HttpResponse("This user doesn't exist") - +class JSONResponse(HttpResponse): + def __init__(self, data, **kwargs): + content = JSONRenderer().render(data) + kwargs['content_type'] = 'application/json' + super(JSONResponse, self).__init__(content, **kwargs) + +def strokedatajson(request,id): + if request.method == 'GET': + datadf,row = dataprep.getrowdata_db(id=id) + return JSONResponse(datadf)