Merge branch 'release/v12.24'
This commit is contained in:
@@ -385,6 +385,7 @@ class UploadOptionsForm(forms.Form):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.request = kwargs.pop('request',None)
|
||||
raceid = kwargs.pop('raceid',0)
|
||||
super(UploadOptionsForm, self).__init__(*args, **kwargs)
|
||||
r = Rower.objects.get(user=self.request.user)
|
||||
races = VirtualRace.objects.filter(
|
||||
@@ -405,6 +406,9 @@ class UploadOptionsForm(forms.Form):
|
||||
else:
|
||||
del self.fields['submitrace']
|
||||
|
||||
if int(raceid) in raceids:
|
||||
self.fields['submitrace'].initial = VirtualRace.objects.get(id=raceid)
|
||||
|
||||
# The form to indicate additional actions to be performed immediately
|
||||
# after a successful upload. This version allows the Team manager to select
|
||||
# a team member
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/rowers/workout/upload">Upload your race result</a>
|
||||
<a href="/rowers/workout/upload/{{ race.id }}/">Upload your race result</a>
|
||||
</td>
|
||||
<td>
|
||||
Upload a new workout to the site and submit it as a result. You
|
||||
|
||||
@@ -295,6 +295,7 @@ urlpatterns = [
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking,
|
||||
name='workout_toggle_ranking'),
|
||||
re_path(r'^workout/upload/team/$',views.team_workout_upload_view,name='team_workout_upload_view'),
|
||||
re_path(r'^workout/upload/(?P<raceid>\d+)/$',views.workout_upload_view,name='workout_upload_view'),
|
||||
re_path(r'^workout/upload/$',views.workout_upload_view,name='workout_upload_view'),
|
||||
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/histo/$',views.workout_histo_view,
|
||||
name='workout_histo_view'),
|
||||
|
||||
@@ -4695,9 +4695,16 @@ def history_view(request,userid=0):
|
||||
|
||||
ids = [w.id for w in g_workouts]
|
||||
|
||||
columns = ['hr','power']
|
||||
columns = ['hr','power','time']
|
||||
|
||||
df = getsmallrowdata_db(columns,ids=ids)
|
||||
try:
|
||||
df['deltat'] = df['time'].diff()
|
||||
except KeyError:
|
||||
pass
|
||||
df = dataprep.clean_df_stats(df,workstrokesonly=True,
|
||||
ignoreadvanced=True)
|
||||
|
||||
|
||||
totalmeters,totalhours, totalminutes = get_totals(g_workouts)
|
||||
|
||||
@@ -4723,9 +4730,16 @@ def history_view(request,userid=0):
|
||||
wminutes=wminutes
|
||||
)
|
||||
ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
|
||||
ddict['hrmean'] = ddf['hr'].mean().astype(int)
|
||||
try:
|
||||
ddf['deltat'] = ddf['time'].diff()
|
||||
except KeyError:
|
||||
pass
|
||||
ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
|
||||
ignoreadvanced=True)
|
||||
|
||||
ddict['hrmean'] = int(wavg(ddf,'hr','deltat'))
|
||||
ddict['hrmax'] = ddf['hr'].max().astype(int)
|
||||
ddict['powermean'] = ddf['power'].mean().astype(int)
|
||||
ddict['powermean'] = int(wavg(df,'power','deltat'))
|
||||
ddict['powermax'] = ddf['power'].max().astype(int)
|
||||
ddict['nrworkouts'] = a_workouts.count()
|
||||
listofdicts.append(ddict)
|
||||
@@ -4737,6 +4751,12 @@ def history_view(request,userid=0):
|
||||
else:
|
||||
a_workouts = g_workouts.filter(workouttype=typeselect)
|
||||
ddf = getsmallrowdata_db(columns,ids=[w.id for w in a_workouts])
|
||||
try:
|
||||
ddf['deltat'] = ddf['time'].diff()
|
||||
except KeyError:
|
||||
pass
|
||||
ddf = dataprep.clean_df_stats(ddf,workstrokesonly=True,
|
||||
ignoreadvanced=True)
|
||||
totalscript, totaldiv = interactive_hr_piechart(ddf,r,mytypes.workouttypes_ordered[typeselect])
|
||||
|
||||
# interactive power pie chart
|
||||
@@ -4749,13 +4769,13 @@ def history_view(request,userid=0):
|
||||
|
||||
totalsdict['distance'] = totalmeters
|
||||
try:
|
||||
totalsdict['powermean'] = df['power'].mean().astype(int)
|
||||
totalsdict['powermean'] = int(wavg(df,'power','deltat'))
|
||||
totalsdict['powermax'] = df['power'].max().astype(int)
|
||||
except KeyError:
|
||||
totalsdict['powermean'] = 0
|
||||
totalsdict['powermax'] = 0
|
||||
try:
|
||||
totalsdict['hrmean'] = df['hr'].mean().astype(int)
|
||||
totalsdict['hrmean'] = int(wavg(df,'hr','deltat'))
|
||||
totalsdict['hrmax'] = df['hr'].max().astype(int)
|
||||
except KeyError:
|
||||
totalsdict['hrmean'] = 0
|
||||
|
||||
@@ -4614,7 +4614,8 @@ def workout_upload_view(request,
|
||||
},
|
||||
docformoptions={
|
||||
'workouttype':'rower',
|
||||
}):
|
||||
},
|
||||
raceid=0):
|
||||
|
||||
is_ajax = False
|
||||
if request.is_ajax():
|
||||
@@ -4727,7 +4728,7 @@ def workout_upload_view(request,
|
||||
response = {}
|
||||
if request.method == 'POST':
|
||||
form = DocumentsForm(request.POST,request.FILES)
|
||||
optionsform = UploadOptionsForm(request.POST,request=request)
|
||||
optionsform = UploadOptionsForm(request.POST,request=request,raceid=raceid)
|
||||
|
||||
if form.is_valid():
|
||||
# f = request.FILES['file']
|
||||
@@ -5031,7 +5032,7 @@ def workout_upload_view(request,
|
||||
|
||||
form = DocumentsForm(initial=docformoptions)
|
||||
optionsform = UploadOptionsForm(initial=uploadoptions,
|
||||
request=request)
|
||||
request=request,raceid=raceid)
|
||||
return render(request, 'document_form.html',
|
||||
{'form':form,
|
||||
'active':'nav-workouts',
|
||||
|
||||
Reference in New Issue
Block a user