diff --git a/rowers/dataprep.py b/rowers/dataprep.py index e9658fbc..df2f033c 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -408,7 +408,7 @@ def filter_df(datadf, fieldname, value, largerthan=True): def join_workouts(r,ids,title='Joined Workout', parent=None, setprivate=False, - forceunit='lbs'): + forceunit='lbs',killparents=False): message = None @@ -477,6 +477,10 @@ def join_workouts(r,ids,title='Joined Workout', dosmooth=False, consistencychecks=False) + if killparents: + for w in ws: + w.delete() + return (id, message) diff --git a/rowers/forms.py b/rowers/forms.py index 46443563..98971e53 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -1091,6 +1091,8 @@ metricchoices = list(sorted(formaxlabels.items(), key = lambda x:x[1])) class WorkoutJoinParamForm(forms.Form): workout_name = forms.CharField(required = True, initial = 'Joined Workout') set_private = forms.BooleanField(initial=False, required = False) + killparents = forms.BooleanField(initial=False, required = False, + label='Delete original workouts') class FusionMetricChoiceForm(ModelForm): class Meta: diff --git a/rowers/templates/workout_join_select.html b/rowers/templates/workout_join_select.html index ab1035b1..73ccca7c 100644 --- a/rowers/templates/workout_join_select.html +++ b/rowers/templates/workout_join_select.html @@ -17,21 +17,21 @@ +

{{ team.name }} Glue Workouts

    @@ -76,7 +84,7 @@ {% else %}
    - {% endif %} + {% endif %} {{ searchform }}
    @@ -84,7 +92,7 @@
  • {% if workouts %} - + Toggle All
    @@ -97,10 +105,14 @@
  • Select two or more workouts on the left, - and press submit

    + and press submit. Be careful with the "delete original workouts" option. Deleted + workouts cannot be recovered.

  • {{ joinparamform.as_table }}
    +
    + +

    {% csrf_token %} @@ -127,6 +139,7 @@ {% endblock %} + {% block sidebar %} {% include 'menu_workouts.html' %} {% endblock %} diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index f0ecb3d8..7a0c6d3a 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -890,6 +890,7 @@ def workouts_join_view(request,userid=0): if form.is_valid() and paramform.is_valid(): workout_name = paramform.cleaned_data['workout_name'] set_private = paramform.cleaned_data['set_private'] + killparents = paramform.cleaned_data['killparents'] cd = form.cleaned_data workouts = cd['workouts'] @@ -899,7 +900,8 @@ def workouts_join_view(request,userid=0): id,message = dataprep.join_workouts(r,ids, title=workout_name, - setprivate=set_private) + setprivate=set_private, + killparents=killparents) if message: messages.error(request,message)