diff --git a/rowers/templates/boxplot.html b/rowers/templates/boxplot.html index 346a780e..5d4b313f 100644 --- a/rowers/templates/boxplot.html +++ b/rowers/templates/boxplot.html @@ -1,10 +1,10 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% load rowerfilters %} {% block title %}Rowsandall Box Plot {% endblock %} -{% block content %} +{% block main %} - - -
-

Box Chart

-
-
+

Box Chart

+
    +
  • +
    {{ the_div|safe }}
    -
-
-
-
+ +
  • + {% csrf_token %} {{ chartform.as_table }}
    -
    -

    - -

    -
    +

    + +

  • -
    -
    + +
  • - You can use the form above to change the metric or filter the data. + You can use the form to change the metric or filter the data. Set Min SPM and Max SPM to select only strokes in a certain range of stroke rates. Set Work per Stroke to a minimum value to remove "paddle" strokes or turns.

    -
  • -
    -
    + + {% endblock %} @@ -92,3 +68,7 @@ {% endblock %} + +{% block sidebar %} +{% include 'menu_analytics.html' %} +{% endblock %} diff --git a/rowers/templates/multicompare.html b/rowers/templates/multicompare.html index 2907d8d4..e3e32d7b 100644 --- a/rowers/templates/multicompare.html +++ b/rowers/templates/multicompare.html @@ -15,7 +15,13 @@

    Interactive Comparison

    diff --git a/rowers/urls.py b/rowers/urls.py index 15545a03..25fffff4 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -164,9 +164,7 @@ urlpatterns = [ url(r'^workouts-join-select/team/(?P\d+)/$',views.workouts_join_select), url(r'^workouts-join-select/(?P\w+.*)/(?P\w+.*)$',views.workouts_join_select), url(r'^workouts-join-select/$',views.workouts_join_select), - url(r'^user-boxplot-select/user/(?P\d+)$',views.user_boxplot_select), - url(r'^user-boxplot-select/user/(?P\d+)/(?P\w+.*)/(?P\w+.*)$',views.user_boxplot_select), - url(r'^user-boxplot-select/(?P\w+.*)/(?P\w+.*)$',views.user_boxplot_select), + url(r'^user-boxplot-select/user/(?P\d+)/$',views.user_boxplot_select), url(r'^user-boxplot-select/$',views.user_boxplot_select), url(r'^user-multiflex-select/user/(?P\d+)/(?P\w+.*)/(?P\w+.*)$',views.user_multiflex_select), url(r'^user-multiflex-select/user/(?P\d+)/$',views.user_multiflex_select), diff --git a/rowers/views.py b/rowers/views.py index 23949385..3b9cb626 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5977,6 +5977,7 @@ def user_boxplot_select(request, r = getrequestrower(request,userid=userid) user = r.user + userid = user.id if 'options' in request.session: options = request.session['options'] @@ -5997,6 +5998,12 @@ def user_boxplot_select(request, except KeyError: includereststrokes = False + if 'startdate' in request.session: + startdate = iso8601.parse_date(request.session['startdate']) + + + if 'enddate' in request.session: + enddate = iso8601.parse_date(request.session['enddate']) workstrokesonly = not includereststrokes @@ -6015,7 +6022,7 @@ def user_boxplot_select(request, startdate = s - if request.method == 'POST' and 'daterange' in request.POST: + if request.method == 'POST': dateform = DateRangeForm(request.POST) if dateform.is_valid(): startdate = dateform.cleaned_data['startdate'] @@ -6024,6 +6031,25 @@ def user_boxplot_select(request, enddatestring = enddate.strftime('%Y-%m-%d') request.session['startdate'] = startdatestring request.session['enddate'] = enddatestring + optionsform = TrendFlexModalForm(request.POST) + if optionsform.is_valid(): + modality = optionsform.cleaned_data['modality'] + waterboattype = optionsform.cleaned_data['waterboattype'] + if modality == 'all': + modalities = [m[0] for m in types.workouttypes] + else: + modalities = [modality] + if modality != 'water': + waterboattype = [b[0] for b in types.boattypes] + + + if 'rankingonly' in optionsform.cleaned_data: + rankingonly = optionsform.cleaned_data['rankingonly'] + else: + rankingonly = False + + request.session['modalities'] = modalities + request.session['waterboattype'] = waterboattype else: dateform = DateRangeForm(initial={ 'startdate':startdate, @@ -6040,27 +6066,8 @@ def user_boxplot_select(request, modalities = [m[0] for m in types.workouttypes] modality = 'all' - if request.method == 'POST' and 'optionsform' in request.POST: - optionsform = TrendFlexModalForm(request.POST) - if optionsform.is_valid(): - modality = optionsform.cleaned_data['modality'] - waterboattype = optionsform.cleaned_data['waterboattype'] - if modality == 'all': - modalities = [m[0] for m in types.workouttypes] - else: - modalities = [modality] - - if modality != 'water': - waterboattype = [b[0] for b in types.boattypes] - if 'rankingonly' in optionsform.cleaned_data: - rankingonly = optionsform.cleaned_data['rankingonly'] - else: - rankingonly = False - - request.session['modalities'] = modalities - request.session['waterboattype'] = waterboattype negtypes = [] for b in types.boattypes: @@ -6128,12 +6135,24 @@ def user_boxplot_select(request, request.session['startdate'] = startdatestring request.session['enddate'] = enddatestring + r = getrower(request.user) + breadcrumbs = [ + { + 'url':'/rowers/list-workouts', + 'name':'Workouts' + }, + { + 'url':reverse(user_boxplot_select,kwargs={'userid':userid}), + 'name': 'BoxPlot Select' + }, + ] return render(request, 'user_boxplot_select.html', {'workouts': workouts, 'dateform':dateform, 'startdate':startdate, 'enddate':enddate, 'rower':r, + 'breadcrumbs':breadcrumbs, 'theuser':user, 'form':form, 'active':'nav-analysis', @@ -6305,7 +6324,7 @@ def boxplot_view(request,userid=0, else: return HttpResponse("invalid form") else: - url = reverse(user_boxplot_select) + url = reverse(user_boxplot_select,kwargs={'userid':userid}) return HttpResponseRedirect(url) div = get_call() @@ -6321,9 +6340,28 @@ def boxplot_view(request,userid=0, request.session['options'] = options + r = getrequestrower(request,userid=userid) + breadcrumbs = [ + { + 'url':'/rowers/list-workouts', + 'name':'Workouts' + }, + { + 'url':reverse(user_boxplot_select,kwargs={'userid':userid}), + 'name': 'BoxPlot Select' + }, + { + 'url':reverse(boxplot_view,kwargs={'userid':userid}), + 'name': 'BoxPlot Select' + }, + ] + return render(request,'boxplot.html', {'interactiveplot':'', 'the_div':div, + 'rower':r, + 'breadcrumbs':breadcrumbs, + 'active':'nav-analysis', 'chartform':chartform, 'userid':userid, 'teams':get_my_teams(request.user),