From da821f1bff1d961ca6b9b17da5677d13144f1113 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Mon, 8 Oct 2018 16:48:57 +0200
Subject: [PATCH] graph / delete view
---
.../templates/graphimage_delete_confirm.html | 57 ++++-----
rowers/templates/show_graph.html | 110 +++++++++---------
rowers/urls.py | 3 +-
rowers/views.py | 83 ++++++++++++-
templates/newbase.html | 15 +++
5 files changed, 177 insertions(+), 91 deletions(-)
diff --git a/rowers/templates/graphimage_delete_confirm.html b/rowers/templates/graphimage_delete_confirm.html
index 04989cea..8e8a6c02 100644
--- a/rowers/templates/graphimage_delete_confirm.html
+++ b/rowers/templates/graphimage_delete_confirm.html
@@ -1,43 +1,30 @@
-{% extends "base.html" %}
+{% extends "newbase.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}Delete Graph Image {% endblock %}
-{% block content %}
-
-
- {% if form.errors %}
-
- Please correct the error{{ form.errors|pluralize }} below.
-
- {% endif %}
-
-
Confirm Graph Delete
-
This will permanently delete the graph
-
-
-
-
-
-
-
-
-
+{% block main %}
+
{% endblock %}
+
+{% block sidebar %}
+{% include 'menu_workouts.html' %}
+{% endblock %}
diff --git a/rowers/templates/show_graph.html b/rowers/templates/show_graph.html
index 00cdab68..f4ac2a77 100644
--- a/rowers/templates/show_graph.html
+++ b/rowers/templates/show_graph.html
@@ -1,4 +1,4 @@
-{% extends "base.html" %}
+{% extends "newbase.html" %}
{% load staticfiles %}
{% load rowerfilters %}
@@ -14,60 +14,64 @@
{% endblock %}
-{% block content %}
- {{ workout.name }}
-
-
-
+{% block main %}
+
{{ workout.name }}
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+ Share
+
+
+
+
+
-
-
-
-
-
-
-
-{% if user.is_authenticated and user == rower.user %}
-
- Edit Workout
-
-{% else %}
-
- See Workout
-
-{% endif %}
-
-
- {% if user.is_authenticated and user == rower.user %}
-
- Workflow View
-
- {% else %}
-
- {% endif %}
-
-
-{% if user.is_authenticated and user == rower.user %}
-
- Delete Chart
-
-{% else %}
-
-{% endif %}
-
-
-
+ data-text="@rowsandall #rowingdata">Tweet
+
+
+
+
+
+ {% if user.is_authenticated and user == rower.user %}
+
+ Edit Workout
+
+ {% else %}
+
+ See Workout
+
+ {% endif %}
+ {% if user.is_authenticated and user == rower.user %}
+
+ Workflow View
+
+ {% else %}
+
+ {% endif %}
+
+
+ {% if user.is_authenticated and user == rower.user %}
+
+ Delete Chart
+
+ {% else %}
+
+ {% endif %}
+
+
{% endblock %}
+{% block sidebar %}
+{% include 'menu_workouts.html' %}
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index de966574..aa433b37 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -216,8 +216,7 @@ urlpatterns = [
url(r'^cumstats/(?P\w+.*)/(?P\w+.*)$',views.cumstats),
url(r'^cumstats/$',views.cumstats),
url(r'^graph/(?P\d+)/$',views.graph_show_view),
- url(r'^graph/(?P\d+)/deleteconfirm$',views.graph_delete_confirm_view),
- url(r'^graph/(?P\d+)/delete$',views.graph_delete_view),
+ url(r'^graph/(?P\d+)/delete$',views.GraphDelete.as_view(),name='graph_delete'),
url(r'^workout/(?P\d+)/get-thumbnails$',views.get_thumbnails),
url(r'^workout/(?P\d+)/toggle-ranking$',views.workout_toggle_ranking),
url(r'^workout/(?P\d+)/get-testscript$',views.get_testscript),
diff --git a/rowers/views.py b/rowers/views.py
index e3b49e20..cb28d7a7 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -236,7 +236,7 @@ def getrequestrower(request,rowerid=0,userid=0,notpermanent=False):
request.session['rowerid'] = r.id
return r
-
+
def getrower(user):
try:
@@ -6396,10 +6396,18 @@ def workouts_view(request,message='',successmessage='',
messages.info(request,successmessage)
messages.error(request,message)
+ breadcrumbs = [
+ {
+ 'url':'/rowers/list-workouts',
+ 'name':'Workouts'
+ },
+ ]
+
return render(request, 'list_workouts.html',
{'workouts': workouts,
'active': 'nav-workouts',
'rower':r,
+ 'breadcrumbs':breadcrumbs,
'dateform':dateform,
'startdate':startdate,
'enddate':enddate,
@@ -7963,6 +7971,15 @@ def workflow_default_view(request):
return HttpResponseRedirect(url)
+def get_workout_default_page(request,id):
+ if request.user.is_anonymous():
+ return reverse(workout_view,kwargs={'id':str(id)})
+ else:
+ r = Rower.objects.get(user=request.user)
+ if r.defaultlandingpage == 'workout_edit_view':
+ return reverse(workout_edit_view,kwargs={'id':str(id)})
+ else:
+ return reverse(workout_workflow_view,kwargs={'id':str(id)})
# Workflow Configuration
@login_required()
@@ -10571,10 +10588,29 @@ def graph_show_view(request,id):
w = Workout.objects.get(id=g.workout.id)
r = Rower.objects.get(id=w.user.id)
+ breadcrumbs = [
+ {
+ 'url':'/rowers/list-workouts',
+ 'name':'Workouts'
+ },
+ {
+ 'url':get_workout_default_page(request,w.id),
+ 'name': str(w.id)
+ },
+ {
+ 'url':reverse(graph_show_view,kwargs={'id':id}),
+ 'name': 'Chart'
+ }
+
+ ]
+
+
return render(request,'show_graph.html',
{'graph':g,
'teams':get_my_teams(request.user),
'workout':w,
+ 'breadcrumbs':breadcrumbs,
+ 'active':'nav-workouts',
'rower':r,})
except GraphImage.DoesNotExist:
@@ -14382,6 +14418,51 @@ class MesoCycleDelete(DeleteView):
return obj
+class GraphDelete(DeleteView):
+ login_required = True
+ model = GraphImage
+ template_name = 'graphimage_delete_confirm.html'
+
+ # extra parameters
+ def get_context_data(self, **kwargs):
+ context = super(GraphDelete, self).get_context_data(**kwargs)
+
+ breadcrumbs = [
+ {
+ 'url':'/rowers/list-workouts',
+ 'name':'Workouts'
+ },
+ {
+ 'url':get_workout_default_page(self.request,self.object.workout.id),
+ 'name': str(self.object.workout.id)
+ },
+ {
+ 'url':reverse(graph_show_view,kwargs={'id':self.object.pk}),
+ 'name': 'Chart'
+ },
+ { 'url':reverse('graph_delete',kwargs={'pk':str(self.object.pk)}),
+ 'name': 'Delete'
+ }
+
+ ]
+
+ context['active'] = 'nav-workouts'
+ context['rower'] = getrower(self.request.user)
+ context['breadcrumbs'] = breadcrumbs
+
+ return context
+
+
+ def get_success_url(self):
+ w = self.object.workout
+ return reverse(workout_edit_view,kwargs={'id':str(w.id)})
+
+ def get_object(self, *args, **kwargs):
+ obj = super(GraphDelete, self).get_object(*args, **kwargs)
+ if not checkaccessuser(self.request.user,obj.workout.user):
+ raise PermissionDenied('You are not allowed to delete this chart')
+
+ return obj
class MacroCycleDelete(DeleteView):
model = TrainingMacroCycle
diff --git a/templates/newbase.html b/templates/newbase.html
index c8f73fc9..398a855b 100644
--- a/templates/newbase.html
+++ b/templates/newbase.html
@@ -253,6 +253,21 @@
{% endfor %}
{% endif %}
+ {% if breadcrumbs %}
+
+
+
+ You are here:
+ {% for crumb in breadcrumbs %}
+ {{ crumb.name }}
+ {% if not forloop.last %}
+ /
+ {% endif %}
+ {% endfor %}
+
+
+
+ {% endif %}
{% block main %}