Private
Public Access
1
0

adding click to open workout

This commit is contained in:
Sander Roosendaal
2021-01-09 11:59:42 +01:00
parent 882c0cbf6b
commit 4c9b6b687b
3 changed files with 33 additions and 0 deletions

View File

@@ -132,6 +132,14 @@ def newtestpowerdate(x):
return x['date']
def workoutname(id):
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
return ''
return str(w)
def all_goldmedalstandards(workouts,startdate,enddate):
dates = []
testpowers = []
@@ -1824,6 +1832,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
# all workouts
alldates,alltestpower,allduration = all_goldmedalstandards(workouts,startdate,enddate)
allids = [w.id for w in workouts]
nrdays = (enddate-startdate).days
@@ -1832,6 +1841,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
score = []
markerduration = []
duration = []
workoutid = []
previous = 0
@@ -1845,6 +1855,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
markerduration.append(testduration[i])
score.append(np.nan)
duration.append(np.nan)
workoutid.append(id)
for i in range(len(alldates)):
td.append(arrow.get(alldates[i]).datetime)
@@ -1852,6 +1863,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
score.append(alltestpower[i])
markerduration.append(np.nan)
duration.append(allduration[i])
workoutid.append(allids[i])
for i in range(nrdays+1):
td.append(arrow.get(startdate+datetime.timedelta(days=i)).datetime)
@@ -1859,6 +1871,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
score.append(np.nan)
markerduration.append(np.nan)
duration.append(np.nan)
workoutid.append(0)
df = pd.DataFrame({
@@ -1867,6 +1880,7 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
'score':score,
'duration':duration,
'date':td,
'id':workoutid,
})
@@ -1875,6 +1889,9 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
df = df.groupby(['date']).max()
df['date'] = df.index.values
df['url'] = df['id'].apply(lambda x:settings.SITE_URL+'/rowers/workout/{id}/'.format(id=encoder.encode_hex(x)))
df['workout'] = df['id'].apply(lambda x:workoutname(x))
source = ColumnDataSource(
data = dict(
@@ -1884,6 +1901,8 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
duration = df['duration'].apply(lambda x:totaltime_sec_to_string(x,shorten=True)),
date = df['date'],
fdate = df['date'].map(lambda x: x.strftime('%d-%m-%Y')),
url = df['url'],
workout = df['workout']
)
)
@@ -1943,8 +1962,12 @@ def goldmedalscorechart(user,startdate=None,enddate=None):
('Score','@score{int}'),
('Duration', '@duration'),
('Date','@fdate'),
('Workout','@workout')
])
taptool = plot.select(type=TapTool)
taptool.callback = OpenURL(url='@url')
script, div = components(plot)
return script, div,outids