diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py
index 92180bd4..692e216d 100644
--- a/rowers/plannedsessions.py
+++ b/rowers/plannedsessions.py
@@ -110,6 +110,14 @@ def get_sessions(r,startdate=timezone.now(),
rower__in=[r],
startdate__gte=startdate,
enddate__lte=enddate,
- ).order_by("startdate")
+ ).order_by("startdate","enddate")
return sps
+
+def update_plannedsession(ps,cd):
+ for attr, value in cd.items():
+ setattr(ps, attr, value)
+
+ ps.save()
+
+ return 1,'Planned Session Updated'
diff --git a/rowers/templates/plannedsessionedit.html b/rowers/templates/plannedsessionedit.html
new file mode 100644
index 00000000..77884076
--- /dev/null
+++ b/rowers/templates/plannedsessionedit.html
@@ -0,0 +1,76 @@
+{% extends "base.html" %}
+{% load staticfiles %}
+
+{% block title %}Update Planned Session{% endblock %}
+
+{% block content %}
+
+ {% include "planningbuttons.html" %}
+
+
+
+
Edit Session {{ thesession.name }}
+
+
+
Plan
+
+ Click on session name to view
+
+
+
+
+ | After |
+ Before |
+ Name |
+ Value |
+ |
+ Edit |
+ Delete |
+
+
+
+ {% for ps in plannedsessions %}
+
+ | {{ ps.startdate|date:"Y-m-d" }} |
+ {{ ps.enddate|date:"Y-m-d" }} |
+
+ {% if ps.name != '' %}
+ {{ ps.name }}
+ {% else %}
+ Unnamed Session
+ {% endif %}
+ |
+ {{ ps.sessionvalue }} |
+ {{ ps.sessionunit }} |
+
+ Edit
+ |
+
+ Delete
+ |
+
+ {% endfor %}
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index bc1a58a6..89aa1130 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -397,6 +397,7 @@ urlpatterns = [
url(r'^test\_callback',views.rower_process_testcallback),
url(r'^workout/(?P\d+)/test\_strokedata$',views.strokedataform),
url(r'^sessions/create$',views.plannedsession_create_view),
+ url(r'^sessions/(?P\d+)/edit$',views.plannedsession_edit_view),
]
if settings.DEBUG:
diff --git a/rowers/views.py b/rowers/views.py
index 1c34787b..cbad780e 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -11751,3 +11751,53 @@ def plannedsession_create_view(request):
'form':sessioncreateform,
'plannedsessions':sps,
})
+
+# Edit an existing planned session
+@user_passes_test(hasplannedsessions,login_url="/",
+ redirect_field_name=None)
+def plannedsession_edit_view(request,id=0):
+
+ r = getrower(request.user)
+
+ try:
+ ps = PlannedSession.objects.get(id=id)
+ except PlannedSession.DoesNotExist:
+ raise Http404("Planned Session does not exist")
+
+ if request.method == 'POST':
+ sessioncreateform = PlannedSessionForm(request.POST,instance=ps)
+ if sessioncreateform.is_valid():
+ cd = sessioncreateform.cleaned_data
+ startdate = cd['startdate']
+ enddate = cd['enddate']
+ sessiontype = cd['sessiontype']
+ sessionmode = cd['sessionmode']
+ sessionvalue = cd['sessionvalue']
+ sessionunit = cd['sessionunit']
+ comment = cd['comment']
+ name = cd['name']
+
+ res,message = update_plannedsession(ps,cd)
+
+ if res:
+ messages.info(request,message)
+ else:
+ messages.error(request,message)
+
+ url = reverse(plannedsession_edit_view,
+ kwargs={
+ 'id':int(ps.id),
+ })
+ return HttpResponseRedirect(url)
+ else:
+ sessioncreateform = PlannedSessionForm(instance=ps)
+
+ sps = get_sessions(r)
+
+ return render(request,'plannedsessionedit.html',
+ {
+ 'teams':get_my_teams(request.user),
+ 'form':sessioncreateform,
+ 'plannedsessions':sps,
+ 'thesession':ps,
+ })
diff --git a/static/img/rowingtimer.gif b/static/img/rowingtimer.gif
index 2da0bca3..72c1baae 100644
Binary files a/static/img/rowingtimer.gif and b/static/img/rowingtimer.gif differ