Merge branch 'develop' into feature/fastestchallenges
This commit is contained in:
@@ -404,6 +404,7 @@ def getfastest(df,thevalue,mode='distance'):
|
||||
ones = 1+np.zeros(len(G))
|
||||
Ghor = np.outer(ones,G)
|
||||
Thor = np.outer(ones,T)
|
||||
Tver = np.outer(T,ones)
|
||||
Gver = np.outer(G,ones)
|
||||
Gdif = Ghor-Gver
|
||||
Gdif = np.tril(Gdif.T).T
|
||||
@@ -422,7 +423,7 @@ def getfastest(df,thevalue,mode='distance'):
|
||||
restime.append(deltat*i)
|
||||
cp = np.diag(F,i).max()
|
||||
loc = np.argmax(np.diag(F,i))
|
||||
thestarttime = np.diag(Thor,i)[loc]
|
||||
thestarttime = tt[loc]
|
||||
starttimes.append(thestarttime)
|
||||
distance.append(cp)
|
||||
|
||||
@@ -444,13 +445,14 @@ def getfastest(df,thevalue,mode='distance'):
|
||||
starttime = griddata(distance,starttimes,[thevalue],method='linear',rescale=True)
|
||||
distance = griddata(distance,distance,[thevalue],method='linear',rescale=True)
|
||||
endtime = starttime+duration
|
||||
print(duration,starttime,endtime)
|
||||
#print(duration,starttime,endtime,'aa')
|
||||
return duration[0]/1000.,starttime[0]/1000.,endtime[0]/1000.
|
||||
else:
|
||||
distance = griddata(restime,distance,[thevalue*60*1000],method='linear',rescale=True)
|
||||
starttime = griddata(restime,starttimes,[thevalue*60*1000],method='linear',rescale=True)
|
||||
duration = griddata(restime,restime,[thevalue*60*1000],method='linear',rescale=True)
|
||||
endtime = starttime+duration
|
||||
#print(distance,starttime,endtime )
|
||||
return distance[0],starttime[0]/1000.,endtime[0]/1000.
|
||||
|
||||
return 0
|
||||
|
||||
@@ -59,7 +59,11 @@
|
||||
{% if result|lookup:'coursecompleted' %}
|
||||
<tr>
|
||||
<td>{{ forloop.counter }}</td>
|
||||
<td>{{ result|lookup:'name' }}</td>
|
||||
<td>
|
||||
<a href="{% url 'workout_view' id=result|lookup:'workoutid'|encode sessionresult=result|lookup:'sessionresult' %}">
|
||||
{{ result|lookup:'name' }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ result|lookup:'distance' }}</td>
|
||||
<td>{{ result|lookup:'time'|deltatimeprint }}</td>
|
||||
<td>{{ result|lookup:'date'|date:"Y-m-d" }}</td>
|
||||
|
||||
@@ -458,6 +458,7 @@ urlpatterns = [
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/split/$',views.workout_split_view,name='workout_split_view'),
|
||||
# re_path(r'^workout/(?P<id>\d+)/interactiveplot/$',views.workout_biginteractive_view),
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/view/entry/(?P<raceresult>\d+)/$',views.workout_view,name='workout_view'),
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/view/session/(?P<sessionresult>\d+)/$',views.workout_view,name='workout_view'),
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/view/$',views.workout_view,name='workout_view'),
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/video/$',views.workout_video_create_view,
|
||||
name='workout_video_create_view'),
|
||||
|
||||
@@ -1933,6 +1933,8 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
'time': dddelta,
|
||||
'type': w.workouttype,
|
||||
'coursecompleted':True,
|
||||
'sessionresult':0,
|
||||
'workoutid':w.id,
|
||||
}
|
||||
if ps.sessiontype == 'coursetest':
|
||||
vs = CourseTestResult.objects.filter(plannedsession=ps,
|
||||
@@ -1952,6 +1954,7 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
)
|
||||
wdict['distance'] = int(round(coursemeters))
|
||||
wdict['coursecompleted'] = coursecompleted
|
||||
wdict['sessionresult'] = record.id
|
||||
else:
|
||||
record = CourseTestResult(
|
||||
userid=w.user.id,
|
||||
@@ -1996,7 +1999,9 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
'date': w.date,
|
||||
'distance': record.distance,
|
||||
'type': w.workouttype,
|
||||
'workoutid':w.id,
|
||||
'coursecompleted':True,
|
||||
'sessionresult':record.id
|
||||
}
|
||||
|
||||
coursecompleted = record.coursecompleted
|
||||
@@ -2029,7 +2034,9 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
'date': w.date,
|
||||
'distance': record.distance,
|
||||
'type': w.workouttype,
|
||||
'workoutid':w.id,
|
||||
'coursecompleted':True,
|
||||
'sessionresult':record.id,
|
||||
}
|
||||
|
||||
coursecompleted = record.coursecompleted
|
||||
|
||||
@@ -2323,7 +2323,7 @@ def workout_fusion_list(request,id=0,
|
||||
|
||||
# Basic view of workout
|
||||
@permission_required('workout.view_workout',fn=get_workout_by_opaqueid,raise_exception=True)
|
||||
def workout_view(request,id=0,raceresult=0):
|
||||
def workout_view(request,id=0,raceresult=0,sessionresult=0):
|
||||
request.session['referer'] = absolute(request)['PATH']
|
||||
|
||||
if not request.user.is_anonymous:
|
||||
@@ -2352,8 +2352,27 @@ def workout_view(request,id=0,raceresult=0):
|
||||
except:
|
||||
pass
|
||||
|
||||
# get raceresult
|
||||
# get raceresult or session result
|
||||
intervaldata = {}
|
||||
if sessionresult != 0:
|
||||
try:
|
||||
result = CourseTestResult.objects.get(id=sessionresult)
|
||||
startsecond = result.startsecond
|
||||
endsecond = result.endsecond
|
||||
duration = row.duration
|
||||
durationsecs = duration.hour*3600+duration.minute*60+duration.second
|
||||
itime = [startsecond,endsecond-startsecond]
|
||||
itype = [3,4]
|
||||
intervaldata['itime'] = itime
|
||||
intervaldata['itype'] = itype
|
||||
|
||||
rowdata.updateinterval_metric(' AverageBoatSpeed (m/s)',0.1,mode='larger',
|
||||
debug=False,smoothwindow=15.,
|
||||
activewindow = [startsecond,endsecond])
|
||||
summary = rowdata.allstats()
|
||||
except CourseTestResult.DoesNotExist:
|
||||
pass
|
||||
|
||||
if raceresult != 0:
|
||||
try:
|
||||
result = VirtualRaceResult.objects.get(id=raceresult)
|
||||
|
||||
Reference in New Issue
Block a user