race comparison
This commit is contained in:
@@ -16,6 +16,12 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% if race %}
|
{% if race %}
|
||||||
|
{% if results %}
|
||||||
|
<li id="compare">
|
||||||
|
<a href="/rowers/virtualevent/{{ race.id }}/compare">
|
||||||
|
<i class="fas fa-balance-scale fa-fw"></i> Compare Results</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
{% if reguest.user.is_anonymous %}
|
{% if reguest.user.is_anonymous %}
|
||||||
<li id="race-register">
|
<li id="race-register">
|
||||||
{% if race.sessiontype == 'race' %}
|
{% if race.sessiontype == 'race' %}
|
||||||
|
|||||||
@@ -41,5 +41,9 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
|
{% if active == 'nav-racing' %}
|
||||||
|
{% include 'menu_racing.html' %}
|
||||||
|
{% else %}
|
||||||
{% include 'menu_workouts.html' %}
|
{% include 'menu_workouts.html' %}
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -278,6 +278,7 @@ urlpatterns = [
|
|||||||
url(r'^workout/(?P<id>\d+)/interactiveotwplot$',views.workout_otwpowerplot_view),
|
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+)/wind$',views.workout_wind_view),
|
||||||
url(r'^workout/(?P<id>\d+)/image$',views.workout_uploadimage_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$',
|
url(r'^virtualevent/(?P<id>\d+)/image$',
|
||||||
views.virtualevent_uploadimage_view),
|
views.virtualevent_uploadimage_view),
|
||||||
url(r'^virtualevent/(?P<id>\d+)/setimage/(?P<logoid>\d+)/$',
|
url(r'^virtualevent/(?P<id>\d+)/setimage/(?P<logoid>\d+)/$',
|
||||||
|
|||||||
133
rowers/views.py
133
rowers/views.py
@@ -5598,6 +5598,139 @@ def team_comparison_select(request,
|
|||||||
'teams':get_my_teams(request.user),
|
'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()
|
@login_required()
|
||||||
def plannedsession_compare_view(request,id=0,userid=0):
|
def plannedsession_compare_view(request,id=0,userid=0):
|
||||||
r = getrequestrower(request,userid=userid)
|
r = getrequestrower(request,userid=userid)
|
||||||
|
|||||||
Reference in New Issue
Block a user