Private
Public Access
1
0

race comparison

This commit is contained in:
Sander Roosendaal
2018-12-17 10:48:15 +01:00
parent 4d89711b58
commit 5b6a376c58
4 changed files with 144 additions and 0 deletions

View File

@@ -16,6 +16,12 @@
</a>
</li>
{% if race %}
{% if results %}
<li id="compare">
<a href="/rowers/virtualevent/{{ race.id }}/compare">
<i class="fas fa-balance-scale fa-fw"></i>&nbsp;Compare Results</a>
</li>
{% endif %}
{% if reguest.user.is_anonymous %}
<li id="race-register">
{% if race.sessiontype == 'race' %}

View File

@@ -41,5 +41,9 @@
{% endblock %}
{% block sidebar %}
{% if active == 'nav-racing' %}
{% include 'menu_racing.html' %}
{% else %}
{% include 'menu_workouts.html' %}
{% endif %}
{% endblock %}

View File

@@ -278,6 +278,7 @@ urlpatterns = [
url(r'^workout/(?P<id>\d+)/interactiveotwplot$',views.workout_otwpowerplot_view),
url(r'^workout/(?P<id>\d+)/wind$',views.workout_wind_view),
url(r'^workout/(?P<id>\d+)/image$',views.workout_uploadimage_view),
url(r'^virtualevent/(?P<id>\d+)/compare$',views.virtualevent_compare_view),
url(r'^virtualevent/(?P<id>\d+)/image$',
views.virtualevent_uploadimage_view),
url(r'^virtualevent/(?P<id>\d+)/setimage/(?P<logoid>\d+)/$',

View File

@@ -5598,6 +5598,139 @@ def team_comparison_select(request,
'teams':get_my_teams(request.user),
})
def virtualevent_compare_view(request,id=0):
results = []
promember = 0
if not request.user.is_anonymous():
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
else:
r = None
try:
race = VirtualRace.objects.get(id=id)
except VirtualRace.DoesNotExist:
raise Http404("Virtual Race does not exist")
if race.sessiontype == 'race':
script,div = course_map(race.course)
resultobj = VirtualRaceResult
else:
script = ''
div = ''
resultobj = IndoorVirtualRaceResult
results = resultobj.objects.filter(
race=race,
workoutid__isnull=False,
coursecompleted=True,
).order_by("duration","-distance")
workoutids = [result.workoutid for result in results]
if request.method == 'GET':
xparam = race.sessionmode if race.sessionmode in ['distance','time'] else 'time'
yparam = 'pace'
plottype = 'line'
request.session['ids'] = workoutids
request.session['plottype'] = plottype
request.session['xparam'] = xparam
request.session['yparam'] = yparam
workouts = []
for id in workoutids:
try:
workouts.append(Workout.objects.get(id=id))
except Workout.DoesNotExist:
pass
labeldict = {
int(w.id): w.__unicode__() for w in workouts
}
chartform = ChartParamChoiceForm(
initial = {
'xparam':xparam,
'yparam':yparam,
'plottype':plottype,
'teamid':0
}
)
elif request.method == 'POST':
chartform = ChartParamChoiceForm(request.POST)
if chartform.is_valid():
xparam = chartform.cleaned_data['xparam']
yparam = chartform.cleaned_data['yparam']
plottype = chartform.cleaned_data['plottype']
teamid = chartform.cleaned_data['teamid']
workoutids = request.session['ids']
request.session['ids'] = workoutids
workouts = []
for id in workoutids:
try:
workouts.append(Workout.objects.get(id=id))
except Workout.DoesNotExist:
pass
labeldict = {
int(w.id): w.__unicode__() for w in workouts
}
res = interactive_multiple_compare_chart(workoutids,xparam,yparam,
promember=promember,
plottype=plottype,
labeldict=labeldict)
script = res[0]
div = res[1]
errormessage = res[3]
if errormessage != '':
messages.error(request,errormessage)
breadcrumbs = [
{
'url': reverse(virtualevents_view),
'name': 'Racing'
},
{
'url':reverse(virtualevent_view,
kwargs={
'id':race.id,
}
),
'name': race.name
},
{
'url':reverse(virtualevent_compare_view,
kwargs={
'id':race.id,
}
),
'name': 'Compare'
}
]
return render(request,'multicompare.html',
{'interactiveplot':script,
'the_div':div,
'breadcrumbs':breadcrumbs,
'rower':r,
'race':race,
'results':results,
'active':'nav-racing',
'promember':promember,
'teamid':0,
'chartform':chartform,
'teams':[]
})
@login_required()
def plannedsession_compare_view(request,id=0,userid=0):
r = getrequestrower(request,userid=userid)