Stats page v2
This commit is contained in:
@@ -2638,30 +2638,36 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
# Create stats
|
||||
stats = {}
|
||||
|
||||
# Get field names and remove those that are not useful in stats
|
||||
fieldnames = StrokeData._meta.get_all_field_names()
|
||||
fieldnames.remove('workoutid')
|
||||
fieldnames.remove('ergpace')
|
||||
fieldnames.remove('hr_an')
|
||||
fieldnames.remove('hr_tr')
|
||||
fieldnames.remove('hr_at')
|
||||
fieldnames.remove('hr_ut2')
|
||||
fieldnames.remove('hr_ut1')
|
||||
fieldnames.remove('time')
|
||||
fieldnames.remove('distance')
|
||||
fieldnames.remove('nowindpace')
|
||||
fieldnames.remove('fnowindpace')
|
||||
fieldnames.remove('fergpace')
|
||||
fieldnames.remove('equivergpower')
|
||||
fieldnames.remove('workoutstate')
|
||||
fieldnames.remove('fpace')
|
||||
fieldnames.remove('id')
|
||||
fieldnames.remove('ftime')
|
||||
fieldnames.remove('x_right')
|
||||
fieldnames.remove('hr_max')
|
||||
fieldnames.remove('hr_bottom')
|
||||
# Get field names and remove those that are not useful in stats
|
||||
fields = StrokeData._meta.get_fields()
|
||||
|
||||
|
||||
fielddict = {field.name:field.verbose_name for field in fields}
|
||||
|
||||
print fielddict
|
||||
|
||||
fielddict.pop('workoutid')
|
||||
fielddict.pop('ergpace')
|
||||
fielddict.pop('hr_an')
|
||||
fielddict.pop('hr_tr')
|
||||
fielddict.pop('hr_at')
|
||||
fielddict.pop('hr_ut2')
|
||||
fielddict.pop('hr_ut1')
|
||||
fielddict.pop('time')
|
||||
fielddict.pop('distance')
|
||||
fielddict.pop('nowindpace')
|
||||
fielddict.pop('fnowindpace')
|
||||
fielddict.pop('fergpace')
|
||||
fielddict.pop('equivergpower')
|
||||
fielddict.pop('workoutstate')
|
||||
fielddict.pop('fpace')
|
||||
fielddict.pop('pace')
|
||||
fielddict.pop('id')
|
||||
fielddict.pop('ftime')
|
||||
fielddict.pop('x_right')
|
||||
fielddict.pop('hr_max')
|
||||
fielddict.pop('hr_bottom')
|
||||
fielddict.pop('cumdist')
|
||||
|
||||
for field,verbosename in fielddict.iteritems():
|
||||
thedict = {
|
||||
'mean':datadf[field].mean(),
|
||||
@@ -2670,9 +2676,23 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
'max': datadf[field].max(),
|
||||
'median': datadf[field].median(),
|
||||
'firstq':datadf[field].quantile(q=0.25),
|
||||
'thirdq':datadf[field].quantile(q=0.75),
|
||||
'verbosename':verbosename,
|
||||
}
|
||||
stats[field] = thedict
|
||||
stats[field] = thedict
|
||||
|
||||
# Create a dict with correlation values
|
||||
cor = datadf.corr()
|
||||
cor.fillna(value=0,inplace=True)
|
||||
cordict = {}
|
||||
for field1,verbosename in fielddict.iteritems():
|
||||
thedict = {}
|
||||
for field2,verbosename in fielddict.iteritems():
|
||||
try:
|
||||
thedict[field2] = cor.ix[field1,field2]
|
||||
except KeyError:
|
||||
thedict[field2] = 0
|
||||
|
||||
cordict[field1] = thedict
|
||||
|
||||
return render(request,
|
||||
@@ -2680,6 +2700,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
{
|
||||
'stats':stats,
|
||||
'workout':row,
|
||||
'workstrokesonly':workstrokesonly,
|
||||
'cordict':cordict,
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user