Private
Public Access
1
0

Merge branch 'develop' into feature/duplicatesprivate

This commit is contained in:
Sander Roosendaal
2017-06-08 05:23:41 +02:00
3 changed files with 125 additions and 103 deletions

View File

@@ -279,17 +279,39 @@ from rowers.models import checkworkoutuser
# Check if a user is a Coach member
def iscoachmember(user):
if not user.is_anonymous():
r = Rower.objects.get(user=user)
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
result = user.is_authenticated() and (r.rowerplan=='coach')
else:
result = False
return result
def getrower(user):
if not user.is_anonymous():
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
r = Rower(user=user)
r.save()
else:
raise PermissionDenied("You need to log in to use this function")
return r
# Check if a user is a Pro member
def ispromember(user):
if not user.is_anonymous():
r = Rower.objects.get(user=user)
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExists:
r = Rower(user=user)
r.save()
result = user.is_authenticated() and (r.rowerplan=='pro' or r.rowerplan=='coach')
else:
result = False
@@ -408,7 +430,7 @@ def add_workout_from_strokedata(user,importid,data,strokedata,
except:
thetimezone = 'UTC'
r = Rower.objects.get(user=user)
r = getrower(user)
try:
rowdatetime = iso8601.parse_date(data['date_utc'])
except KeyError:
@@ -572,7 +594,7 @@ def add_workout_from_runkeeperdata(user,importid,data):
except:
utcoffset = 0
r = Rower.objects.get(user=user)
r = getrower(user)
try:
rowdatetime = iso8601.parse_date(data['start_time'])
@@ -736,7 +758,7 @@ def add_workout_from_stdata(user,importid,data):
except:
thetimezone = 'UTC'
r = Rower.objects.get(user=user)
r = getrower(user)
try:
rowdatetime = iso8601.parse_date(data['start_time'])
except iso8601.ParseError:
@@ -899,7 +921,7 @@ def add_workout_from_underarmourdata(user,importid,data):
except:
thetimezone = 'UTC'
r = Rower.objects.get(user=user)
r = getrower(user)
try:
rowdatetime = iso8601.parse_date(data['start_datetime'])
except iso8601.ParseError:
@@ -1059,7 +1081,7 @@ def add_workout_from_underarmourdata(user,importid,data):
def workout_tcxemail_view(request,id=0):
message = ""
successmessage = ""
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
@@ -1167,7 +1189,7 @@ def workout_gpxemail_view(request,id=0):
@login_required()
def workout_csvemail_view(request,id=0):
message = ""
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
@@ -1207,7 +1229,7 @@ def workout_csvemail_view(request,id=0):
@login_required()
def workout_csvtoadmin_view(request,id=0):
message = ""
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
@@ -1242,7 +1264,7 @@ def workout_csvtoadmin_view(request,id=0):
@login_required()
def workout_tp_upload_view(request,id=0):
message = ""
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = -1
try:
thetoken = tp_open(r.user)
@@ -1300,7 +1322,7 @@ def workout_tp_upload_view(request,id=0):
@login_required()
def workout_strava_upload_view(request,id=0):
message = ""
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = -1
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
@@ -1721,14 +1743,14 @@ def rower_tp_authorize(request):
# Concept2 token refresh. URL for manual refresh. Not visible to users
@login_required()
def rower_c2_token_refresh(request):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = c2stuff.do_refresh_token(r.c2refreshtoken)
if res[0] != None:
access_token = res[0]
expires_in = res[1]
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.c2token = access_token
r.tokenexpirydate = expirydatetime
r.c2refreshtoken = refresh_token
@@ -1746,7 +1768,7 @@ def rower_c2_token_refresh(request):
# Underarmour token refresh. URL for manual refresh. Not visible to users
@login_required()
def rower_underarmour_token_refresh(request):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = underarmourstuff.do_refresh_token(
r.underarmourrefreshtoken,
r.underarmourtoken
@@ -1756,7 +1778,7 @@ def rower_underarmour_token_refresh(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.underarmourtoken = access_token
r.underarmourtokenexpirydate = expirydatetime
r.underarmourrefreshtoken = refresh_token
@@ -1771,7 +1793,7 @@ def rower_underarmour_token_refresh(request):
# TrainingPeaks token refresh. URL for manual refresh. Not visible to users
@login_required()
def rower_tp_token_refresh(request):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = tpstuff.do_refresh_token(
r.tprefreshtoken,
)
@@ -1780,7 +1802,7 @@ def rower_tp_token_refresh(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.tptoken = access_token
r.tptokenexpirydate = expirydatetime
r.tprefreshtoken = refresh_token
@@ -1795,7 +1817,7 @@ def rower_tp_token_refresh(request):
# SportTracks token refresh. URL for manual refresh. Not visible to users
@login_required()
def rower_sporttracks_token_refresh(request):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = sporttracksstuff.do_refresh_token(
r.sporttracksrefreshtoken,
)
@@ -1804,7 +1826,7 @@ def rower_sporttracks_token_refresh(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.sporttrackstoken = access_token
r.sporttrackstokenexpirydate = expirydatetime
r.sporttracksrefreshtoken = refresh_token
@@ -1838,7 +1860,7 @@ def rower_process_callback(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.c2token = access_token
r.tokenexpirydate = expirydatetime
r.c2refreshtoken = refresh_token
@@ -1890,7 +1912,7 @@ def rower_process_stravacallback(request):
if res[0]:
access_token = res[0]
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.stravatoken = access_token
r.save()
@@ -1909,7 +1931,7 @@ def rower_process_runkeepercallback(request):
code = request.GET['code']
access_token = runkeeperstuff.get_token(code)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.runkeepertoken = access_token
r.save()
@@ -1930,7 +1952,7 @@ def rower_process_sporttrackscallback(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.sporttrackstoken = access_token
r.sporttrackstokenexpirydate = expirydatetime
r.sporttracksrefreshtoken = refresh_token
@@ -1953,7 +1975,7 @@ def rower_process_underarmourcallback(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.underarmourtoken = access_token
r.underarmourtokenexpirydate = expirydatetime
r.underarmourrefreshtoken = refresh_token
@@ -1976,7 +1998,7 @@ def rower_process_tpcallback(request):
refresh_token = res[2]
expirydatetime = timezone.now()+datetime.timedelta(seconds=expires_in)
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.tptoken = access_token
r.tptokenexpirydate = expirydatetime
r.tprefreshtoken = refresh_token
@@ -2015,7 +2037,7 @@ def histo_all(request,theuser=0):
theuser = request.user.id
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2026,7 +2048,7 @@ def histo_all(request,theuser=0):
# get all indoor rows of past 12 months
ayearago = timezone.now()-datetime.timedelta(days=365)
try:
r2 = Rower.objects.get(user=theuser)
r2 = getrower(theuser)
allergworkouts = Workout.objects.filter(user=r2,
workouttype__in=['rower','dynamic','slides'],
startdatetime__gte=ayearago)
@@ -2099,7 +2121,7 @@ def cum_flex(request,theuser=0,
theuser = request.user.id
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2173,7 +2195,7 @@ def cum_flex(request,theuser=0,
deltaform = DeltaDaysForm()
optionsform = StatsOptionsForm()
try:
r2 = Rower.objects.get(user=theuser)
r2 = getrower(theuser)
allworkouts = Workout.objects.filter(user=r2,
workouttype__in=workouttypes,
startdatetime__gte=startdate,
@@ -2257,7 +2279,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
promember=0
mayedit=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2318,7 +2340,7 @@ def workout_histo_view(request,id=0):
promember=0
mayedit=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2371,7 +2393,7 @@ def histo(request,theuser=0,
theuser = request.user.id
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2418,7 +2440,7 @@ def histo(request,theuser=0,
deltaform = DeltaDaysForm()
try:
r2 = Rower.objects.get(user=theuser)
r2 = getrower(theuser)
allergworkouts = Workout.objects.filter(user=r2,
workouttype__in=['rower','dynamic','slides'],
startdatetime__gte=startdate,
@@ -2482,7 +2504,7 @@ def rankings_view(request,theuser=0,
promember=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -2528,7 +2550,7 @@ def rankings_view(request,theuser=0,
# get all 2k (if any) - this rower, in date range
try:
r = Rower.objects.get(user=theuser)
r = getrower(theuser)
except Rower.DoesNotExist:
allergworkouts = []
r=0
@@ -3068,7 +3090,7 @@ def workout_makepublic_view(request,id,
row.privacy = 'visible'
row.save()
rr = Rower.objects.get(user=request.user)
rr = getrower(request.user)
teams = rr.team.all()
for team in teams:
@@ -3127,7 +3149,7 @@ def team_comparison_select(request,
teamid=0):
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
except Rower.DoesNotExist:
raise Http404("Rower doesn't exist")
@@ -3212,7 +3234,7 @@ def team_comparison_select(request,
def multi_compare_view(request):
promember=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -3303,10 +3325,8 @@ def user_boxplot_select(request,
else:
user = User.objects.get(id=userid)
try:
r = Rower.objects.get(user=user)
except Rower.DoesNotExist:
raise Http404("Rower doesn't exist")
r = getrower(user)
if 'startdate' in request.session:
startdate = iso8601.parse_date(request.session['startdate'])
@@ -3565,7 +3585,7 @@ def workouts_view(request,message='',successmessage='',
enddate=timezone.now()+datetime.timedelta(days=1),
teamid=0):
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
except Rower.DoesNotExist:
raise Http404("Rower doesn't exist")
@@ -3666,7 +3686,7 @@ def workout_comparison_list(request,id=0,message='',successmessage='',
enddate=timezone.now()):
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
u = User.objects.get(id=r.user.id)
if request.method == 'POST':
dateform = DateRangeForm(request.POST)
@@ -3746,7 +3766,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='',
enddate=timezone.now()):
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
u = User.objects.get(id=r.user.id)
if request.method == 'POST':
dateform = DateRangeForm(request.POST)
@@ -4146,7 +4166,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""):
# get data
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
# create bearing
rowdata = rdata(f1)
@@ -4267,7 +4287,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
rowdata = rdata(f1)
if rowdata == 0:
@@ -4434,7 +4454,7 @@ def workout_geeky_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
# create interactive plot
try:
@@ -4504,7 +4524,7 @@ def cumstats(request,theuser=0,
theuser = request.user.id
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -4572,7 +4592,7 @@ def cumstats(request,theuser=0,
optionsform = StatsOptionsForm()
try:
r2 = Rower.objects.get(user=theuser)
r2 = getrower(theuser)
allergworkouts = Workout.objects.filter(user=r2,
workouttype__in=workouttypes,
startdatetime__gte=startdate,
@@ -4713,7 +4733,7 @@ def cumstats(request,theuser=0,
@login_required()
def workout_stats_view(request,id=0,message="",successmessage=""):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
w = Workout.objects.get(id=id)
except Workout.DoesNotExist:
@@ -4868,7 +4888,7 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
# create interactive plot
try:
@@ -4901,7 +4921,7 @@ def workout_advanced_view(request,id=0,message="",successmessage=""):
def workout_comparison_view(request,id1=0,id2=0,xparam='distance',yparam='spm'):
promember=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -4936,7 +4956,7 @@ def workout_comparison_view2(request,id1=0,id2=0,xparam='distance',
yparam='spm',plottype='line'):
promember=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -5012,7 +5032,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
promember=0
mayedit=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -5087,7 +5107,7 @@ def workout_flexchart3_view(request,*args,**kwargs):
if not request.user.is_anonymous():
workstrokesonly = request.POST['workstrokesonlysave']
reststrokes = not workstrokesonly
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
f = FavoriteChart(user=r,xparam=xparam,
yparam1=yparam1,yparam2=yparam2,
plottype=plottype,workouttype=workouttype,
@@ -5195,12 +5215,12 @@ def workout_biginteractive_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
# r = Rower.objects.get(user=u)
# r = getrower(u)
promember=0
mayedit=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -5239,12 +5259,12 @@ def workout_otwpowerplot_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
# r = Rower.objects.get(user=u)
# r = getrower(u)
promember=0
mayedit=0
if not request.user.is_anonymous():
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
result = request.user.is_authenticated() and ispromember(request.user)
if result:
promember=1
@@ -5559,7 +5579,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
# create interactive plot
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
rowdata = rdata(f1)
hascoordinates = 1
if rowdata != 0:
@@ -5626,7 +5646,7 @@ def workout_add_otw_powerplot_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -5687,7 +5707,7 @@ def workout_add_piechart_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
@@ -5748,7 +5768,7 @@ def workout_add_power_piechart_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
@@ -5807,7 +5827,7 @@ def workout_add_timeplot_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -5867,7 +5887,7 @@ def workout_add_distanceplot_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -5925,7 +5945,7 @@ def workout_add_distanceplot2_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -5985,7 +6005,7 @@ def workout_add_timeplot2_view(request,id):
imagename = f1+timestr+'.png'
fullpathimagename = 'static/plots/'+imagename
u = w.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -6034,7 +6054,7 @@ def workout_stravaimport_view(request,message=""):
res = stravastuff.get_strava_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if (r.stravatoken == '') or (r.stravatoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/stravaauthorize/")
@@ -6047,7 +6067,7 @@ def workout_stravaimport_view(request,message=""):
return HttpResponseRedirect(url)
else:
workouts = []
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
stravaids = [int(item['id']) for item in res.json()]
knownstravaids = uniqify([
w.uploadedtostrava for w in Workout.objects.filter(user=r)
@@ -6084,7 +6104,7 @@ def workout_runkeeperimport_view(request,message=""):
res = runkeeperstuff.get_runkeeper_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/runkeeperauthorize/")
@@ -6121,7 +6141,7 @@ def workout_underarmourimport_view(request,message=""):
res = underarmourstuff.get_underarmour_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/underarmourauthorize/")
@@ -6169,7 +6189,7 @@ def workout_sporttracksimport_view(request,message=""):
res = sporttracksstuff.get_sporttracks_workout_list(request.user)
if (res.status_code != 200):
if (res.status_code == 401):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
s = "Token doesn't exist. Need to authorize"
return HttpResponseRedirect("/rowers/me/sporttracksauthorize/")
@@ -6182,7 +6202,7 @@ def workout_sporttracksimport_view(request,message=""):
return HttpResponseRedirect(url)
else:
workouts = []
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
stids = [int(getidfromsturi(item['uri'])) for item in res.json()['items']]
knownstids = uniqify([
w.uploadedtosporttracks for w in Workout.objects.filter(user=r)
@@ -6218,7 +6238,7 @@ def c2listdebug_view(request,message=""):
except C2NoTokenError:
return HttpResponseRedirect("/rowers/me/c2authorize/")
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
res = c2stuff.get_c2_workout_list(request.user)
@@ -6266,7 +6286,7 @@ def workout_getc2workout_all(request,message=""):
message = "Something went wrong in workout_c2import_view (C2 token refresh)"
messages.error(request,message)
else:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
c2ids = [item['id'] for item in res.json()['data']]
knownc2ids = uniqify([
w.uploadedtoc2 for w in Workout.objects.filter(user=r)
@@ -6323,7 +6343,7 @@ def workout_c2import_view(request,message=""):
return HttpResponseRedirect(url)
else:
workouts = []
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
c2ids = [item['id'] for item in res.json()['data']]
knownc2ids = uniqify([
w.uploadedtoc2 for w in Workout.objects.filter(user=r)
@@ -6453,7 +6473,7 @@ def workout_getsporttracksworkout_view(request,sporttracksid):
def workout_getsporttracksworkout_all(request):
res = sporttracksstuff.get_sporttracks_workout_list(request.user)
if (res.status_code == 200):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
stids = [int(getidfromsturi(item['uri'])) for item in res.json()['items']]
knownstids = uniqify([
w.uploadedtosporttracks for w in Workout.objects.filter(user=r)
@@ -6482,7 +6502,7 @@ def workout_getsporttracksworkout_all(request):
def workout_getstravaworkout_all(request):
res = stravastuff.get_strava_workout_list(request.user)
if (res.status_code == 200):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
stravaids = [int(item['id']) for item in res.json()]
knownstravaids = uniqify([
w.uploadedtostrava for w in Workout.objects.filter(user=r)
@@ -6669,7 +6689,7 @@ def workout_upload_view(request,
except KeyError:
upload_totp = False
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if request.method == 'POST':
form = DocumentsForm(request.POST,request.FILES)
optionsform = UploadOptionsForm(request.POST)
@@ -6743,7 +6763,7 @@ def workout_upload_view(request,
imagename = f1[:-4]+'.png'
fullpathimagename = 'static/plots/'+imagename
u = request.user
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -6917,7 +6937,7 @@ def team_workout_upload_view(request,message="",
make_plot = uploadoptions['make_plot']
plottype = uploadoptions['plottype']
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if request.method == 'POST':
form = DocumentsForm(request.POST,request.FILES)
optionsform = TeamUploadOptionsForm(request.POST)
@@ -6932,7 +6952,7 @@ def team_workout_upload_view(request,message="",
if rowerform.is_valid():
u = rowerform.cleaned_data['user']
if u:
r = Rower.objects.get(user=u)
r = getrower(u)
else:
message = 'Please select a rower'
messages.error(request,message)
@@ -7146,7 +7166,7 @@ def graph_delete_view(request,id=0):
@login_required()
def graphs_view(request):
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime")
query = request.GET.get('q')
if query:
@@ -7204,7 +7224,7 @@ def workout_summary_restore_view(request,id,message="",successmessage=""):
# still here - this is a workout we may edit
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -7322,7 +7342,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
# still here - this is a workout we may edit
f1 = row.csvfilename
u = row.user.user
r = Rower.objects.get(user=u)
r = getrower(u)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -7520,7 +7540,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
def rower_favoritecharts_view(request):
message = ''
successmessage = ''
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
favorites = FavoriteChart.objects.filter(user=r).order_by('id')
aantal = len(favorites)
favorites_data = [{'yparam1':f.yparam1,
@@ -7584,7 +7604,7 @@ def rower_favoritecharts_view(request):
# Add email address to form so user can change his email address
@login_required()
def rower_edit_view(request,message=""):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
if request.method == 'POST' and "ut2" in request.POST:
form = RowerForm(request.POST)
if form.is_valid():
@@ -7598,7 +7618,7 @@ def rower_edit_view(request,message=""):
an = cd['an']
rest = cd['rest']
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.max = max(min(hrmax,250),10)
r.ut2 = max(min(ut2,250),10)
r.ut1 = max(min(ut1,250),10)
@@ -7655,7 +7675,7 @@ def rower_edit_view(request,message=""):
ftp = cd['ftp']
otwslack = cd['otwslack']
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
powerfrac = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -7713,7 +7733,7 @@ def rower_edit_view(request,message=""):
anname = cd['anname']
powerzones = [ut3name,ut2name,ut1name,atname,trname,anname]
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
r.pw_ut2 = pw_ut2
r.pw_ut1 = pw_ut1
r.pw_at = pw_at
@@ -7777,7 +7797,7 @@ def rower_edit_view(request,message=""):
if len(email):
u.email = email
u.save()
r = Rower.objects.get(user=u)
r = getrower(u)
r.weightcategory = weightcategory
r.save()
form = RowerForm(instance=r)
@@ -7813,7 +7833,7 @@ def rower_edit_view(request,message=""):
else:
try:
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r)
@@ -7848,7 +7868,7 @@ def rower_revokeapp_view(request,id=0):
for token in refreshtokens:
token.revoke()
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r)
grants = AccessToken.objects.filter(user=request.user)
@@ -8012,7 +8032,7 @@ def strokedatajson(request,id):
row.csvfilename = csvfilename
row.save()
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
@@ -8045,7 +8065,7 @@ import teams
def team_view(request,id=0):
ismember = 0
hasrequested = 0
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
myteams = Team.objects.filter(manager=request.user)
try:
@@ -8111,7 +8131,7 @@ def team_leaveconfirm_view(request,id=0):
@login_required()
def team_leave_view(request,id=0):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
teams.remove_member(id,r)
url = reverse(rower_teams_view)
@@ -8134,7 +8154,7 @@ def rower_teams_view(request,message='',successmessage=''):
else:
form = TeamInviteCodeForm()
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
ts = Team.objects.filter(rower=r)
myteams = Team.objects.filter(manager=request.user)
otherteams = Team.objects.filter(private='open').exclude(rower=r).exclude(manager=request.user).order_by('name')
@@ -8362,7 +8382,7 @@ def team_create_view(request):
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def team_deleteconfirm_view(request,id):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
t = Team.objects.get(id=id)
except Team.DoesNotExist:
@@ -8378,7 +8398,7 @@ def team_deleteconfirm_view(request,id):
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def team_delete_view(request,id):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
t = Team.objects.get(id=id)
except Team.DoesNotExist:
@@ -8394,7 +8414,7 @@ def team_delete_view(request,id):
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def team_members_stats_view(request,id):
r = Rower.objects.get(user=request.user)
r = getrower(request.user)
try:
t = Team.objects.get(id=id)
except Team.DoesNotExist: