adding fitness
This commit is contained in:
@@ -17,9 +17,9 @@ def weightfromrecord(row,metricchoice):
|
||||
return 0 # pragma: no cover
|
||||
|
||||
|
||||
def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, kfitness):
|
||||
fatigue = 0
|
||||
fitness = 0
|
||||
def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, kfitness,actualfitness=0, actualfatigue=0):
|
||||
fatigue = actualfatigue
|
||||
fitness = actualfitness
|
||||
impulses = []
|
||||
|
||||
for f in fatigues:
|
||||
@@ -57,13 +57,28 @@ def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, k
|
||||
|
||||
return fatigues, fitnesses, dates, impulses
|
||||
|
||||
def calculate_fitness(rower):
|
||||
workouts = Workout.objects.filter(user=rower, date__gte=datetime.date.today() - datetime.timedelta(days=90),
|
||||
duplicate=False).order_by('date')
|
||||
def calculate_fitness(rower, reset=False):
|
||||
try:
|
||||
w_last = Workout.objects.get(id=rower.last_workout)
|
||||
datetime_last = w_last.startdatetime
|
||||
except Workout.DoesNotExist:
|
||||
w_last = None
|
||||
datetime_last = datetime.datetime.now() - datetime.timedelta(days=90)
|
||||
|
||||
if reset:
|
||||
rower.last_workout = 0
|
||||
rower.actualfit = 0
|
||||
rower.actualfatigue = 0
|
||||
rower.save()
|
||||
datetime_last = datetime.datetime.now() - datetime.timedelta(days=90)
|
||||
|
||||
workouts = Workout.objects.filter(user=rower, startdatetime__gt=datetime_last,
|
||||
duplicate=False).order_by('date').exclude(id=rower.last_workout)
|
||||
|
||||
kfitness = rower.kfit
|
||||
kfatigue = rower.kfatigue
|
||||
|
||||
actualfitness = rower.actualfit
|
||||
actualfatigue = rower.actualfatigue
|
||||
|
||||
records = []
|
||||
|
||||
@@ -81,13 +96,15 @@ def calculate_fitness(rower):
|
||||
|
||||
df = pl.from_records(records)
|
||||
if df.is_empty():
|
||||
return 0, 0
|
||||
return actualfitness, actualfatigue
|
||||
|
||||
dates = [arrow.get(w.date).datetime for w in workouts]
|
||||
impulses = [np.nan for w in workouts]
|
||||
fitnesses = [np.nan for w in workouts]
|
||||
fatigues = [np.nan for w in workouts]
|
||||
|
||||
|
||||
|
||||
fatigues, fitnesses, dates, impulses = getfatigues(
|
||||
df,
|
||||
fatigues,
|
||||
@@ -95,7 +112,9 @@ def calculate_fitness(rower):
|
||||
dates,
|
||||
impulses,
|
||||
datetime.date.today()-datetime.timedelta(days=90),
|
||||
kfatigue, kfitness
|
||||
kfatigue, kfitness,
|
||||
actualfitness=actualfitness,
|
||||
actualfatigue=actualfatigue,
|
||||
)
|
||||
|
||||
df = pl.DataFrame({
|
||||
@@ -105,8 +124,15 @@ def calculate_fitness(rower):
|
||||
'impulse': impulses,
|
||||
})
|
||||
|
||||
endfitness = fitnesses[-2]
|
||||
endfatigue = fatigues[-2]
|
||||
endfitness = fitnesses[-1]
|
||||
endfatigue = fatigues[-1]
|
||||
|
||||
if workouts:
|
||||
enddate = workouts.last().date
|
||||
rower.last_workout = workouts.last().id
|
||||
rower.actualfit = int(endfitness)
|
||||
rower.actualfatigue = int(endfatigue)
|
||||
rower.save()
|
||||
|
||||
return endfitness, endfatigue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user