Merge branch 'release/v13.73'
This commit is contained in:
@@ -578,12 +578,16 @@ def course_length(course):
|
|||||||
|
|
||||||
totaldist += 1000.*dist[0]
|
totaldist += 1000.*dist[0]
|
||||||
|
|
||||||
vector = get_dir_vector(polygons[0],polygons[1])
|
try:
|
||||||
deltastart = get_delta(vector,polygons[0])
|
vector = get_dir_vector(polygons[0],polygons[1])
|
||||||
|
deltastart = get_delta(vector,polygons[0])
|
||||||
|
|
||||||
polygons = polygons.reverse()
|
polygons = polygons.reverse()
|
||||||
vector = get_dir_vector(polygons[0],polygons[1])
|
vector = get_dir_vector(polygons[0],polygons[1])
|
||||||
deltafinish = get_delta(vector,polygons[0])
|
deltafinish = get_delta(vector,polygons[0])
|
||||||
|
except IndexError:
|
||||||
|
deltastart = 0
|
||||||
|
deltafinish = 0
|
||||||
|
|
||||||
return int(totaldist-deltastart-deltafinish)
|
return int(totaldist-deltastart-deltafinish)
|
||||||
|
|
||||||
@@ -2644,14 +2648,31 @@ class VirtualRaceForm(ModelForm):
|
|||||||
startdatetime
|
startdatetime
|
||||||
)
|
)
|
||||||
|
|
||||||
end_time = cd['end_time']
|
try:
|
||||||
|
end_time = cd['end_time']
|
||||||
|
except KeyError:
|
||||||
|
raise forms.ValidationError(
|
||||||
|
'Must have end time',
|
||||||
|
code='missing endtime'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if end_time is None:
|
if end_time is None:
|
||||||
raise forms.ValidationError(
|
raise forms.ValidationError(
|
||||||
'Must have end time',
|
'Must have end time',
|
||||||
code='missing endtime'
|
code='missing endtime'
|
||||||
)
|
)
|
||||||
|
|
||||||
end_date = cd['enddate']
|
try:
|
||||||
|
end_date = cd['enddate']
|
||||||
|
except KeyError:
|
||||||
|
raise forms.ValidationError(
|
||||||
|
'Missing or invalid end date',
|
||||||
|
code='missing end date'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enddatetime = datetime.datetime.combine(end_date,end_time)
|
enddatetime = datetime.datetime.combine(end_date,end_time)
|
||||||
enddatetime = pytz.timezone(timezone_str).localize(
|
enddatetime = pytz.timezone(timezone_str).localize(
|
||||||
enddatetime
|
enddatetime
|
||||||
|
|||||||
@@ -147,8 +147,10 @@ def is_protrial(user):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ispromember = is_promember | is_protrial
|
ispromember = is_promember | is_protrial
|
||||||
|
|
||||||
|
|
||||||
can_have_teams = ispromember | is_coach
|
can_have_teams = ispromember | is_coach
|
||||||
|
|
||||||
@rules.predicate
|
@rules.predicate
|
||||||
@@ -202,8 +204,13 @@ def can_add_session(user):
|
|||||||
def can_plan(user):
|
def can_plan(user):
|
||||||
if user.is_anonymous:
|
if user.is_anonymous:
|
||||||
return False
|
return False
|
||||||
|
if user.rower.rowerplan in ['plan','coach']:
|
||||||
return user.rower.rowerplan in ['plan','coach','freecoach']
|
return True
|
||||||
|
if user.rower.rowerplan in ['basic','pro']:
|
||||||
|
return user.rower.plantrialexpires >= datetime.date.today()
|
||||||
|
if user.rower.rowerplan == 'freecoach':
|
||||||
|
if user.rower.mycoachgroup is not None:
|
||||||
|
return len(user.rower.mycoachgroup)>=4
|
||||||
|
|
||||||
# checks if rower is coach of user (or is user himself)
|
# checks if rower is coach of user (or is user himself)
|
||||||
@rules.predicate
|
@rules.predicate
|
||||||
|
|||||||
@@ -194,7 +194,7 @@
|
|||||||
<p>The payload is application/json data and looks as follows:</p>
|
<p>The payload is application/json data and looks as follows:</p>
|
||||||
|
|
||||||
<p><pre>
|
<p><pre>
|
||||||
{'data':
|
{"data":
|
||||||
[
|
[
|
||||||
{"distance":5, "power": 112, "hr": 132, "pace": 145800, "spm": 11, "time": 0},
|
{"distance":5, "power": 112, "hr": 132, "pace": 145800, "spm": 11, "time": 0},
|
||||||
{"distance":12, "power": 221, "hr": 131, "pace": 116400, "spm": 41, "time": 2200},
|
{"distance":12, "power": 221, "hr": 131, "pace": 116400, "spm": 41, "time": 2200},
|
||||||
|
|||||||
@@ -152,8 +152,8 @@ def createunderarmourworkoutdata(w):
|
|||||||
haslatlon=1
|
haslatlon=1
|
||||||
|
|
||||||
try:
|
try:
|
||||||
lat = row.df[' latitude'].tolist()
|
lat = row.df[' latitude']
|
||||||
lon = row.df[' longitude'].tolist()
|
lon = row.df[' longitude']
|
||||||
if not lat.std() and not lon.std():
|
if not lat.std() and not lon.std():
|
||||||
haslatlon = 0
|
haslatlon = 0
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ def strokedatajson_v2(request,id):
|
|||||||
try:
|
try:
|
||||||
id = int(id)
|
id = int(id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return HttpResponse("Not a valid workout number",stauts=400)
|
return HttpResponse("Not a valid workout number",status=400)
|
||||||
|
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
columns = ['spm','time','hr','pace','power','distance']
|
columns = ['spm','time','hr','pace','power','distance']
|
||||||
@@ -112,9 +112,10 @@ def strokedatajson_v2(request,id):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
checkdata, r = dataprep.getrowdata_db(id=row.id)
|
checkdata, r = dataprep.getrowdata_db(id=row.id)
|
||||||
if not checkdata.empty:
|
if not checkdata.empty:
|
||||||
return HttpResponse("Duplicate Error",400)
|
return HttpResponse("Duplicate Error",status=400)
|
||||||
|
|
||||||
df = pd.DataFrame()
|
df = pd.DataFrame()
|
||||||
|
print(request.POST)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
df = pd.read_json(request.POST['data'],orient='split')
|
df = pd.read_json(request.POST['data'],orient='split')
|
||||||
@@ -122,7 +123,7 @@ def strokedatajson_v2(request,id):
|
|||||||
try:
|
try:
|
||||||
df = pd.read_json(request.POST['strokedata'],orient='split')
|
df = pd.read_json(request.POST['strokedata'],orient='split')
|
||||||
except:
|
except:
|
||||||
return HttpResponse("No JSON object could be decoded",400)
|
return HttpResponse("No JSON object could be decoded",status=400)
|
||||||
|
|
||||||
df.index = df.index.astype(int)
|
df.index = df.index.astype(int)
|
||||||
df.sort_index(inplace=True)
|
df.sort_index(inplace=True)
|
||||||
@@ -134,12 +135,12 @@ def strokedatajson_v2(request,id):
|
|||||||
try:
|
try:
|
||||||
time = df['t']/10.
|
time = df['t']/10.
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Missing time",400)
|
return HttpResponse("Missing time",status=400)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
spm = df['spm']
|
spm = df['spm']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Missing spm",400)
|
return HttpResponse("Missing spm",status=400)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
distance = df['distance']
|
distance = df['distance']
|
||||||
@@ -147,7 +148,7 @@ def strokedatajson_v2(request,id):
|
|||||||
try:
|
try:
|
||||||
distance = df['d']/10.
|
distance = df['d']/10.
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Missing distance",400)
|
return HttpResponse("Missing distance",status=400)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pace = df['pace']/1.e3
|
pace = df['pace']/1.e3
|
||||||
@@ -155,7 +156,7 @@ def strokedatajson_v2(request,id):
|
|||||||
try:
|
try:
|
||||||
pace = df['p']/10.
|
pace = df['p']/10.
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Missing pace",400)
|
return HttpResponse("Missing pace",status=400)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -320,13 +321,13 @@ def strokedatajson(request,id):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
checkdata,r = dataprep.getrowdata_db(id=row.id)
|
checkdata,r = dataprep.getrowdata_db(id=row.id)
|
||||||
if not checkdata.empty:
|
if not checkdata.empty:
|
||||||
return HttpResponse("Duplicate Error",409)
|
return HttpResponse("Duplicate Error",status=409)
|
||||||
# strokedata = request.POST['strokedata']
|
# strokedata = request.POST['strokedata']
|
||||||
# checking/validating and cleaning
|
# checking/validating and cleaning
|
||||||
try:
|
try:
|
||||||
strokedata = json.loads(request.POST['strokedata'])
|
strokedata = json.loads(request.POST['strokedata'])
|
||||||
except:
|
except:
|
||||||
return HttpResponse("No JSON object could be decoded",400)
|
return HttpResponse("No JSON object could be decoded",status=400)
|
||||||
|
|
||||||
df = pd.DataFrame(strokedata)
|
df = pd.DataFrame(strokedata)
|
||||||
df.index = df.index.astype(int)
|
df.index = df.index.astype(int)
|
||||||
|
|||||||
Reference in New Issue
Block a user