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

+
+ {% if form.errors %} +

+ Please correct the error{{ form.errors|pluralize }} below. +

+ {% endif %} + + + {{ form.as_table }} +
+ {% csrf_token %} +
+ +
+
+ + + + + +{% 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