From 092ce85214b66111a1c098e7a0ac02a841be971e Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 5 Mar 2024 23:52:49 +0100 Subject: [PATCH] adding sleep as bokehJS example --- rowers/interactiveplots.py | 35 ++++++++++++++++------------------- rowers/urls.py | 1 + rowers/views/otherviews.py | 12 ++++++++++++ 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 03b8cc38..67c1996b 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -83,6 +83,7 @@ queuelow = django_rq.get_queue('low') queuehigh = django_rq.get_queue('low') import requests +from rowers.serializers import * activate(settings.TIME_ZONE) thetimezone = get_current_timezone() @@ -101,6 +102,19 @@ def get_chart(end_point, chart_data): return script, div +# Example for BokehJS +def sleep(): + data = { + 'work': 8, + 'eat': 2, + 'commute': 2, + 'sport': 0, + 'tv': 1, + 'sleep': 8, + } + script, div = get_chart("/sleep", data) + return script, div + def workoutname(id): try: w = Workout.objects.get(id=id) @@ -2179,25 +2193,8 @@ def interactive_histoall(theworkouts, histoparam, includereststrokes, def course_map(course): - course_dict = { - 'name': course.name, - 'country': course.country, - 'notes': course.notes, - } - - - polygons_list = [] - for p in GeoPolygon.objects.filter(course=course).order_by('order_in_course'): - points = GeoPoint.objects.filter(polygon=p).order_by('order_in_poly') - polygons_list.append({ - 'name': p.name, - 'points': [{ - 'latitude': pt.latitude, 'longitude': pt.longitude, 'order_in_poly': pt.order_in_poly - } for pt in points ] - }) - - course_dict['polygons'] = polygons_list - + course_dict = GeoCourseSerializer(course).data + script, div = get_chart("/map", course_dict) return script, div diff --git a/rowers/urls.py b/rowers/urls.py index 30326a73..36d68870 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -272,6 +272,7 @@ urlpatterns = [ re_path(r'^exportallworkouts/?/$', views.workouts_summaries_email_view, name='workouts_summaries_email_view'), path('failedjobs/', views.failed_queue_view, name='failed_queue_view'), + path('sleep/', views.sleep_view, name='sleep_view'), path('failedjobs/empty/', views.failed_queue_empty, name='failed_queue_empty'), re_path('^failedjobs/(?P\w+.*)/$', views.failed_job_view, name='failed_job_view'), diff --git a/rowers/views/otherviews.py b/rowers/views/otherviews.py index a88d4070..1366bc1c 100644 --- a/rowers/views/otherviews.py +++ b/rowers/views/otherviews.py @@ -1,10 +1,22 @@ from rowers.views.statements import * +from rowers.interactiveplots import sleep from rq import Queue from redis import Redis from rq.job import Job +@login_required() +def sleep_view(request): + + script, div = sleep() + + return render(request, + "sleep.html", + { + "the_div": div, + "the_script": script, + }) @login_required() def download_fit(request, filename=''):