From abd2355893eaf711edc0a7b633d7d2296d731505 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 19 Jan 2024 08:50:54 +0100 Subject: [PATCH] first version --- rowers/templates/list_workouts.html | 195 +++++++++++++++------------- rowers/views/workoutviews.py | 9 ++ 2 files changed, 116 insertions(+), 88 deletions(-) diff --git a/rowers/templates/list_workouts.html b/rowers/templates/list_workouts.html index 28475a29..3984d421 100644 --- a/rowers/templates/list_workouts.html +++ b/rowers/templates/list_workouts.html @@ -83,104 +83,123 @@ {% if workouts %} - {% for workout in workouts %} -
  • - {{ workout.date|date:"Y-m-d" }} {{ workout.starttime|date:"H:i" }} - {% if workout.duplicate %} - + {% if request.GET.selectworkouts %} +
  • +
    +

    Bulk Operation

    + + {% csrf_token %} + +
  • + {% endif %} + + {% for workout in workouts %} +
  • + {% if request.GET.selectworkouts %} + + {% endif %} + {{ workout.date|date:"Y-m-d" }} {{ workout.starttime|date:"H:i" }} + {% if workout.duplicate %} + + {% endif %} + {% if workout.rankingpiece %} + + {% endif %} + {% if workout.rpe == 0 and not workout.duplicate %} + + No RPE + + {% endif %} +
    + {% if workout.name != '' %} +

    + {% if team %} + + {{ workout.name }} ({{ workout.user.user.first_name }} {{ workout.user.user.last_name}}) + + {% else %} + + {{ workout.name }} + {% endif %} - {% if workout.rankingpiece %} - - {% endif %} - {% if workout.rpe == 0 and not workout.duplicate %} - - No RPE - - {% endif %} -
    - {% if workout.name != '' %} -

    - {% if team %} - - {{ workout.name }} ({{ workout.user.user.first_name }} {{ workout.user.user.last_name}}) - - {% else %} - - {{ workout.name }} - - {% endif %} -

    - {% else %} -

    - {% if team %} - - No Name ({{ workout.user.user.first_name }} {{ workout.user.user.last_name}}) - - {% else %} - - No Name - - {% endif %} -

    - {% endif %} -
    -
    -
    - {% with workout.workouttype|icon|safe as templateName %} - {% include templateName %} - {% endwith %} -
    -
    - Distance
    - {{ workout.distance|distanceprint }} -
    -
    - Time
    - {{ workout.duration |durationprint:"%H:%M:%S.%f" }} -
    - +
    +
    + {% with workout.workouttype|icon|safe as templateName %} + {% include templateName %} + {% endwith %} +
    +
    + Distance
    + {{ workout.distance|distanceprint }} +
    +
    + Time
    + {{ workout.duration |durationprint:"%H:%M:%S.%f" }} +
    +
    + {% if workout|may_edit:request %} + - {% else %} -   - {% endif %} -
    -
    - {% if workout|may_edit:request %} - {% if rower.defaultlandingpage2 != 'workout_delete' %} - + {% else %} +   + {% endif %} +
    + -
    -

  • - - {% endfor %} + {% endif %} + {% else %} +   + {% endif %} + + + + + {% endfor %} {% else %}
  • No workouts found
  • {% endif %} + {% if request.GET.selectworkouts %} + + {% endif %}
  • Filter on date

    diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index a1e4d704..b9721ed9 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -2047,7 +2047,16 @@ def workouts_view(request, message='', successmessage='', enddate = datetime.datetime.combine(enddate, datetime.time(23, 59, 59)) query = None + if request.method == 'POST': + print(request.POST) + if 'selectworkouts' in request.POST: + if 'remove' in request.POST.get('selectworkouts_operation'): + remove_ids = request.POST.getlist('workoutid') + for id in remove_ids: + w = Workout.objects.get(id=encoder.decode_hex(id)) + messages.info(request,'Removed workout '+str(id)) + w.delete() dateform = DateRangeForm(request.POST) searchform = SearchForm(request.POST) if dateform.is_valid(): # pragma: no cover