diff --git a/rowers/tasks_standalone.py b/rowers/tasks_standalone.py
index 939fead5..c0d7da11 100644
--- a/rowers/tasks_standalone.py
+++ b/rowers/tasks_standalone.py
@@ -15,7 +15,7 @@ from django.contrib.auth.models import User
@app.task
-def addcomment2(userid,id):
+def addcomment2(userid,id,debug=False):
time.sleep(5)
# w = Workout.objects.get(id=id)
diff --git a/rowers/templates/histo_single.html b/rowers/templates/histo_single.html
index 6f3594a2..e1ee3677 100644
--- a/rowers/templates/histo_single.html
+++ b/rowers/templates/histo_single.html
@@ -30,5 +30,5 @@
{% block sidebar %}
-{% include 'menu_workouts.html' %}
+{% include 'menu_workout.html' %}
{% endblock %}
diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html
index 1f3b8b3f..fbbdbe18 100644
--- a/rowers/templates/menu_workout.html
+++ b/rowers/templates/menu_workout.html
@@ -5,63 +5,74 @@
+
+
+
+
+
-
+
@@ -87,22 +98,22 @@
diff --git a/rowers/templates/workout_delete_confirm.html b/rowers/templates/workout_delete_confirm.html
index b64a5976..b54141d2 100644
--- a/rowers/templates/workout_delete_confirm.html
+++ b/rowers/templates/workout_delete_confirm.html
@@ -1,51 +1,41 @@
-{% extends "base.html" %}
+{% extends "newbase.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}Change Workout {% endblock %}
-{% block content %}
-
-
- {% if form.errors %}
-
- Please correct the error{{ form.errors|pluralize }} below.
-
- {% endif %}
-
-
Confirm Workout Delete
- This will delete the following workout and all linked graph images:
-
-
-
+{% block main %}
+ Delete {{ workout }}?
+
+ -
+
+ This will delete the following workout and all related data (charts, comments):
+
+
+
+ | Name: | {{ workout.name }} |
+
| Date: | {{ workout.date }} |
-
+
| Time: | {{ workout.starttime }} |
-
+
| Distance: | {{ workout.distance }}m |
-
+
| Duration: | {{ workout.duration |durationprint:"%H:%M:%S.%f" }} |
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-{% endblock %}
\ No newline at end of file
+{% endblock %}
+
+{% block sidebar %}
+{% include 'menu_workout.html' %}
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index aa433b37..837cd789 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -321,7 +321,7 @@ urlpatterns = [
url(r'^workout/(?P
\d+)/addstatic/(?P\d+)$',
views.workout_add_chart_view),
url(r'^workout/(?P\d+)/addstatic$',views.workout_add_chart_view),
- url(r'^workout/(?P\d+)/delete$',views.workout_delete_view),
+ url(r'^workout/(?P\d+)/delete$',views.WorkoutDelete.as_view(),name='workout_delete'),
url(r'^workout/(?P\d+)/smoothenpace$',views.workout_smoothenpace_view),
url(r'^workout/(?P\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view),
url(r'^workout/c2import/$',views.workout_c2import_view),
@@ -338,7 +338,7 @@ urlpatterns = [
url(r'^workout/polarimport/$',views.workout_polarimport_view),
url(r'^workout/runkeeperimport/$',views.workout_runkeeperimport_view),
url(r'^workout/underarmourimport/$',views.workout_underarmourimport_view),
- url(r'^workout/(?P\d+)/deleteconfirm$',views.workout_delete_confirm_view),
+# url(r'^workout/(?P\d+)/deleteconfirm$',views.workout_delete_confirm_view),
url(r'^workout/(?P\d+)/c2uploadw/$',views.workout_c2_upload_view),
url(r'^workout/(?P\d+)/stravauploadw/$',views.workout_strava_upload_view),
url(r'^workout/(?P\d+)/recalcsummary/$',views.workout_recalcsummary_view),
diff --git a/rowers/views.py b/rowers/views.py
index 2bed0092..94148477 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -2897,6 +2897,7 @@ def workout_histo_view(request,id=0):
{'interactiveplot':script,
'breadcrumbs':breadcrumbs,
'active':'nav-workouts',
+ 'workout':w,
'rower':r,
'the_div':div,
'id':int(id),
@@ -14514,6 +14515,48 @@ class GraphDelete(DeleteView):
return obj
+class WorkoutDelete(DeleteView):
+ login_required = True
+ model = Workout
+ template_name = 'workout_delete_confirm.html'
+
+ # extra parameters
+ def get_context_data(self, **kwargs):
+ context = super(WorkoutDelete, self).get_context_data(**kwargs)
+
+ breadcrumbs = [
+ {
+ 'url':'/rowers/list-workouts',
+ 'name':'Workouts'
+ },
+ {
+ 'url':get_workout_default_page(self.request,self.object.id),
+ 'name': str(self.object.id)
+ },
+ { 'url':reverse('workout_delete',kwargs={'pk':str(self.object.pk)}),
+ 'name': 'Delete'
+ }
+
+ ]
+
+ context['active'] = 'nav-workouts'
+ context['rower'] = getrower(self.request.user)
+ context['breadcrumbs'] = breadcrumbs
+ context['workout'] = self.object
+
+ return context
+
+
+ def get_success_url(self):
+ return reverse(workouts_view)
+
+ def get_object(self, *args, **kwargs):
+ obj = super(WorkoutDelete, self).get_object(*args, **kwargs)
+ if not checkaccessuser(self.request.user,obj.user):
+ raise PermissionDenied('You are not allowed to delete this workout')
+
+ return obj
+
class MacroCycleDelete(DeleteView):
model = TrainingMacroCycle
template_name = 'trainingplan_delete.html'