diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 242e6a53..12c0a1ec 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2510,7 +2510,16 @@ def thumbnails_set(r,id,favorites): columns += [f.yparam2 for f in favorites] columns += ['time'] - rowdata = dataprep.getsmallrowdata_db(columns,ids=[id],doclean=True) + try: + rowdata = dataprep.getsmallrowdata_db(columns,ids=[id],doclean=True) + except: + return [ + {'script':"", + 'div':"", + 'notes':"" + }] + + rowdata.dropna(axis=1,how='all',inplace=True) if rowdata.empty: diff --git a/rowers/templates/advancededit.html b/rowers/templates/advancededit.html index a79ebad3..0df1fff3 100644 --- a/rowers/templates/advancededit.html +++ b/rowers/templates/advancededit.html @@ -24,7 +24,12 @@ Edit Workout

-
+
+

+ Workflow View +

+
+

Export

diff --git a/rowers/templates/advancedotw.html b/rowers/templates/advancedotw.html index 7bd5340b..3c4999fc 100644 --- a/rowers/templates/advancedotw.html +++ b/rowers/templates/advancedotw.html @@ -23,7 +23,12 @@ Edit Workout

-
+
+

+ Workflow View +

+
+

Export

diff --git a/rowers/templates/flexchart3otw.html b/rowers/templates/flexchart3otw.html index 5da6e48c..02e698d3 100644 --- a/rowers/templates/flexchart3otw.html +++ b/rowers/templates/flexchart3otw.html @@ -32,7 +32,12 @@ Edit Workout

-
+
+

+ Workflow View +

+
+

Advanced Edit

diff --git a/rowers/templates/map_view.html b/rowers/templates/map_view.html index e48ec411..cde62d7f 100644 --- a/rowers/templates/map_view.html +++ b/rowers/templates/map_view.html @@ -43,7 +43,13 @@ Edit Workout

-
+
+

+ Workflow View +

+ +
+

Advanced Edit

diff --git a/rowers/templates/otwsetpower.html b/rowers/templates/otwsetpower.html index 30ad309d..51218c6a 100644 --- a/rowers/templates/otwsetpower.html +++ b/rowers/templates/otwsetpower.html @@ -14,7 +14,13 @@ Edit Workout

-
+
+

+ Workflow View +

+ +
+

Advanced Edit

@@ -62,4 +68,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/rowers/templates/panel_map.html b/rowers/templates/panel_map.html new file mode 100644 index 00000000..9fd40d8a --- /dev/null +++ b/rowers/templates/panel_map.html @@ -0,0 +1,9 @@ +
+ {{ mapdiv|safe }} + + + {{ mapscript|safe }} +
+ + + diff --git a/rowers/templates/panel_mapview.html b/rowers/templates/panel_mapview.html new file mode 100644 index 00000000..0d819ffa --- /dev/null +++ b/rowers/templates/panel_mapview.html @@ -0,0 +1,5 @@ +
+

+ Map View +

+
diff --git a/rowers/templates/streamedit.html b/rowers/templates/streamedit.html index 1e4ba1a0..b12def3c 100644 --- a/rowers/templates/streamedit.html +++ b/rowers/templates/streamedit.html @@ -29,7 +29,10 @@
- diff --git a/rowers/templates/summary_edit.html b/rowers/templates/summary_edit.html index 8c3cf177..2d49567a 100644 --- a/rowers/templates/summary_edit.html +++ b/rowers/templates/summary_edit.html @@ -23,7 +23,7 @@
diff --git a/rowers/templates/windedit.html b/rowers/templates/windedit.html index d49dd272..e0eb56bb 100644 --- a/rowers/templates/windedit.html +++ b/rowers/templates/windedit.html @@ -28,7 +28,10 @@
- diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 37cd8956..26edc221 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -44,7 +44,12 @@
-
+
+

+ Workflow View +

+
+

Map View

diff --git a/rowers/templates/workoutstats.html b/rowers/templates/workoutstats.html index 75dc0f8c..3a02f214 100644 --- a/rowers/templates/workoutstats.html +++ b/rowers/templates/workoutstats.html @@ -18,7 +18,7 @@
diff --git a/rowers/utils.py b/rowers/utils.py index 205c74e9..89f181d2 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -9,6 +9,7 @@ workflowmiddlepanel = ( ('panel_statcharts.html','Static Charts'), ('flexthumbnails.html','Flex Charts'), ('panel_summary.html','Summary'), + ('panel_map.html','Map'), ) defaultmiddle = ['panel_statcharts.html', @@ -25,7 +26,8 @@ workflowleftpanel = ( ('panel_geekyheader.html','Geeky Header'), ('panel_editwind.html','Edit Wind Data'), ('panel_editstream.html','Edit Stream Data'), - ('panel_otwpower.html','Run OTW Power Calculations') + ('panel_otwpower.html','Run OTW Power Calculations'), + ('panel_mapview.html','Map'), ) defaultleft = [ diff --git a/rowers/views.py b/rowers/views.py index 0faed633..7cbeaaf6 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -157,6 +157,27 @@ from interactiveplots import * # Define the API documentation schema_view = get_swagger_view(title='Rowsandall API') +# Test if row data include candidates +def rowhascoordinates(row): + # create interactive plot + f1 = row.csvfilename + u = row.user.user + r = getrower(u) + rowdata = rdata(f1) + hascoordinates = 1 + if rowdata != 0: + try: + latitude = rowdata.df[' latitude'] + if not latitude.std(): + hascoordinates = 0 + except KeyError,AttributeError: + hascoordinates = 0 + + else: + hascoordinates = 0 + + return hascoordinates + # Custom error pages with Rowsandall headers def error500_view(request): response = render_to_response('500.html', {}, @@ -5231,7 +5252,11 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): kwargs = { 'id':int(id)} - url = reverse(workout_advanced_view,kwargs=kwargs) + try: + url = request.session['referer'] + except KeyError: + url = reverse(workout_advanced_view,kwargs=kwargs) + response = HttpResponseRedirect(url) return response @@ -6006,8 +6031,21 @@ def workout_workflow_view(request,id): charts = [] - if favorites: + if favorites and 'flexthumbnails.html' in r.workflowmiddlepanel: charts = thumbnails_set(r,id,favorites) + if charts[0]['script'] == '': + charts = [] + + if 'panel_map.html' in r.workflowmiddlepanel and rowhascoordinates(row): + rowdata = rdata(row.csvfilename) + mapscript,mapdiv = leaflet_chart2(rowdata.df[' latitude'], + rowdata.df[' longitude'], + row.name) + else: + mapscript = '' + mapdiv = '' + + statcharts = GraphImage.objects.filter(workout=row) @@ -6023,6 +6061,8 @@ def workout_workflow_view(request,id): 'leftTemplates':leftTemplates, 'charts':charts, 'workout':row, + 'mapscript':mapscript, + 'mapdiv':mapdiv, 'statcharts':statcharts, })