OTW power CP graph working!
This commit is contained in:
@@ -292,14 +292,11 @@ def iscoachmember(user):
|
||||
return result
|
||||
|
||||
def getrower(user):
|
||||
if not user.is_anonymous():
|
||||
try:
|
||||
r = Rower.objects.get(user=user)
|
||||
except Rower.DoesNotExist:
|
||||
r = Rower(user=user)
|
||||
r.save()
|
||||
else:
|
||||
raise PermissionDenied("You need to log in to use this function")
|
||||
try:
|
||||
r = Rower.objects.get(user=user)
|
||||
except Rower.DoesNotExist:
|
||||
r = Rower(user=user)
|
||||
r.save()
|
||||
|
||||
return r
|
||||
|
||||
@@ -2900,8 +2897,10 @@ def otwrankings_view(request,theuser=0,
|
||||
|
||||
thesecs.append(timesecs)
|
||||
|
||||
|
||||
maxt = pd.Series(thesecs).max()
|
||||
if len(thesecs) != 0:
|
||||
maxt = pd.Series(thesecs).max()
|
||||
else:
|
||||
maxt = 1000.
|
||||
|
||||
maxlog10 = np.log10(maxt)
|
||||
logarr = np.arange(100)*maxlog10/100.
|
||||
@@ -2912,11 +2911,16 @@ def otwrankings_view(request,theuser=0,
|
||||
|
||||
delta = []
|
||||
cpvalue = []
|
||||
avgpower = {}
|
||||
|
||||
dfgrouped = df.groupby(['workoutid'])
|
||||
for id,group in dfgrouped:
|
||||
tt = group['time']
|
||||
ww = group['power']
|
||||
try:
|
||||
avgpower[id] = int(ww.mean())
|
||||
except ValueError:
|
||||
avgpower[id] = '---'
|
||||
if not np.isnan(ww.mean()):
|
||||
length = len(ww)
|
||||
dt = []
|
||||
@@ -2946,6 +2950,7 @@ def otwrankings_view(request,theuser=0,
|
||||
for d in logarr:
|
||||
delta.append(d)
|
||||
|
||||
print avgpower
|
||||
dt = pd.Series(delta,name='Delta')
|
||||
cpvalue = pd.Series(cpvalue,name='CP')
|
||||
|
||||
@@ -2955,13 +2960,15 @@ def otwrankings_view(request,theuser=0,
|
||||
'CP':cpvalue,
|
||||
})
|
||||
|
||||
powerdf.sort_values(['Delta','CP'],ascending=[1,0])
|
||||
powerdf.drop_duplicates(subset='Delta',keep='first')
|
||||
powerdf = powerdf[powerdf['CP']>0]
|
||||
powerdf.dropna(axis=0,inplace=True)
|
||||
powerdf.sort_values(['Delta','CP'],ascending=[1,0],inplace=True)
|
||||
powerdf.drop_duplicates(subset='Delta',keep='first',inplace=True)
|
||||
|
||||
|
||||
# create interactive plot
|
||||
if len(powerdf) !=0 :
|
||||
res = interactive_otwcpchart(powerdf)
|
||||
res = interactive_otwcpchart(powerdf,promember=promember)
|
||||
script = res[0]
|
||||
div = res[1]
|
||||
p1 = res[2]
|
||||
@@ -2979,16 +2986,12 @@ def otwrankings_view(request,theuser=0,
|
||||
|
||||
if request.method == 'POST' and "piece" in request.POST:
|
||||
form = PredictedPieceForm(request.POST)
|
||||
if form.is_valid():
|
||||
value = form.cleaned_data['value']
|
||||
hourvalue,value = divmod(value,60)
|
||||
if hourvalue >= 24:
|
||||
hourvalue = 23
|
||||
pieceunit = form.cleaned_data['pieceunit']
|
||||
if pieceunit == 'd':
|
||||
rankingdistances.append(value)
|
||||
else:
|
||||
rankingdurations.append(datetime.time(minute=value,hour=hourvalue))
|
||||
clean = form.is_valid()
|
||||
value = form.cleaned_data['value']
|
||||
hourvalue,value = divmod(value,60)
|
||||
if hourvalue >= 24:
|
||||
hourvalue = 23
|
||||
rankingdurations.append(datetime.time(minute=value,hour=hourvalue))
|
||||
else:
|
||||
form = PredictedPieceForm()
|
||||
|
||||
@@ -3012,13 +3015,15 @@ def otwrankings_view(request,theuser=0,
|
||||
if pwr <= 0:
|
||||
pwr = 50.
|
||||
|
||||
a = {
|
||||
'duration':timedeltaconv(t),
|
||||
'power':int(pwr)}
|
||||
cpredictions.append(a)
|
||||
if not np.isnan(pwr):
|
||||
a = {
|
||||
'duration':timedeltaconv(t),
|
||||
'power':int(pwr)}
|
||||
cpredictions.append(a)
|
||||
|
||||
print cpredictions
|
||||
|
||||
del form.fields["pieceunit"]
|
||||
|
||||
messages.error(request,message)
|
||||
return render(request, 'otwrankings.html',
|
||||
{'rankingworkouts':theworkouts,
|
||||
@@ -3026,6 +3031,7 @@ def otwrankings_view(request,theuser=0,
|
||||
'the_div':div,
|
||||
'predictions':predictions,
|
||||
'cpredictions':cpredictions,
|
||||
'avgpower':avgpower,
|
||||
'form':form,
|
||||
'dateform':dateform,
|
||||
'deltaform':deltaform,
|
||||
|
||||
Reference in New Issue
Block a user