diff --git a/rowers/models.py b/rowers/models.py
index 28c15d86..e79c7722 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -840,6 +840,7 @@ def checkworkoutuser(user,workout):
except Rower.DoesNotExist:
return False
+
# Check if user is coach or rower
def checkaccessuser(user,rower):
try:
@@ -1008,7 +1009,7 @@ class TrainingPlan(models.Model):
self.startdate = enddate
self.enddate = startdate
- otherplans = TrainingPlan.objects.filter(rower=self.rower)
+ otherplans = TrainingPlan.objects.filter(rower=self.rower).exclude(pk=self.pk)
for otherplan in otherplans:
if otherplan.startdate <= self.enddate and otherplan.startdate >= self.startdate:
@@ -1016,8 +1017,6 @@ class TrainingPlan(models.Model):
if otherplan.enddate >= self.startdate and otherplan.enddate <= self.enddate:
self.startdate = otherplan.enddate+datetime.timedelta(days=1)
- print self.startdate,self.enddate
-
if not self.enddate <= self.startdate:
super(TrainingPlan,self).save(*args, **kwargs)
diff --git a/rowers/templates/trainingplan_create.html b/rowers/templates/trainingplan_create.html
index 1a4f2c29..3ea01a93 100644
--- a/rowers/templates/trainingplan_create.html
+++ b/rowers/templates/trainingplan_create.html
@@ -34,6 +34,8 @@
{{ target.date }} |
{{ target.name }} |
{{ target.notes }} |
+ Edit
+ | Delete
{% endfor %}
@@ -82,6 +84,8 @@
| {{ plan.startdate }} |
{{ plan.enddate }} |
{{ plan.name }} |
+ Edit
+ | Delete
{% endfor %}
diff --git a/rowers/templates/trainingplan_edit.html b/rowers/templates/trainingplan_edit.html
new file mode 100644
index 00000000..1dc67326
--- /dev/null
+++ b/rowers/templates/trainingplan_edit.html
@@ -0,0 +1,32 @@
+{% extends "base.html" %}
+{% load staticfiles %}
+{% load rowerfilters %}
+
+{% block title %}Rowsandall Training Plans{% endblock %}
+
+{% block scripts %}
+
+{% endblock %}
+
+{% block content %}
+
+
+
+ {% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 5e0b41e0..9c554557 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -421,6 +421,10 @@ urlpatterns = [
url(r'^test\_callback',views.rower_process_testcallback),
url(r'^createplan$',views.rower_create_trainingplan),
url(r'^createplan/(?P\d+)$',views.rower_create_trainingplan),
+ url(r'^deleteplan/(?P\d+)$',views.rower_delete_trainingplan),
+ url(r'^deletetarget/(?P\d+)$',views.rower_delete_trainingtarget),
+ url(r'^editplan/(?P\d+)$',views.TrainingPlanUpdate.as_view()),
+ url(r'^edittarget/(?P\d+)$',views.TrainingTargetUpdate.as_view()),
url(r'^workout/(?P\d+)/test\_strokedata$',views.strokedataform),
url(r'^sessions/teamcreate$',views.plannedsession_teamcreate_view),
diff --git a/rowers/views.py b/rowers/views.py
index 9a1bc520..b261271f 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -27,6 +27,9 @@ import codecs
import isodate
from django.shortcuts import render
+
+from django.views.generic.edit import UpdateView
+
from django.http import (
HttpResponse, HttpResponseRedirect,
HttpResponseForbidden, HttpResponseNotAllowed,
@@ -125,6 +128,9 @@ from rowers.tasks_standalone import addcomment2
from django.contrib import messages
from async_messages import messages as a_messages
+from django.contrib.admin.widgets import AdminDateWidget,AdminTimeWidget,AdminSplitDateTime
+
+
import requests
import json
from rest_framework.renderers import JSONRenderer
@@ -14170,6 +14176,41 @@ def virtualevent_submit_result_view(request,id=0):
'w_form':w_form,
})
+@user_passes_test(hasplannedsessions,login_url="/", redirect_field_name=None)
+def rower_delete_trainingtarget(request,id=0):
+ try:
+ target = TrainingTarget.objects.get(id=id)
+ except TrainingPlan.DoesNotExist:
+ raise Http404("Training Plan Does Not Exist")
+
+ if checkaccessuser(request.user,target.rower):
+ target.delete()
+ messages.info(request,"We have deleted the training plan")
+ else:
+ raise PermissionDenied("Access denied")
+
+ url = reverse(rower_create_trainingplan)
+
+ return HttpResponseRedirect(url)
+
+
+@user_passes_test(hasplannedsessions,login_url="/", redirect_field_name=None)
+def rower_delete_trainingplan(request,id=0):
+ try:
+ plan = TrainingPlan.objects.get(id=id)
+ except TrainingPlan.DoesNotExist:
+ raise Http404("Training Plan Does Not Exist")
+
+ if checkaccessuser(request.user,plan.rower):
+ plan.delete()
+ messages.info(request,"We have deleted the training plan")
+ else:
+ raise PermissionDenied("Access denied")
+
+ url = reverse(rower_create_trainingplan)
+
+ return HttpResponseRedirect(url)
+
@user_passes_test(hasplannedsessions,login_url="/", redirect_field_name=None)
def rower_create_trainingplan(request,id=0):
@@ -14228,3 +14269,43 @@ def rower_create_trainingplan(request,id=0):
+class TrainingPlanUpdate(UpdateView):
+ model = TrainingPlan
+ template_name = 'trainingplan_edit.html'
+ form_class = TrainingPlanForm
+
+ def get_success_url(self):
+ return reverse(rower_create_trainingplan)
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ form.instance.post_date = datetime.datetime.now()
+ plan = form.save()
+ return super(TrainingPlanUpdate, self).form_valid(form)
+
+ def get_object(self, *args, **kwargs):
+ obj = super(TrainingPlanUpdate, self).get_object(*args, **kwargs)
+ if not checkaccessuser(self.request.user,obj.rower):
+ raise Http404
+ return obj
+
+class TrainingTargetUpdate(UpdateView):
+ model = TrainingTarget
+ template_name = 'trainingplan_edit.html'
+ form_class = TrainingTargetForm
+
+ def get_success_url(self):
+ return reverse(rower_create_trainingplan)
+
+ def form_valid(self, form):
+ form.instance.user = self.request.user
+ form.instance.post_date = datetime.datetime.now()
+ plan = form.save()
+ return super(TrainingTargetUpdate, self).form_valid(form)
+
+ def get_object(self, *args, **kwargs):
+ obj = super(TrainingTargetUpdate, self).get_object(*args, **kwargs)
+ if not checkaccessuser(self.request.user,obj.rower):
+ raise Http404
+ return obj
+
|