From 229145679a60ab8d2c54f6370e5ec597ec7dd662 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 8 Jun 2018 08:47:55 +0200 Subject: [PATCH 1/3] improved workout edit form --- rowers/models.py | 43 ++++++++---------------------- rowers/templates/workout_form.html | 32 +++++++++++++++------- rowers/views.py | 6 +++++ 3 files changed, 39 insertions(+), 42 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 737dd97b..8f6ebcac 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1799,45 +1799,24 @@ 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','privacy','rankingpiece'] + fields = ['name','date','starttime','timezone','duration','distance','workouttype','boattype','weightcategory','notes','rankingpiece'] widgets = { 'date': AdminDateWidget(), 'notes': forms.Textarea, 'duration': forms.TimeInput(format='%H:%M:%S.%f'), } - def __init__(self, *args, **kwargs): + def __init__(self, *args, **kwargs): super(WorkoutForm, self).__init__(*args, **kwargs) - # this line to be removed - del self.fields['privacy'] - - if self.instance.workouttype not in types.otwtypes: - del self.fields['boattype'] - - fieldorder = ( - 'name', - 'date', - 'starttime', - 'timezone', - 'duration', - 'distance', - 'workouttype', - 'weightcategory', - 'notes', - 'rankingpiece', - 'boattype' - ) - - fields = OrderedDict() - for key in fieldorder: - try: - fields[key] = self.fields.pop(key) - except KeyError: - pass - for key, valye in self.fields.items(): - fields[key] = value - self.fields = fields - + self.fields['private'] = forms.BooleanField(initial=False, + required=False, + label='Private') + if 'instance' in kwargs: + if kwargs['instance'].privacy == 'visible': + self.fields['private'].initial = False + else: + self.fields['private'].initial = True + # Used for the rowing physics calculations class AdvancedWorkoutForm(ModelForm): quick_calc = forms.BooleanField(initial=True,required=False) diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 5160aec2..3cef35a9 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -17,6 +17,27 @@ {% include "monitorjobs.html" %} + + {% endblock %} @@ -107,16 +128,7 @@ {{ form.as_table }} {% csrf_token %} -
- {% if workout.privacy == 'visible' %} - Set Private - Only you can see this workout - {% else %} - Make Public - Make this workout visible to your teams and followers - {% endif %} -
-
+
diff --git a/rowers/views.py b/rowers/views.py index cdcee2fb..665b9d9c 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -9190,6 +9190,7 @@ def workout_edit_view(request,id=0,message="",successmessage=""): weightcategory = form.cleaned_data['weightcategory'] duration = form.cleaned_data['duration'] distance = form.cleaned_data['distance'] + private = form.cleaned_data['private'] notes = form.cleaned_data['notes'] thetimezone = form.cleaned_data['timezone'] @@ -9206,6 +9207,11 @@ def workout_edit_view(request,id=0,message="",successmessage=""): except KeyError: rankingpiece =- Workout.objects.get(id=id).rankingpiece + if private: + privacy = 'private' + else: + privacy = 'visible' + startdatetime = datetime.datetime.combine( date,starttime ) From dcb207fb203db117a68d927326972649033e8907 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 8 Jun 2018 09:08:58 +0200 Subject: [PATCH 2/3] improved workout edit form --- rowers/templates/document_form.html | 2 +- rowers/templates/workout_form.html | 2 +- rowers/tests.py | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rowers/templates/document_form.html b/rowers/templates/document_form.html index 6c899e79..67e38300 100644 --- a/rowers/templates/document_form.html +++ b/rowers/templates/document_form.html @@ -85,7 +85,7 @@ $( document ).ready(function() { $(this).val() == 'rower' || $(this).val() == 'skierg' || $(this).val() == 'dynamic' - || $(this).val() == 'sliders' + || $(this).val() == 'slides' || $(this).val() == 'paddle' || $(this).val() == 'snow' ) { diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 3cef35a9..21165f3a 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -26,7 +26,7 @@ $( document ).ready(function() { $(this).val() == 'rower' || $(this).val() == 'skierg' || $(this).val() == 'dynamic' - || $(this).val() == 'sliders' + || $(this).val() == 'slides' || $(this).val() == 'paddle' || $(this).val() == 'snow' ) { diff --git a/rowers/tests.py b/rowers/tests.py index cd504a4a..59afd8e3 100644 --- a/rowers/tests.py +++ b/rowers/tests.py @@ -450,6 +450,8 @@ class DataTest(TestCase): 'notes':'Aap noot \n mies', 'weightcategory':'lwt', 'workouttype':'water', + 'boattype':'1x', + 'private':False, } form = WorkoutForm(data=form_data) self.assertTrue(form.is_valid()) @@ -680,6 +682,8 @@ class ViewTest(TestCase): 'distance':'15000', 'weightcategory':'hwt', 'workouttype':'rower', + 'boattype':'1x', + 'private':True, 'notes':'noot mies', } form = WorkoutForm(data=form_data) From 15f489e08646a302784d88d6b3405693ddf39365 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 8 Jun 2018 09:35:11 +0200 Subject: [PATCH 3/3] bug fixes --- rowers/dataprep.py | 11 +++++------ rowers/templates/manualadd.html | 28 ++++++++++++++++++++++++++++ rowers/templates/workout_form.html | 2 +- rowers/views.py | 29 +++++++++++++++++++++-------- 4 files changed, 55 insertions(+), 15 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index b00136ab..ca63cac2 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -748,9 +748,8 @@ def fetchcp(rower,theworkouts,table='cpdata'): # create a new workout from manually entered data -def create_row_df(r,distance,duration,startdatetime, - title = 'Manually added workout',notes='', - workouttype='rower'): +def create_row_df(r,distance,duration,startdatetime,workouttype='rower'): + nr_strokes = int(distance/10.) @@ -808,10 +807,10 @@ def create_row_df(r,distance,duration,startdatetime, row.write_csv(csvfilename, gzip = True) id, message = save_workout_database(csvfilename, r, - title=title, - notes=notes, +# title=title, +# notes=notes, dosmooth=False, - workouttype=workouttype, +# workouttype=workouttype, consistencychecks=False, totaltime=totalseconds) diff --git a/rowers/templates/manualadd.html b/rowers/templates/manualadd.html index 60540df9..b5dff315 100644 --- a/rowers/templates/manualadd.html +++ b/rowers/templates/manualadd.html @@ -6,6 +6,34 @@ {% get_current_timezone as TIME_ZONE %} + +{% block scripts %} + + + +{% endblock %} + {% block content %}

Add Workout Manually

diff --git a/rowers/templates/workout_form.html b/rowers/templates/workout_form.html index 21165f3a..fcd4b1d7 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -18,7 +18,7 @@ - +