Private
Public Access
1
0

opening analysis for rowers themselves

This commit is contained in:
2024-12-14 15:53:35 +01:00
parent 8724011f8c
commit 915e562a76
4 changed files with 59 additions and 43 deletions

View File

@@ -208,7 +208,8 @@ class StravaPrivacy(TestCase):
# throw out "c2import", "nkimport", "stravaimport", "concept2import", "sporttracksimport" from the set
workouts = set([w for w in workouts if w not in [
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport']])
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport',
'intervalsimport']])
self.assertEqual(len(workouts),5)
@@ -230,7 +231,8 @@ class StravaPrivacy(TestCase):
# throw out "c2import", "nkimport", "stravaimport", "concept2import", "sporttracksimport" from the set
workouts = set([w for w in workouts if w not in [
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport']])
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport',
'intervalsimport']])
self.assertEqual(len(workouts),2)
@@ -251,7 +253,8 @@ class StravaPrivacy(TestCase):
# throw out "c2import", "nkimport", "stravaimport", "concept2import", "sporttracksimport" from the set
workouts = set([w for w in workouts if w not in [
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport']])
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport',
'intervalsimport']])
self.assertEqual(len(workouts),2)
@@ -272,7 +275,8 @@ class StravaPrivacy(TestCase):
# throw out "c2import", "nkimport", "stravaimport", "concept2import", "sporttracksimport" from the set
workouts = set([w for w in workouts if w not in [
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport']])
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport',
'intervalsimport']])
self.assertEqual(len(workouts),2)
@@ -293,7 +297,8 @@ class StravaPrivacy(TestCase):
# throw out "c2import", "nkimport", "stravaimport", "concept2import", "sporttracksimport" from the set
workouts = set([w for w in workouts if w not in [
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport']])
'upload', 'addmanual', 'c2import', 'polarimport', 'rp3import', 'nkimport', 'stravaimport', 'concept2import', 'sporttracksimport',
'intervalsimport']])
self.assertEqual(len(workouts),2)
@@ -447,7 +452,8 @@ class StravaPrivacy(TestCase):
# print all lines of response.content that contain '<label for="id_workouts_'
#print([line for line in response.content.decode('utf-8').split('\n') if '<label for="id_workouts_' in line])
#print(form_data['workouts'])
self.assertEqual(response.content.count(b'<label for="id_workouts_'),2)
#self.assertEqual(response.content.count(b'<label for="id_workouts_'),2) <-- if we forbid the user to use strava workouts
self.assertEqual(response.content.count(b'<label for="id_workouts_'),5)
# get data from histodata function
ws = Workout.objects.filter(user=self.r)
@@ -460,7 +466,8 @@ class StravaPrivacy(TestCase):
self.assertTrue(data.startswith('data = ['))
self.assertTrue(data.endswith(']'))
# count the number of commas between the brackets
self.assertEqual(data.count(','),2062)
#self.assertEqual(data.count(','),2062) <-- if we forbid the user to use strava workouts
self.assertEqual(data.count(','),5155)
class OwnApi(TestCase):

Binary file not shown.

View File

@@ -156,6 +156,8 @@ def do_sync(w, options, quick=False):
do_icu_export = False
if w.user.intervals_auto_export is True:
do_icu_export = True
if w.workoutsource == 'strava':
do_icu_export = False
else:
try:
do_icu_export = options['upload_to_Intervals']
@@ -208,6 +210,8 @@ def do_sync(w, options, quick=False):
do_c2_export = False
if w.user.c2_auto_export is True:
do_c2_export = True
if w.workoutsource == 'strava':
do_c2_export = False
else:
try:
do_c2_export = options['upload_to_C2'] or do_c2_export
@@ -282,6 +286,8 @@ def do_sync(w, options, quick=False):
try: # pragma: no cover
upload_to_st = options['upload_to_SportTracks'] or do_st_export
do_st_export = upload_to_st
if w.workoutsource == 'strava':
do_st_export = False
except KeyError:
upload_to_st = False
@@ -304,6 +310,8 @@ def do_sync(w, options, quick=False):
do_tp_export = w.user.trainingpeaks_auto_export
try:
upload_to_tp = options['upload_to_TrainingPeaks'] or do_tp_export
if w.workoutsource == 'strava':
do_tp_export = False
do_tp_export = upload_to_tp
except KeyError:
upload_to_st = False

View File

