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/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/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/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 5160aec2..fcd4b1d7 100644 --- a/rowers/templates/workout_form.html +++ b/rowers/templates/workout_form.html @@ -18,6 +18,27 @@ + + {% endblock %} {% block content %} @@ -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/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) diff --git a/rowers/views.py b/rowers/views.py index cdcee2fb..ae26b810 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -3604,6 +3604,7 @@ def addmanual_view(request): distance = form.cleaned_data['distance'] notes = form.cleaned_data['notes'] thetimezone = form.cleaned_data['timezone'] + private = form.cleaned_data['private'] try: boattype = request.POST['boattype'] except KeyError: @@ -3617,6 +3618,11 @@ def addmanual_view(request): except KeyError: rankingpiece =- Workout.objects.get(id=id).rankingpiece + if private: + privacy = 'private' + else: + privacy = 'visible' + startdatetime = (str(date) + ' ' + str(starttime)) startdatetime = datetime.datetime.strptime(startdatetime, "%Y-%m-%d %H:%M:%S") @@ -3628,10 +3634,10 @@ def addmanual_view(request): id,message = dataprep.create_row_df(r, distance, - weightcategory, +# weightcategory, duration,startdatetime, - title = name, - notes=notes, +# title = name, +# notes=notes, workouttype=workouttype) @@ -3642,7 +3648,12 @@ def addmanual_view(request): if id: w = Workout.objects.get(id=id) w.rankingpiece = rankingpiece or is_ranking_piece(w) + w.privacy = privacy + w.weightcategory = weightcategory w.notes = notes + w.name = name + w.workouttype = workouttype + w.boattype = boattype w.save() messages.info(request,'New workout created') @@ -7541,7 +7552,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): def instroke_view(request,id=0): row = get_workout(id) - form = WorkoutForm(instance=row) +# form = WorkoutForm(instance=row) g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime") # check if user is owner of this workout @@ -7573,7 +7584,7 @@ def instroke_view(request,id=0): def workout_geeky_view(request,id=0,message="",successmessage=""): row = get_workout(id) - form = WorkoutForm(instance=row) +# form = WorkoutForm(instance=row) g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime") rowdata = rrdata(csvfile=row.csvfilename) instrokemetrics = rowdata.get_instroke_columns() @@ -8131,7 +8142,7 @@ def workout_stats_view(request,id=0,message="",successmessage=""): def workout_advanced_view(request,id=0,message="",successmessage=""): row = get_workout(id) - form = WorkoutForm(instance=row) +# form = WorkoutForm(instance=row) g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime") for i in g: try: @@ -8851,7 +8862,7 @@ def workout_export_view(request,id=0, message="", successmessage=""): rkuserid = 0 - form = WorkoutForm(instance=row) +# form = WorkoutForm(instance=row) g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime") for i in g: try: @@ -9190,6 +9201,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 +9218,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 ) @@ -10169,11 +10186,13 @@ def workout_getc2workout_view(request,c2id): distance, duration, startdatetime, - title = 'Imported from C2', +# title = 'Imported from C2', workouttype=workouttype) w = Workout.objects.get(id=id) w.uploadedtoc2 = c2id + w.name = 'Imported from C2' + w.workouttype = 'rower' w.save() message = "This workout does not have any stroke data associated with it. We created synthetic stroke data."