initial attempt - not working yet
This commit is contained in:
@@ -2049,7 +2049,20 @@ def leaflet_chart(lat,lon,name=""):
|
|||||||
|
|
||||||
return script,div
|
return script,div
|
||||||
|
|
||||||
def leaflet_chart_compare(latlondf,name=""):
|
def leaflet_chart_compare(workoutids,labeldict={},startenddict={}):
|
||||||
|
data = []
|
||||||
|
for id in workoutids:
|
||||||
|
w = Workout.objects.get(id=id)
|
||||||
|
rowdata = rdata(w.csvfilename)
|
||||||
|
df = pd.DataFrame({
|
||||||
|
'id':id,
|
||||||
|
'latitude':rowdata.df[' latitude'],
|
||||||
|
'longitude':rowdata.df[' longitude']
|
||||||
|
})
|
||||||
|
data.append(f)
|
||||||
|
|
||||||
|
df = pd.concat(data,axis=0)
|
||||||
|
|
||||||
if lat.empty or lon.empty:
|
if lat.empty or lon.empty:
|
||||||
return [0,"invalid coordinate data"]
|
return [0,"invalid coordinate data"]
|
||||||
|
|
||||||
|
|||||||
@@ -1491,6 +1491,99 @@ def team_comparison_select(request,
|
|||||||
'teams':get_my_teams(request.user),
|
'teams':get_my_teams(request.user),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def virtualevent_mapcompare_view(request,id=0):
|
||||||
|
results = []
|
||||||
|
|
||||||
|
r = None
|
||||||
|
if not request.user.is_anonymous:
|
||||||
|
r = getrower(request.user)
|
||||||
|
|
||||||
|
try:
|
||||||
|
race = VirtualRace.objects.get(id=id)
|
||||||
|
except VirtualRace.DoesNotExist:
|
||||||
|
raise Http404("Virtual Challenge does not exist")
|
||||||
|
|
||||||
|
if race.sessiontype != 'race':
|
||||||
|
url = reverse(virtualevent_view,kwargs={'id':id})
|
||||||
|
messages.error(request,"This challenge doesn't have map data")
|
||||||
|
return HttpResponseRedirect(request)
|
||||||
|
|
||||||
|
results = VirtualRaceResult.objects.filter(
|
||||||
|
race=race,
|
||||||
|
workoutid__isnull=False,
|
||||||
|
coursecompleted=True,
|
||||||
|
).order_by("distance","duration")
|
||||||
|
|
||||||
|
workoutids = [result.workoutid for result in results]
|
||||||
|
|
||||||
|
startenddict = {}
|
||||||
|
if race.sessiontype == 'race':
|
||||||
|
for result in results:
|
||||||
|
startenddict[result.workoutid] = (result.startsecond,result.endsecond)
|
||||||
|
|
||||||
|
if len(workoutids) == 0:
|
||||||
|
url = reverse('virtualevent_view',
|
||||||
|
kwargs={
|
||||||
|
'id':race.id,
|
||||||
|
})
|
||||||
|
|
||||||
|
messages.info(request,'There are no results to display')
|
||||||
|
|
||||||
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
workouts = []
|
||||||
|
for id in workoutids:
|
||||||
|
try:
|
||||||
|
workouts.append(Workout.objects.get(id=id))
|
||||||
|
except Workout.DoesNotExist:
|
||||||
|
pass
|
||||||
|
|
||||||
|
labeldict = {
|
||||||
|
int(w.id): w.__str__() for w in workouts
|
||||||
|
}
|
||||||
|
|
||||||
|
script,div = leaflet_chart_compare(workoutids,
|
||||||
|
labeldict=labeldict,
|
||||||
|
startenddict=startenddict)
|
||||||
|
|
||||||
|
breadcrumbs = [
|
||||||
|
{
|
||||||
|
'url': reverse('virtualevents_view'),
|
||||||
|
'name': 'Racing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'url':reverse('virtualevent_view',
|
||||||
|
kwargs={
|
||||||
|
'id':race.id,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'name': race.name
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'url':reverse('virtualevent_mapcompare_view',
|
||||||
|
kwargs={
|
||||||
|
'id':race.id,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'name': 'Compare'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
return render(request,'mapcompare.html',
|
||||||
|
{'interactiveplot':script,
|
||||||
|
'the_div':div,
|
||||||
|
'breadcrumbs':breadcrumbs,
|
||||||
|
'rower':r,
|
||||||
|
'race':race,
|
||||||
|
'results':results,
|
||||||
|
'active':'nav-racing',
|
||||||
|
'promember':promember,
|
||||||
|
'teamid':0,
|
||||||
|
'chartform':chartform,
|
||||||
|
'teams':[]
|
||||||
|
})
|
||||||
|
|
||||||
def virtualevent_compare_view(request,id=0):
|
def virtualevent_compare_view(request,id=0):
|
||||||
results = []
|
results = []
|
||||||
|
|
||||||
@@ -1506,7 +1599,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
try:
|
try:
|
||||||
race = VirtualRace.objects.get(id=id)
|
race = VirtualRace.objects.get(id=id)
|
||||||
except VirtualRace.DoesNotExist:
|
except VirtualRace.DoesNotExist:
|
||||||
raise Http404("Virtual Race does not exist")
|
raise Http404("Virtual Challenge does not exist")
|
||||||
|
|
||||||
if race.sessiontype == 'race':
|
if race.sessiontype == 'race':
|
||||||
script,div = course_map(race.course)
|
script,div = course_map(race.course)
|
||||||
@@ -1531,6 +1624,8 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if len(workoutids) == 0:
|
if len(workoutids) == 0:
|
||||||
url = reverse('virtualevent_view',
|
url = reverse('virtualevent_view',
|
||||||
kwargs={
|
kwargs={
|
||||||
|
|||||||
Reference in New Issue
Block a user