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

- - -
-

- Cancel -

- -
-

- Delete -

-
- -
- -
-

- -/{{ graph.filename }} - -

- -
+{% 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 }}

+
- -
- -

 

-
-
-{% 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 %} -
-
-
-

- -/{{ graph.filename }} - -

-
+ 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 %}