diff --git a/rowers/templates/menu_racing.html b/rowers/templates/menu_racing.html
index 305818c4..e377f57f 100644
--- a/rowers/templates/menu_racing.html
+++ b/rowers/templates/menu_racing.html
@@ -16,6 +16,12 @@
{% if race %}
+ {% if results %}
+
+
+ Compare Results
+
+ {% endif %}
{% if reguest.user.is_anonymous %}
{% if race.sessiontype == 'race' %}
diff --git a/rowers/templates/multicompare.html b/rowers/templates/multicompare.html
index 3096a343..78d59f2c 100644
--- a/rowers/templates/multicompare.html
+++ b/rowers/templates/multicompare.html
@@ -41,5 +41,9 @@
{% endblock %}
{% block sidebar %}
+{% if active == 'nav-racing' %}
+{% include 'menu_racing.html' %}
+{% else %}
{% include 'menu_workouts.html' %}
+{% endif %}
{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 242c07b4..c64090b0 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -278,6 +278,7 @@ urlpatterns = [
url(r'^workout/(?P\d+)/interactiveotwplot$',views.workout_otwpowerplot_view),
url(r'^workout/(?P\d+)/wind$',views.workout_wind_view),
url(r'^workout/(?P\d+)/image$',views.workout_uploadimage_view),
+ url(r'^virtualevent/(?P\d+)/compare$',views.virtualevent_compare_view),
url(r'^virtualevent/(?P\d+)/image$',
views.virtualevent_uploadimage_view),
url(r'^virtualevent/(?P\d+)/setimage/(?P\d+)/$',
diff --git a/rowers/views.py b/rowers/views.py
index 609192f0..c4a69681 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -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)