From e1cd70f0163f89b213a6fc7904f062b5dcaa4ed2 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 15 Oct 2018 12:47:36 +0200 Subject: [PATCH] plannedsession_delete_view line 470 --- .../plannedsessiondeleteconfirm.html | 64 ++++++++--------- rowers/urls.py | 5 +- rowers/views.py | 72 +++++++++++++++++++ 3 files changed, 106 insertions(+), 35 deletions(-) diff --git a/rowers/templates/plannedsessiondeleteconfirm.html b/rowers/templates/plannedsessiondeleteconfirm.html index 0a6f3d7f..a299e6b0 100644 --- a/rowers/templates/plannedsessiondeleteconfirm.html +++ b/rowers/templates/plannedsessiondeleteconfirm.html @@ -1,45 +1,43 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% block title %}Planned Session{% endblock %} -{% block content %} -
- {% include "planningbuttons.html" %} - -
-
-

Confirm Delete

-

This will permanently delete the planned session

+{% block main %} +

Confirm Delete

+

This will permanently delete the planned session

- -
+
    +
  • - Cancel -

- -
-

- Delete +

+ {% csrf_token %} +

Are you sure you want to delete {{ object }}?

+ +

-
+ -
-
-

Session {{ psdict.name.1 }}

- - {% for attr in attrs %} - {% for key,value in psdict.items %} - {% if key == attr %} - - - - {% endif %} - {% endfor %} - {% endfor %} -
{{ value.0 }}{{ value.1 }}
-
+
  • +

    Session {{ psdict.name.1 }}

    + + {% for attr in attrs %} + {% for key,value in psdict.items %} + {% if key == attr %} + + + + {% endif %} + {% endfor %} + {% endfor %} +
    {{ value.0 }}{{ value.1 }}
    +
  • + +{% endblock %} + +{% block sidebar %} +{% include 'menu_plan.html' %} {% endblock %} diff --git a/rowers/urls.py b/rowers/urls.py index 080a7b61..c6184a05 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -466,8 +466,9 @@ urlpatterns = [ name='plannedsession_view'), url(r'^sessions/(?P\d+)/user/(?P\d+)$',views.plannedsession_view, name='plannedsession_view'), - url(r'^sessions/(?P\d+)/deleteconfirm$',views.plannedsession_deleteconfirm_view), - url(r'^sessions/(?P\d+)/delete$',views.plannedsession_delete_view), + url(r'^sessions/(?P\d+)/deleteconfirm$',views.PlannedSessionDelete.as_view()), + url(r'^sessions/(?P\d+)/delete$',views.PlannedSessionDelete.as_view(), + name='plannedsession_delete_view'), url(r'^sessions/manage/session/(?P\d+)$', views.plannedsessions_manage_view), url(r'^sessions/manage/user/(?P\d+)/session/(?P\d+)$', diff --git a/rowers/views.py b/rowers/views.py index 0c33fa4b..f2216340 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -14786,6 +14786,78 @@ def plannedsession_view(request,id=0,userid=0): } ) +class PlannedSessionDelete(DeleteView): + model = PlannedSession + template_name = 'plannedsessiondeleteconfirm.html' + + # extra parameters + def get_context_data(self, **kwargs): + context = super(PlannedSessionDelete,self).get_context_data(**kwargs) + + if 'userid' in kwargs: + userid = kwargs['userid'] + else: + userid = 0 + + context['active']= 'nav-plan' + context['rower'] = getrequestrower(self.request,userid=userid) + context['ps'] = self.object + + psdict = my_dict_from_instance(self.object,PlannedSession) + + context['psdict'] = psdict + + context['attrs'] = ['name','startdate','enddate','sessiontype'] + + breadcrumbs = [ + { + 'url':reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Plan' + }, + { + 'url': reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Sessions' + }, + { + 'url':reverse(plannedsession_view, + kwargs={ + 'userid':userid, + 'id':self.object.pk, + } + ), + 'name': self.object.pk + }, + { + 'url':reverse('plannedsession_delete_view', + kwargs={'pk':self.object.pk}), + 'name': 'Delete' + } + ] + + context['breadcrumbs'] = breadcrumbs + + return context + + def get_success_url(self): + ws = Workout.objects.filter(plannedsession=self.object) + for w in ws: + w.plannedsession = None + w.save() + + url = reverse(plannedsessions_view) + + return url + + def get_object(self, *args, **kwargs): + obj = super(PlannedSessionDelete, self).get_object(*args, **kwargs) + m = Rower.objects.get(user=obj.manager) + if not checkaccessuser(self.request.user,m): + raise PermissionDenied('You are not allowed to delete this planned session') + + return obj + @login_required() def plannedsession_delete_view(request,id=0): r = getrower(request.user)