Private
Public Access
1
0

a few more tests

This commit is contained in:
Sander Roosendaal
2020-01-25 15:59:48 +01:00
parent 31a7b9fffc
commit 466383410d
6 changed files with 2650 additions and 158 deletions

View File

@@ -1741,7 +1741,7 @@ def ajax_agegrouprecords(request,
# Show ranking distances including predicted paces
@login_required()
def rankings_view2(request,theuser=0,
def rankings_view2(request,userid=0,
startdate=timezone.now()-datetime.timedelta(days=365),
enddate=timezone.now(),
deltadays=-1,
@@ -1762,83 +1762,84 @@ def rankings_view2(request,theuser=0,
enddate = startdate
startdate = s
if theuser == 0:
theuser = request.user.id
if userid == 0:
userid = request.user.id
else:
lastupdated = "01-01-1900"
promember=0
if not request.user.is_anonymous:
r = getrower(request.user)
r = getrequestrower(request,userid=userid)
theuser = r.user
wcdurations = []
wcpower = []
lastupdated = "01-01-1900"
userid = 0
if 'options' in request.session:
options = request.session['options']
try:
wcdurations = options['wcdurations']
wcpower = options['wcpower']
lastupdated = options['lastupdated']
except KeyError:
pass
try:
userid = options['userid']
except KeyError:
userid = 0
else:
options = {}
lastupdatedtime = arrow.get(lastupdated).timestamp
current_time = arrow.utcnow().timestamp
deltatime_seconds = current_time - lastupdatedtime
recalc = False
if str(userid) != str(theuser) or deltatime_seconds > 3600:
recalc = True
options['lastupdated'] = arrow.utcnow().isoformat()
else:
recalc = False
options['userid'] = theuser.id
if r.birthdate:
age = calculate_age(r.birthdate)
else:
worldclasspower = None
age = 0
agerecords = CalcAgePerformance.objects.filter(
age = age,
sex = r.sex,
weightcategory = r.weightcategory)
if len(agerecords) == 0:
recalc = True
wcpower = []
wcduration = []
else:
wcdurations = []
wcpower = []
for record in agerecords:
wcdurations.append(record.duration)
wcpower.append(record.power)
lastupdated = "01-01-1900"
userid = 0
if 'options' in request.session:
options = request.session['options']
try:
wcdurations = options['wcdurations']
wcpower = options['wcpower']
lastupdated = options['lastupdated']
except KeyError:
pass
try:
userid = options['userid']
except KeyError:
userid = 0
else:
options = {}
options['wcpower'] = wcpower
options['wcdurations'] = wcdurations
if theuser:
options['userid'] = theuser.id
request.session['options'] = options
lastupdatedtime = arrow.get(lastupdated).timestamp
current_time = arrow.utcnow().timestamp
deltatime_seconds = current_time - lastupdatedtime
recalc = False
if str(userid) != str(theuser) or deltatime_seconds > 3600:
recalc = True
options['lastupdated'] = arrow.utcnow().isoformat()
else:
recalc = False
options['userid'] = theuser
if r.birthdate:
age = calculate_age(r.birthdate)
else:
worldclasspower = None
age = 0
agerecords = CalcAgePerformance.objects.filter(
age = age,
sex = r.sex,
weightcategory = r.weightcategory)
if len(agerecords) == 0:
recalc = True
wcpower = []
wcduration = []
else:
wcdurations = []
wcpower = []
for record in agerecords:
wcdurations.append(record.duration)
wcpower.append(record.power)
options['wcpower'] = wcpower
options['wcdurations'] = wcdurations
if theuser:
options['userid'] = theuser
request.session['options'] = options
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
# get all indoor rows in date range
@@ -1887,10 +1888,7 @@ def rankings_view2(request,theuser=0,
r=0
try:
uu = User.objects.get(id=theuser)
except User.DoesNotExist:
uu = ''
uu = theuser
# test to fix bug
@@ -2155,7 +2153,7 @@ def rankings_view2(request,theuser=0,
message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
redirect_field_name=None)
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
def otwrankings_view(request,theuser=0,
def otwrankings_view(request,userid=0,
startdate=timezone.now()-datetime.timedelta(days=365),
enddate=timezone.now(),
startdatestring="",
@@ -2178,22 +2176,9 @@ def otwrankings_view(request,theuser=0,
enddate = startdate
startdate = s
if theuser == 0:
if 'rowerid' in request.session:
try:
r = Rower.objects.get(id=request.session['rowerid'])
theuser = r.user.id
except Rower.DoesNotExist:
theuser = request.user.id
else:
theuser = request.user.id
r = getrequestrower(request,userid=userid)
promember=0
if not request.user.is_anonymous:
r = Rower.objects.get(user=request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
theuser = r.user
# get all OTW rows in date range
@@ -2247,10 +2232,7 @@ def otwrankings_view(request,theuser=0,
try:
uu = User.objects.get(id=theuser)
except User.DoesNotExist:
uu = ''
uu = theuser
# test to fix bug
@@ -2561,7 +2543,7 @@ def otwcp_toadmin_view(request,theuser=0,
message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
redirect_field_name=None)
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
def oterankings_view(request,theuser=0,
def oterankings_view(request,userid=0,
startdate=timezone.now()-datetime.timedelta(days=365),
enddate=timezone.now(),
startdatestring="",
@@ -2584,23 +2566,11 @@ def oterankings_view(request,theuser=0,
enddate = startdate
startdate = s
if theuser == 0:
if 'rowerid' in request.session:
try:
r = Rower.objects.get(id=request.session['rowerid'])
theuser = r.user.id
except Rower.DoesNotExist:
theuser = request.user.id
else:
theuser = request.user.id
r = getrequestrower(request,userid=userid)
theuser = r.user
promember=0
if not request.user.is_anonymous:
r = Rower.objects.get(user=request.user)
result = request.user.is_authenticated and ispromember(request.user)
if result:
promember=1
# get all OTW rows in date range
@@ -2674,10 +2644,8 @@ def oterankings_view(request,theuser=0,
raise Http404("Rower doesn't exist")
try:
uu = User.objects.get(id=theuser)
except User.DoesNotExist:
uu = ''
uu = theuser
# test to fix bug