Private
Public Access
1
0

Merge branch 'develop' into feature/coachreports

This commit is contained in:
Sander Roosendaal
2019-09-21 14:10:03 +02:00
6 changed files with 62 additions and 20 deletions

View File

@@ -155,7 +155,7 @@ def alert_get_stats(alert,nperiod=0):
mask = df[alert.measured.metric] > alert.measured.value1
df2 = df[mask].copy()
elif alert.measured.condition == '<':
mask = df[alert.measured.metric] > alert.measured.value1
mask = df[alert.measured.metric] < alert.measured.value1
df2 = df[mask].copy()
elif alert.measured.condition == 'between':
mask = df[alert.measured.metric] > alert.measured.value1

View File

@@ -1123,7 +1123,6 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
inboard=inboard, oarlength=oarlength,
timezone=timezone_str,
privacy=privacy)
try:
w.save()
except ValidationError:
@@ -1391,9 +1390,10 @@ def new_workout_from_file(r, f2,
if workoutsource is None:
workoutsource = fileformat
id, message = save_workout_database(
f2, r,
notes=notes,
workouttype=workouttype,
weightcategory=r.weightcategory,
adaptiveclass=r.adaptiveclass,

View File

@@ -39,7 +39,9 @@
{{ form.as_table }}
</table>
{% csrf_token %}
<input class="button green" type="submit" value="Submit">
<p>
&nbsp;<input type="submit" value="Submit">
</p>
</div>
</li>
@@ -201,9 +203,15 @@ $('#id_workouttype').change();
if ($(this).attr('id') == 'id_file') {
data.set("file",this.files[0]);
}
console.log($(this).attr('name'),$(this).val());
console.log($(this).attr('id'),$(this).attr('name'),$(this).val());
};
});});
});});
$('textarea').each(function( i ) {
$(this).change(function() {
data.set($(this).attr('name'),$(this).val());
console.log($(this).attr('id'),$(this).attr('name'),$(this).val());
});});
$('select').each(function( i ) {
console.log($(this).attr('name'),$(this).val());
@@ -213,7 +221,7 @@ $('#id_workouttype').change();
});
});
frm.submit(function() {
frm.submit(function() {
console.log("Form submission");
$(data.values()).each(function(value) {
console.log(value);

View File

@@ -111,7 +111,6 @@ def response_error_handler(request, exception=None):
return HttpResponse('Error handler content', status=403)
def filenotfound_handler(request, exception=None):
print('noot')
return HttpResponse('Error handler content', status=404)
handler403 = views.error403_view
@@ -381,11 +380,11 @@ urlpatterns = [
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/addstatic/(?P<plotnr>\d+)/$',
views.workout_add_chart_view,name='workout_add_chart_view'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/addstatic/$',views.workout_add_chart_view,name='workout_add_chart_view'),
re_path(r'^workout/(?P<pk>\d+)/delete/$',login_required(
re_path(r'^workout/(?P<pk>\b[0-9A-Fa-f]+\b)/delete/$',login_required(
views.WorkoutDelete.as_view()),
name='workout_delete'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/delete/$',login_required(
views.workout_code_delete_view),name='workout_code_delete'),
# re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/delete/$',login_required(
# views.workout_code_delete_view),name='workout_code_delete'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/smoothenpace/$',views.workout_smoothenpace_view,name='workout_smoothenpace_view'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/undosmoothenpace/$',views.workout_undo_smoothenpace_view,name='workout_undo_smoothenpace_view'),
re_path(r'^workout/c2import/$',views.workout_c2import_view,name='workout_c2import_view'),

View File

@@ -936,10 +936,10 @@ def rowhascoordinates(row):
def rdata(file,rower=rrower()):
try:
res = rrdata(csvfile=file,rower=rower)
except (IOError, IndexError):
except (IOError, IndexError, EOFError):
try:
res = rrdata(csvfile=file+'.gz',rower=rower)
except (IOError, IndexError):
except (IOError, IndexError, EOFError):
res = 0
return res

View File

@@ -3900,6 +3900,11 @@ def workout_upload_view(request,
except KeyError:
boattype = '1x'
try:
notes = docformoptions['notes']
except KeyError:
notes = ''
try:
workoutsource = uploadoptions['workoutsource']
except KeyError:
@@ -4028,7 +4033,7 @@ def workout_upload_view(request,
boattype=boattype,
makeprivate=makeprivate,
title = t,
notes=''
notes=notes,
)
else:
workoutsbox = Mailbox.objects.filter(name='workouts')[0]
@@ -4317,8 +4322,20 @@ def team_workout_upload_view(request,message="",
rowerform.fields['user'].queryset = User.objects.filter(rower__in=rowers).distinct()
if form.is_valid():
f = request.FILES['file']
res = handle_uploaded_file(f)
f = request.FILES.get('file',False)
if f:
res = handle_uploaded_file(f)
else:
messages.error(request,'No file attached')
response = render(request,
'team_document_form.html',
{'form':form,
'teams':get_my_teams(request.user),
'optionsform':optionsform,
'rowerform':rowerform,
})
return response
t = form.cleaned_data['title']
offline = form.cleaned_data['offline']
boattype = form.cleaned_data['boattype']
@@ -4847,9 +4864,14 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
formvalues = {}
form = SummaryStringForm()
tss,normp = dataprep.workout_rscore(row)
tss = row.rscore
normp = row.normp
normv = row.normv
normw = row.normw
normv,normw = dataprep.workout_normv(row,pp=8.0)
if tss == -1:
tss,normp = dataprep.workout_rscore(row)
normv,normw = dataprep.workout_normv(row,pp=8.0)
work = int(normw)
power = int(normp)
@@ -5277,7 +5299,11 @@ class GraphDelete(DeleteView):
def workout_code_delete_view(request,id=0):
pk = encoder.decode_hex(id)
url = reverse('workout_delete',kwargs={'pk':pk})
try:
w = Workout.objects.get(pk=pk)
url = reverse('workout_delete',kwargs={'pk':pk})
except Workout.DoesNotExist:
url = reverse('workout_delete',kwargs={'pk':id})
return HttpResponseRedirect(url)
@@ -5329,7 +5355,16 @@ class WorkoutDelete(DeleteView):
return reverse('workouts_view')
def get_object(self, *args, **kwargs):
obj = super(WorkoutDelete, self).get_object(*args, **kwargs)
workout_pk = self.kwargs['pk']
try:
obj = Workout.objects.get(pk=workout_pk)
except (ValueError,Workout.DoesNotExist):
workout_pk = encoder.decode_hex(workout_pk)
try:
obj = Workout.objects.get(pk=workout_pk)
except Workout.DoesNotExist:
raise Http404("One of the workouts doesn't exist")
# obj = super(WorkoutDelete, self).get_object(*args, **kwargs)
if not checkaccessuser(self.request.user,obj.user):
raise PermissionDenied('You are not allowed to delete this workout')