adding fitness
This commit is contained in:
+37
-11
@@ -17,9 +17,9 @@ def weightfromrecord(row,metricchoice):
|
|||||||
return 0 # pragma: no cover
|
return 0 # pragma: no cover
|
||||||
|
|
||||||
|
|
||||||
def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, kfitness):
|
def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, kfitness,actualfitness=0, actualfatigue=0):
|
||||||
fatigue = 0
|
fatigue = actualfatigue
|
||||||
fitness = 0
|
fitness = actualfitness
|
||||||
impulses = []
|
impulses = []
|
||||||
|
|
||||||
for f in fatigues:
|
for f in fatigues:
|
||||||
@@ -57,13 +57,28 @@ def getfatigues(df, fatigues, fitnesses, dates, impulses, startdate, kfatigue, k
|
|||||||
|
|
||||||
return fatigues, fitnesses, dates, impulses
|
return fatigues, fitnesses, dates, impulses
|
||||||
|
|
||||||
def calculate_fitness(rower):
|
def calculate_fitness(rower, reset=False):
|
||||||
workouts = Workout.objects.filter(user=rower, date__gte=datetime.date.today() - datetime.timedelta(days=90),
|
try:
|
||||||
duplicate=False).order_by('date')
|
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
|
kfitness = rower.kfit
|
||||||
kfatigue = rower.kfatigue
|
kfatigue = rower.kfatigue
|
||||||
|
actualfitness = rower.actualfit
|
||||||
|
actualfatigue = rower.actualfatigue
|
||||||
|
|
||||||
records = []
|
records = []
|
||||||
|
|
||||||
@@ -81,13 +96,15 @@ def calculate_fitness(rower):
|
|||||||
|
|
||||||
df = pl.from_records(records)
|
df = pl.from_records(records)
|
||||||
if df.is_empty():
|
if df.is_empty():
|
||||||
return 0, 0
|
return actualfitness, actualfatigue
|
||||||
|
|
||||||
dates = [arrow.get(w.date).datetime for w in workouts]
|
dates = [arrow.get(w.date).datetime for w in workouts]
|
||||||
impulses = [np.nan for w in workouts]
|
impulses = [np.nan for w in workouts]
|
||||||
fitnesses = [np.nan for w in workouts]
|
fitnesses = [np.nan for w in workouts]
|
||||||
fatigues = [np.nan for w in workouts]
|
fatigues = [np.nan for w in workouts]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fatigues, fitnesses, dates, impulses = getfatigues(
|
fatigues, fitnesses, dates, impulses = getfatigues(
|
||||||
df,
|
df,
|
||||||
fatigues,
|
fatigues,
|
||||||
@@ -95,7 +112,9 @@ def calculate_fitness(rower):
|
|||||||
dates,
|
dates,
|
||||||
impulses,
|
impulses,
|
||||||
datetime.date.today()-datetime.timedelta(days=90),
|
datetime.date.today()-datetime.timedelta(days=90),
|
||||||
kfatigue, kfitness
|
kfatigue, kfitness,
|
||||||
|
actualfitness=actualfitness,
|
||||||
|
actualfatigue=actualfatigue,
|
||||||
)
|
)
|
||||||
|
|
||||||
df = pl.DataFrame({
|
df = pl.DataFrame({
|
||||||
@@ -105,8 +124,15 @@ def calculate_fitness(rower):
|
|||||||
'impulse': impulses,
|
'impulse': impulses,
|
||||||
})
|
})
|
||||||
|
|
||||||
endfitness = fitnesses[-2]
|
endfitness = fitnesses[-1]
|
||||||
endfatigue = fatigues[-2]
|
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
|
return endfitness, endfatigue
|
||||||
|
|
||||||
|
|||||||
@@ -1129,6 +1129,10 @@ class Rower(models.Model):
|
|||||||
showfit = models.BooleanField(default=False)
|
showfit = models.BooleanField(default=False)
|
||||||
showfresh = models.BooleanField(default=False)
|
showfresh = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
actualfit = models.IntegerField(default=0, verbose_name='Actual Fitness')
|
||||||
|
actualfatigue = models.IntegerField(default=0, verbose_name='Actual Fatigue')
|
||||||
|
last_workout = models.BigIntegerField(default=0, verbose_name='Last Workout ID')
|
||||||
|
|
||||||
pw_ut2 = models.IntegerField(default=124, verbose_name="UT2 Power")
|
pw_ut2 = models.IntegerField(default=124, verbose_name="UT2 Power")
|
||||||
pw_ut1 = models.IntegerField(default=171, verbose_name="UT1 Power")
|
pw_ut1 = models.IntegerField(default=171, verbose_name="UT1 Power")
|
||||||
pw_at = models.IntegerField(default=203, verbose_name="AT Power")
|
pw_at = models.IntegerField(default=203, verbose_name="AT Power")
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{% extends "newbase.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% load rowerfilters %}
|
||||||
|
|
||||||
|
{% block title %}Planned Sessions{% endblock %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
|
||||||
|
<h1>Load current week</h1>
|
||||||
|
|
||||||
|
<form enctype="multipart/form-data" method="post">
|
||||||
|
<table>
|
||||||
|
{{ form.as_table }}
|
||||||
|
</table>
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block sidebar %}
|
||||||
|
{% include 'menu_plan.html' %}
|
||||||
|
{% endblock %}
|
||||||
BIN
Binary file not shown.
@@ -4257,12 +4257,12 @@ def currentweekplan_view(request):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url': reverse('currentweekplan_view'),
|
'url': reverse('currentweekplan_view'),
|
||||||
'name': "Next week"
|
'name': "Current week"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
return render(request,
|
return render(request,
|
||||||
'loadnextweek.html',
|
'loadcurrentweek.html',
|
||||||
{'rower': r,
|
{'rower': r,
|
||||||
'form': form,
|
'form': form,
|
||||||
'active': active,
|
'active': active,
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user