diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 1130e22d..b8cd6aea 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2806,16 +2806,13 @@ def interactive_streamchart(id=0,promember=0): return [script,div] -def interactive_chart(id=0,promember=0,intervaldata = {}, timepos = None): +def interactive_chart(id=0,promember=0,intervaldata = {}): # Add hover to this comma-separated string and see what changes if (promember==1): TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair' else: TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair' - if timepos: - TOOLS = '' - columns = ['time','pace','hr','fpace','ftime','spm'] datadf = dataprep.getsmallrowdata_db(columns,ids=[id]) @@ -2934,32 +2931,6 @@ def interactive_chart(id=0,promember=0,intervaldata = {}, timepos = None): right='time_r',source=intervalsource,color='mediumvioletred', y_range_name='spmax',fill_alpha=0.2,line_alpha=0.2) - if timepos: - timepos = datetime.timedelta(seconds=timepos) - timeline = ColumnDataSource( - data=dict( - x = [timepos,timepos], - y = [10,100] - )) - plot.line('x','y',source=timeline,y_range_name='spmax') - - callback = CustomJS(args = dict(timeline=timeline), - code=""" - var data = timeline.data - var x = data['x'] - var y = data['y'] - var sliderpos = cb_obj.value - data['x'] = [sliderpos,sliderpos] - timeline.change.emit(); - """ - ) - timemax = int(datadf['time'].max()/1000.) - slider = Slider(start=0,end=100,step=1.0,callback=callback) - slider.js_on_change('value',callback) - layout = layoutcolumn([plot,slider]) - else: - layout = plot - hover = plot.select(dict(type=HoverTool)) @@ -2975,10 +2946,55 @@ def interactive_chart(id=0,promember=0,intervaldata = {}, timepos = None): hover.names = ["spm","pace"] script, div = components(layout) - js_resources = INLINE.render_js() - css_resources = INLINE.render_css() - return [script,div,js_resources,css_resources] + return [script,div] + +def interactive_chart_video(id=0): + + columns = ['time','pace','hr','fpace','ftime','spm'] + datadf = dataprep.getsmallrowdata_db(columns,ids=[id]) + + datadf.dropna(axis=0,how='any',inplace=True) + + row = Workout.objects.get(id=id) + if datadf.empty: + return "","No Valid Data Available" + + + try: + spm = datadf['spm'] + except KeyError: + datadf['spm'] = 0 + + try: + pace = datadf['pace'] + except KeyError: + datadf['pace'] = 0 + + div = """ + + + """ + + script = """ + var ctx = document.getElementById("myChart").getContext('2d'); + var data = { + x: [1,2,3,4], + y: [1,4,9,16] + } + var myChart = new Chart(ctx, { + type: 'line', + data: { + datasets: [{ + data: data, + }] + }, + }); + """ + + return [script,div] + + def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='', ploterrorbars=False, diff --git a/rowers/templates/embedded_video.html b/rowers/templates/embedded_video.html index 7e172740..a4ec93b3 100644 --- a/rowers/templates/embedded_video.html +++ b/rowers/templates/embedded_video.html @@ -11,6 +11,8 @@ {% block meta %} {% leaflet_js %} {% leaflet_css %} + + {% endblock %} {% block main %} @@ -75,8 +77,9 @@ {{ mapdiv | safe}} -
- +
+
  • diff --git a/rowers/templates/embedded_video_ote.html b/rowers/templates/embedded_video_ote.html deleted file mode 100644 index 64ca6a79..00000000 --- a/rowers/templates/embedded_video_ote.html +++ /dev/null @@ -1,296 +0,0 @@ -{% extends "newbase.html" %} -{% load staticfiles %} -{% load rowerfilters %} -{% load i18n %} -{% load leaflet_tags %} - - - -{% block title %}Workout Video{% endblock %} - -{% block meta %} -{% leaflet_js %} -{% leaflet_css %} -{% endblock %} - -{% block main %} - -{{ js_res|safe }} -{{ css_res|safe }} - -{% language 'en' %} -

    Video Analysis for {{ workout.name }}

    - -

     

    -
    -
      - {% if form %} -
    • - - {{ form.as_table }} -
      - {% csrf_token %} - {% if not analysis.id %} - - {% endif %} - -
    • -
    • - - {{ metricsform.as_table }} -
      -
    • - {% endif %} -
    • - {% if analysis and user.is_authenticated and user == rower.user %} -

      - Delete Analysis -

      - {% endif %} -
    • -
    -
    - -{% endlanguage %} - -{% endblock %} - -{% block sidebar %} -{% include 'menu_workout.html' %} -{% endblock %} diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index ba4c2054..ae3d25a3 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -202,10 +202,8 @@ def workout_video_create_view(request,id=0): if hascoordinates: mapscript, mapdiv = leaflet_chart_video(data['latitude'],data['longitude'], w.name) - js_res = '' - css_res = '' else: - mapscript, mapdiv,js_res,css_res = interactive_chart(w.id,promember=1,timepos=78) + mapscript, mapdiv = interactive_chart_video(w.id) breadcrumbs = [ { @@ -225,10 +223,7 @@ def workout_video_create_view(request,id=0): analysis = {'delay':delay} - if hascoordinates: - template = 'embedded_video.html' - else: - template = 'embedded_video_ote.html' + template = 'embedded_video.html' return render(request, template, @@ -246,8 +241,6 @@ def workout_video_create_view(request,id=0): 'maxtime':maxtime, 'metrics':metrics, 'locked': False, - 'js_res': js_res, - 'css_res': css_res }) # Show the EMpower Oarlock generated Stroke Profile