@@ -48,9 +48,9 @@ def analysis_new(request,
firstworkout = get_workout(id)
if not is_workout_team(request.user, firstworkout): # pragma: no cover
raise PermissionDenied("You are not allowed to use this workout")
if workout_is_strava(firstworkout):
messages.error(request, "You cannot use Strava workouts for analysis")
raise PermissionDenied("You cannot use Strava workouts for analysis")
#if workout_is_strava(firstworkout):
# messages.error(request, "You cannot use Strava workouts for analysis")
# raise PermissionDenied("You cannot use Strava workouts for analysis")
firstworkoutquery = Workout.objects.filter(id=encoder.decode_hex(id))
try:
@@ -202,14 +202,14 @@ def analysis_new(request,
startdatetime__lte=enddate,
workouttype__in=modalities,
rankingpiece__in=rankingtypes,
).exclude(workoutsource='strava')
)#.exclude(workoutsource='strava')
elif theteam is not None and theteam.viewing == 'coachonly': # pragma: no cover
workouts = Workout.objects.filter(team=theteam, user=r,
startdatetime__gte=startdate,
startdatetime__lte=enddate,
workouttype__in=modalities,
rankingpiece__in=rankingtypes,
).exclude(workoutsource='strava')
)#.exclude(workoutsource='strava')
elif thesession is not None:
workouts = get_workouts_session(r, thesession)
else:
@@ -257,7 +257,7 @@ def analysis_new(request,
else:
selectedworkouts = Workout.objects.filter(id__in=ids)
form.fields["workouts"].queryset = (workouts | selectedworkouts).exclude(workoutsource='strava')
form.fields["workouts"].queryset = (workouts | selectedworkouts)#.exclude(workoutsource='strava')
optionsform = AnalysisOptionsForm(initial={
'modality': modality,
@@ -367,10 +367,10 @@ def trendflexdata(workouts, options, userid=0):
savedata = options.get('savedata',False)
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError: # pragma: no cover
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError: # pragma: no cover
# workouts = [w for w in workouts if w.workoutsource != 'strava']
fieldlist, fielddict = dataprep.getstatsfields()
fieldlist = [xparam, yparam, groupby,
@@ -574,10 +574,10 @@ def flexalldata(workouts, options):
trendline = options['trendline']
promember = True
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError: # pragma: no cover
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError: # pragma: no cover
# workouts = [w for w in workouts if w.workoutsource != 'strava']
workstrokesonly = not includereststrokes
@@ -625,10 +625,10 @@ def histodata(workouts, options):
workmax = options['workmax']
userid = options['userid']
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError: # pragma: no cover
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError: # pragma: no cover
# workouts = [w for w in workouts if w.workoutsource != 'strava']
if userid == 0: # pragma: no cover
@@ -818,10 +818,10 @@ def cpdata(workouts, options):
def statsdata(workouts, options):
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError: # pragma: no cover
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError: # pragma: no cover
# workouts = [w for w in workouts if w.workoutsource != 'strava']
includereststrokes = options['includereststrokes']
ids = options['ids']
@@ -897,10 +897,10 @@ def statsdata(workouts, options):
def comparisondata(workouts, options):
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError: # pragma: no cover
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError: # pragma: no cover
# workouts = [w for w in workouts if w.workoutsource != 'strava']
includereststrokes = options['includereststrokes']
xparam = options['xaxis']
@@ -945,10 +945,10 @@ def comparisondata(workouts, options):
def boxplotdata(workouts, options):
try:
workouts = workouts.exclude(workoutsource='strava')
except AttributeError:
workouts = [w for w in workouts if w.workoutsource != 'strava']
#try:
# workouts = workouts.exclude(workoutsource='strava')
#except AttributeError:
# workouts = [w for w in workouts if w.workoutsource != 'strava']
includereststrokes = options['includereststrokes']
spmmin = options['spmmin']
@@ -1055,8 +1055,9 @@ def analysis_view_data(request, userid=0):
for id in ids:
try:
w = Workout.objects.get(id=id)
if w.workoutsource != 'strava':
workouts.append(w)
#if w.workoutsource != 'strava':
# workouts.append(w)
workouts.append(w)
except Workout.DoesNotExist: # pragma: no cover
pass
@@ -1106,7 +1107,7 @@ def create_marker_workouts_view(request, userid=0,
workouts = Workout.objects.filter(user=theuser.rower, date__gte=startdate,
date__lte=enddate,
workouttype__in=mytypes.rowtypes,
duplicate=False).order_by('date').exclude(workoutsource='strava')
duplicate=False).order_by('date')#.exclude(workoutsource='strava')
for workout in workouts:
_ = dataprep.check_marker(workout)
@@ -1150,7 +1151,7 @@ def goldmedalscores_view(request, userid=0,
theuser, startdate=startdate, enddate=enddate,
)
bestworkouts = Workout.objects.filter(id__in=ids).order_by('-date').exclude(workoutsource='strava')
bestworkouts = Workout.objects.filter(id__in=ids).order_by('-date')#.exclude(workoutsource='strava')
breadcrumbs = [
{
@@ -1348,7 +1349,7 @@ def performancemanager_view(request, userid=0, mode='rower',
user = therower, date__gte=startdate-datetime.timedelta(days=90),
date__lte=enddate,
duplicate=False,
rankingpiece=True, workouttype__in=mytypes.rowtypes).order_by('date').exclude(workoutsource='strava')
rankingpiece=True, workouttype__in=mytypes.rowtypes).order_by('date')#.exclude(workoutsource='strava')
ids = [w.id for w in markerworkouts]
form = PerformanceManagerForm(initial={
@@ -1360,7 +1361,7 @@ def performancemanager_view(request, userid=0, mode='rower',
ids = pd.Series(ids, dtype='int').dropna().values
bestworkouts = Workout.objects.filter(id__in=ids).order_by('-date').exclude(workoutsource='strava')
bestworkouts = Workout.objects.filter(id__in=ids).order_by('-date')#.exclude(workoutsource='strava')
breadcrumbs = [
{