adding click to open workout
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user