From 3040997317d5dfa285da93fa266501f80c072d24 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 5 Mar 2024 22:32:12 +0100 Subject: [PATCH] first map using microservice --- rowers/interactiveplots.py | 181 +++++++------------------------------ rowsandall_app/settings.py | 7 ++ 2 files changed, 40 insertions(+), 148 deletions(-) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 4c03a9bb..03b8cc38 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -82,10 +82,24 @@ queue = django_rq.get_queue('default') queuelow = django_rq.get_queue('low') queuehigh = django_rq.get_queue('low') +import requests activate(settings.TIME_ZONE) thetimezone = get_current_timezone() +def get_chart(end_point, chart_data): + + url = settings.ROWSANDALL_CHARTS_URL+end_point + headers = {'authorization':"Bearer {token}".format(token=settings.ROWSANDALL_CHARTS_TOKEN)} + response = requests.post(url, json=chart_data, headers=headers) + if response.status_code == 200: + script = response.json()['script'] + div = response.json()['div'] + else: + script = '' + div = response.reason + + return script, div def workoutname(id): try: @@ -2164,162 +2178,33 @@ def interactive_histoall(theworkouts, histoparam, includereststrokes, def course_map(course): - latmean, lonmean, coordinates = course_coord_center(course) - if course.with_cn_nav_waypoints: - latmean, lonmean, coordinates = course_coord_crewnerd_navigation(course) - lat_min, lat_max, long_min, long_max = course_coord_maxmin(course) - coordinates = course_spline(coordinates) - - scoordinates = "[" - - for index, row in coordinates.iterrows(): - scoordinates += """[{x},{y}], - """.format( - x=row['latitude'], - y=row['longitude'] - ) - - scoordinates += "]" - - polygons = GeoPolygon.objects.filter( - course=course).order_by("order_in_course") - - plabels = '' - - for p in polygons: - coords = polygon_coord_center(p) - - plabels += """ - var marker = L.marker([{latbegin}, {longbegin}]).addTo(mymap); - marker.bindPopup("{name}"); - - """.format( - latbegin=coords[0], - longbegin=coords[1], - name=p.name - ) - - pcoordinates = """[ - """ - - for p in polygons: - pcoordinates += """[ - [""" - - points = GeoPoint.objects.filter(polygon=p).order_by("order_in_poly") - - for pt in points: - pcoordinates += "[{x},{y}],".format( - x=pt.latitude, - y=pt.longitude - ) - - # remove last comma - pcoordinates = pcoordinates[:-1] - pcoordinates += """] - ], - """ - - pcoordinates += """ - ]""" - - script = """ - - """.format( - latmean=latmean, - lonmean=lonmean, - scoordinates=scoordinates, - pcoordinates=pcoordinates, - plabels=plabels - ) - - div = """ -
- """ + course_dict['polygons'] = polygons_list + script, div = get_chart("/map", course_dict) + return script, div + + def get_map_script_course( latmean, lonmean, diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 92f7b5b4..1f1ae122 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -599,6 +599,13 @@ except KeyError: # pragma: no cover WORKOUTS_FIT_TOKEN = 'aapnootmies' WORKOUTS_FIT_URL = 'http://localhost:50053/tojson' +try: + ROWSANDALL_CHARTS_TOKEN = CFG['rowsandall_charts_token'] + ROWSANDALL_CHARTS_URL = CFG['rowsandall_charts_url'] +except KeyError: + ROWSANDALL_CHARTS_TOKEN = 'aapnootmies' + ROWSANDALL_CHARTS_URL = 'http://localhost:3000' + # Recaptcha try: