diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index 8e830138..92dccaa2 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -1251,8 +1251,11 @@ def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True, data.to_sql('strokedata',engine,if_exists='append',index=False) except: data.drop(columns=['rhythm'],inplace=True) - data.to_sql('strokedata',engine,if_exists='append',index=False) - + try: + data.to_sql('strokedata',engine,if_exists='append',index=False) + except: + pass + conn.close() engine.dispose() return data diff --git a/rowers/models.py b/rowers/models.py index a07bbc68..3962d056 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2452,7 +2452,7 @@ class WorkoutForm(ModelForm): # duration = forms.TimeInput(format='%H:%M:%S.%f') class Meta: model = Workout - fields = ['name','date','starttime','timezone','duration','distance','workouttype','boattype','weightcategory','notes','rankingpiece','duplicate'] + fields = ['name','date','starttime','timezone','duration','distance','workouttype','boattype','weightcategory','notes','rankingpiece','duplicate','plannedsession'] widgets = { 'date': AdminDateWidget(), 'notes': forms.Textarea, @@ -2474,6 +2474,21 @@ class WorkoutForm(ModelForm): self.fields['private'].initial = False else: self.fields['private'].initial = True + + workout = self.instance + sps = PlannedSession.objects.filter( + rower__in=[workout.user], + startdate__lte=workout.date, + enddate__gte=workout.date, + ).order_by("preferreddate","startdate","enddate").exclude( + sessiontype='race') + + if not sps: + del self.fields['plannedsession'] + else: + self.fields['plannedsession'].queryset = sps + else: + del self.fields['plannedsession'] # Used for the rowing physics calculations class AdvancedWorkoutForm(ModelForm): diff --git a/rowers/tasks.py b/rowers/tasks.py index c7219c3d..ef36460c 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -610,6 +610,7 @@ def handle_calctrimp(id, intensityfactor = normp/float(ftp) tss = 100.*((duration*normp*intensityfactor)/(3600.*ftp)) + if sex == 'male': f = 1.92 else: @@ -646,6 +647,24 @@ def handle_calctrimp(id, if not np.isfinite(normw): normw = 0 + try: + dum = int(tss) + except ValueError: + tss = 0 + + try: + dum = int(normp) + except ValueError: + normp = 0 + try: + dump = int(trimp) + except ValueError: + trimp = 0 + try: + dump = int(hrtss) + except ValueError: + hrtss = 0 + query = 'UPDATE rowers_workout SET rscore = {tss}, normp = {normp}, trimp={trimp}, hrtss={hrtss}, normv={normv}, normw={normw} WHERE id={id}'.format( tss = int(tss), normp = int(normp), diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index d0f82594..ce0e29e6 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -105,7 +105,7 @@ $('#id_workouttype').change(); {{ form.as_table }} {% csrf_token %} - +