From 2cb4841e8ceec211fb71339415b153edcd0f3440 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 7 Jun 2017 17:52:00 -0700 Subject: [PATCH] creates Rower object if user doesn't have it --- rowers/views.py | 222 ++++++++++++++++++++++++++---------------------- 1 file changed, 121 insertions(+), 101 deletions(-) diff --git a/rowers/views.py b/rowers/views.py index b8abbc77..1eaa47b8 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -277,17 +277,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 @@ -406,7 +428,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: @@ -570,7 +592,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']) @@ -734,7 +756,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: @@ -897,7 +919,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: @@ -1057,7 +1079,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: @@ -1120,7 +1142,7 @@ def workout_tcxemail_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: @@ -1160,7 +1182,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: @@ -1195,7 +1217,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) @@ -1253,7 +1275,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" @@ -1674,14 +1696,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 @@ -1699,7 +1721,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 @@ -1709,7 +1731,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 @@ -1724,7 +1746,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, ) @@ -1733,7 +1755,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 @@ -1748,7 +1770,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, ) @@ -1757,7 +1779,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 @@ -1791,7 +1813,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 @@ -1843,7 +1865,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() @@ -1862,7 +1884,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() @@ -1883,7 +1905,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 @@ -1906,7 +1928,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 @@ -1929,7 +1951,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 @@ -1968,7 +1990,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 @@ -1979,7 +2001,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) @@ -2052,7 +2074,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 @@ -2126,7 +2148,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, @@ -2210,7 +2232,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 @@ -2271,7 +2293,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 @@ -2324,7 +2346,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 @@ -2371,7 +2393,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, @@ -2435,7 +2457,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 @@ -2481,7 +2503,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 @@ -2762,7 +2784,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: @@ -2821,7 +2843,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") @@ -2906,7 +2928,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 @@ -2997,10 +3019,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']) @@ -3259,7 +3279,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") @@ -3360,7 +3380,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) @@ -3440,7 +3460,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) @@ -3840,7 +3860,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) @@ -3961,7 +3981,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: @@ -4128,7 +4148,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: @@ -4198,7 +4218,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 @@ -4266,7 +4286,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, @@ -4407,7 +4427,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: @@ -4562,7 +4582,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: @@ -4595,7 +4615,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 @@ -4630,7 +4650,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 @@ -4706,7 +4726,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 @@ -4781,7 +4801,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, @@ -4889,12 +4909,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 @@ -4933,12 +4953,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 @@ -5247,7 +5267,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: @@ -5314,7 +5334,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, @@ -5375,7 +5395,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, @@ -5436,7 +5456,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, @@ -5495,7 +5515,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, @@ -5555,7 +5575,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, @@ -5613,7 +5633,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, @@ -5673,7 +5693,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, @@ -5722,7 +5742,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/") @@ -5735,7 +5755,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) @@ -5772,7 +5792,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/") @@ -5809,7 +5829,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/") @@ -5857,7 +5877,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/") @@ -5870,7 +5890,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) @@ -5906,7 +5926,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) @@ -5954,7 +5974,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) @@ -6011,7 +6031,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) @@ -6141,7 +6161,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) @@ -6170,7 +6190,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) @@ -6357,7 +6377,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) @@ -6431,7 +6451,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, @@ -6605,7 +6625,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) @@ -6620,7 +6640,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) @@ -6834,7 +6854,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: @@ -6892,7 +6912,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, @@ -7010,7 +7030,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, @@ -7208,7 +7228,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, @@ -7272,7 +7292,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(): @@ -7286,7 +7306,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) @@ -7343,7 +7363,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, @@ -7401,7 +7421,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 @@ -7465,7 +7485,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) @@ -7501,7 +7521,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) @@ -7536,7 +7556,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) @@ -7700,7 +7720,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, @@ -7733,7 +7753,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: @@ -7799,7 +7819,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) @@ -7822,7 +7842,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') @@ -8050,7 +8070,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: @@ -8066,7 +8086,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: @@ -8082,7 +8102,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: