adding plan and target edit
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
<td> {{ target.date }}</td>
|
||||
<td> {{ target.name }}</td>
|
||||
<td> {{ target.notes }}</td>
|
||||
<td> <a href="/rowers/edittarget/{{ target.id }}">Edit</a>
|
||||
<td> <a href="/rowers/deletetarget/{{ target.id }}">Delete</a>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -82,6 +84,8 @@
|
||||
<td> {{ plan.startdate }} </td>
|
||||
<td> {{ plan.enddate }}</td>
|
||||
<td> {{ plan.name }}</td>
|
||||
<td> <a href="/rowers/editplan/{{ plan.id }}">Edit</a>
|
||||
<td> <a href="/rowers/deleteplan/{{ plan.id }}">Delete</a>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
32
rowers/templates/trainingplan_edit.html
Normal file
32
rowers/templates/trainingplan_edit.html
Normal file
@@ -0,0 +1,32 @@
|
||||
{% extends "base.html" %}
|
||||
{% load staticfiles %}
|
||||
{% load rowerfilters %}
|
||||
|
||||
{% block title %}Rowsandall Training Plans{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<style>
|
||||
#mypointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="grid_12">
|
||||
|
||||
<form action="" method="post">
|
||||
{% csrf_token %}
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
<div class="grid_1 prefix_2 suffix_9 alpha">
|
||||
<input class="button green" type="submit" value="Save">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -421,6 +421,10 @@ urlpatterns = [
|
||||
url(r'^test\_callback',views.rower_process_testcallback),
|
||||
url(r'^createplan$',views.rower_create_trainingplan),
|
||||
url(r'^createplan/(?P<id>\d+)$',views.rower_create_trainingplan),
|
||||
url(r'^deleteplan/(?P<id>\d+)$',views.rower_delete_trainingplan),
|
||||
url(r'^deletetarget/(?P<id>\d+)$',views.rower_delete_trainingtarget),
|
||||
url(r'^editplan/(?P<pk>\d+)$',views.TrainingPlanUpdate.as_view()),
|
||||
url(r'^edittarget/(?P<pk>\d+)$',views.TrainingTargetUpdate.as_view()),
|
||||
url(r'^workout/(?P<id>\d+)/test\_strokedata$',views.strokedataform),
|
||||
|
||||
url(r'^sessions/teamcreate$',views.plannedsession_teamcreate_view),
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user