Private
Public Access
1
0

adding workout selector to virtual event compare

This commit is contained in:
Sander Roosendaal
2020-06-06 16:20:16 +02:00
parent 3d622ecfda
commit 55ad7ce2d9
3 changed files with 51 additions and 20 deletions

View File

@@ -65,7 +65,10 @@
</p>
<link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css" type="text/css" />
<script async="true" src="https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.js"></script>
<script src="https://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.js"></script>
<script async="true" type="text/text/javascript">
Bokeh.set_log_level("info")
</script>
{{ interactiveplot |safe }}

View File

@@ -15,28 +15,34 @@
<h1>Interactive Comparison</h1>
<form enctype="multipart/form-data" action="" method="post">
<ul class="main-content">
<li class="grid_4">
<li class="grid_4">
<div>
{{ the_div|safe }}
</div>
</li>
<li class="grid_4">
<form enctype="multipart/form-data" action="" method="post">
{% csrf_token %}
<table>
{{ chartform.as_table }}
</table>
<li class="grid_2">
{% csrf_token %}
<table>
{{ chartform.as_table }}
</table>
</li>
<li class="grid_2">
<table>
{{ form.as_table }}
</table>
<p>
<input name='workoutselectform' class="button green" type="submit" value="Submit">
<input name='workoutselectform' class="button" type="submit" value="Submit">
</p>
</form>
</li>
</ul>
</li>
</ul>
</form>
{% endblock %}

View File

@@ -1615,6 +1615,8 @@ def virtualevent_compare_view(request,id=0):
workoutids = [result.workoutid for result in results]
startenddict = {}
if race.sessiontype == 'race':
for result in results:
@@ -1659,6 +1661,10 @@ def virtualevent_compare_view(request,id=0):
except Workout.DoesNotExist:
pass
form = WorkoutMultipleCompareForm()
form.fields["workouts"].queryset = Workout.objects.filter(id__in=workoutids)
form.fields["workouts"].initial = Workout.objects.filter(id__in=workoutids)
labeldict = {
int(w.id): w.__str__() for w in workouts
@@ -1674,7 +1680,25 @@ def virtualevent_compare_view(request,id=0):
'teamid':0
}
)
if request.method == 'POST' and 'workouts' in request.POST:
form = WorkoutMultipleCompareForm(request.POST)
form.fields["workouts"].queryset = Workout.objects.filter(id__in=workoutids)
chartform = ChartParamChoiceForm(request.POST)
if form.is_valid() and chartform.is_valid():
cd = form.cleaned_data
workouts = cd['workouts']
workoutids = [w.id for w in workouts]
xparam = chartform.cleaned_data['xparam']
yparam = chartform.cleaned_data['yparam']
plottype = chartform.cleaned_data['plottype']
teamid = chartform.cleaned_data['teamid']
ids = [int(w.id) for w in workouts]
request.session['ids'] = ids
elif request.method == 'POST':
form = WorkoutMultipleCompareForm()
form.fields["workouts"].queryset = Workout.objects.filter(id__in=workoutids)
request.session['ids'] = workoutids
chartform = ChartParamChoiceForm(request.POST)
if chartform.is_valid():
xparam = chartform.cleaned_data['xparam']
@@ -1686,7 +1710,6 @@ def virtualevent_compare_view(request,id=0):
except KeyError:
pass
request.session['ids'] = workoutids
workouts = []
for id in workoutids:
try:
@@ -1695,11 +1718,9 @@ def virtualevent_compare_view(request,id=0):
except Workout.DoesNotExist:
pass
labeldict = {
int(w.id): w.__str__() for w in workouts
}
else:
raise HttpResponse('Only GET and POST allowed',status=405)
labeldict = {
int(w.id): w.__str__() for w in workouts
}
res = interactive_multiple_compare_chart(workoutids,xparam,yparam,
@@ -1747,6 +1768,7 @@ def virtualevent_compare_view(request,id=0):
'promember':promember,
'teamid':0,
'chartform':chartform,
'form':form,
'teams':[]
})