Merge branch 'release/v16.2.1'
This commit is contained in:
+2
-1
@@ -51,7 +51,7 @@ import arrow
|
||||
thetimezone = get_current_timezone()
|
||||
from rowingdata import (
|
||||
TCXParser, RowProParser, ErgDataParser,
|
||||
CoxMateParser,
|
||||
CoxMateParser, HeroParser,
|
||||
BoatCoachParser, RowPerfectParser, BoatCoachAdvancedParser,
|
||||
ETHParser,
|
||||
MysteryParser, BoatCoachOTWParser,QuiskeParser,
|
||||
@@ -1828,6 +1828,7 @@ parsers = {
|
||||
'humon': HumonParser,
|
||||
'eth': ETHParser,
|
||||
'nklinklogbook': NKLiNKLogbookParser,
|
||||
'hero': HeroParser,
|
||||
}
|
||||
|
||||
def parsenonpainsled(fileformat,f2,summary,startdatetime='',empowerfirmware=None,inboard=None,oarlength=None):
|
||||
|
||||
@@ -1850,7 +1850,7 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
||||
outids = []
|
||||
|
||||
|
||||
workouts = Workout.objects.filter(user=user.rower,date__gte=startdate,
|
||||
workouts = Workout.objects.filter(user=user.rower,date__gte=startdate-datetime.timedelta(days=90),
|
||||
date__lte=enddate,
|
||||
workouttype__in=mytypes.rowtypes,
|
||||
duplicate=False).order_by('date')
|
||||
@@ -1869,7 +1869,8 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
||||
dates,
|
||||
testpower,testduration,
|
||||
impulses,
|
||||
startdate,enddate,
|
||||
startdate-datetime.timedelta(days=90),
|
||||
enddate,
|
||||
user,metricchoice,
|
||||
kfatigue,kfitness)
|
||||
|
||||
@@ -1900,6 +1901,9 @@ def performance_chart(user,startdate=None,enddate=None,kfitness=42,kfatigue=7,
|
||||
df.sort_values(['date'],inplace=True)
|
||||
df = df.groupby(['date']).max()
|
||||
df['date'] = df.index.values
|
||||
mask = df['date'] > np.datetime64(startdate)
|
||||
df = df.loc[mask]
|
||||
|
||||
|
||||
|
||||
source = ColumnDataSource(
|
||||
|
||||
@@ -383,6 +383,9 @@ def async_get_workout(user,stravaid):
|
||||
|
||||
# Get a Strava workout summary data and stroke data by ID
|
||||
def get_workout(user,stravaid,do_async=False):
|
||||
if do_async:
|
||||
res = async_get_workout(user,stravaid)
|
||||
return {},pd.DataFrame()
|
||||
try:
|
||||
thetoken = strava_open(user)
|
||||
except NoTokenError: # pragma: no cover
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
{% for workout in workouts %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/rowers/workout/stravaimport/{{ workout|lookup:'id' }}/">Import</a></td>
|
||||
<a href="/rowers/workout/stravaimport/{{ workout|lookup:'id' }}/async/">Import</a></td>
|
||||
<td>{{ workout|lookup:'name' }}</td>
|
||||
<td>{{ workout|lookup:'starttime' }}</td>
|
||||
<td>{{ workout|lookup:'duration' }} </td>
|
||||
|
||||
@@ -2008,6 +2008,18 @@ def workout_c2import_view(request,page=1,userid=0,message=""):
|
||||
'page':page,
|
||||
})
|
||||
|
||||
importlistviews = {
|
||||
'c2':'workout_c2import_view',
|
||||
'strava':'workout_stravaimport_view',
|
||||
'polar':'workout_polarimport_view',
|
||||
'ownapi':'workout_view',
|
||||
'runkeeper':'workout_runkeeperimport_view',
|
||||
'sporttracks':'workout_sporttracksimport_view',
|
||||
'trainingpeaks':'workout_view',
|
||||
'underarmour':'workout_underarmourimport_view',
|
||||
'nk':'workout_nkimport_view',
|
||||
}
|
||||
|
||||
importsources = {
|
||||
'c2':c2stuff,
|
||||
'strava':stravastuff,
|
||||
@@ -2049,7 +2061,8 @@ def workout_getimportview(request,externalid,source = 'c2',do_async=False):
|
||||
|
||||
if do_async: # pragma: no cover
|
||||
messages.info(request,"Your workout will be imported in the background")
|
||||
url = reverse('workouts_view')
|
||||
# this should return to the respective import list page
|
||||
url = reverse(importlistviews[source])
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
if not data: # pragma: no cover
|
||||
|
||||
Reference in New Issue
Block a user