diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 692e216d..1a5ae4ea 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -2,6 +2,7 @@ from django.utils import timezone from datetime import datetime from datetime import timedelta +from datetime import date import time from django.db import IntegrityError import uuid @@ -104,8 +105,9 @@ def remove_rower_session(r,ps): return 1 -def get_sessions(r,startdate=timezone.now(), - enddate=timezone.now()+timezone.timedelta(+1000)): +def get_sessions(r,startdate=date.today(), + enddate=date.today()+timezone.timedelta(+1000)): + sps = PlannedSession.objects.filter( rower__in=[r], startdate__gte=startdate, diff --git a/rowers/templates/graphimage_delete_confirm.html b/rowers/templates/graphimage_delete_confirm.html index 8b0dfa3f..04989cea 100644 --- a/rowers/templates/graphimage_delete_confirm.html +++ b/rowers/templates/graphimage_delete_confirm.html @@ -40,4 +40,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/rowers/templates/plannedsessiondeleteconfirm.html b/rowers/templates/plannedsessiondeleteconfirm.html new file mode 100644 index 00000000..0a6f3d7f --- /dev/null +++ b/rowers/templates/plannedsessiondeleteconfirm.html @@ -0,0 +1,45 @@ +{% extends "base.html" %} +{% load staticfiles %} + +{% block title %}Planned Session{% endblock %} + +{% block content %} +
+ {% include "planningbuttons.html" %} + +
+
+

Confirm Delete

+

This will permanently delete the planned session

+ + +
+

+ Cancel +

+ +
+

+ Delete +

+
+ +
+ + + + +{% endblock %} diff --git a/rowers/templates/plannedsessions.html b/rowers/templates/plannedsessions.html new file mode 100644 index 00000000..8ff10042 --- /dev/null +++ b/rowers/templates/plannedsessions.html @@ -0,0 +1,54 @@ +{% extends "base.html" %} +{% load staticfiles %} + +{% block title %}Planned Sessions{% endblock %} + +{% block content %} +
+ {% include "planningbuttons.html" %} + +
+
+

Placeholder text

+
+ + + + + +{% endblock %} diff --git a/rowers/urls.py b/rowers/urls.py index 884e6b95..bced6757 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -399,6 +399,10 @@ urlpatterns = [ url(r'^sessions/create$',views.plannedsession_create_view), url(r'^sessions/(?P\d+)/edit$',views.plannedsession_edit_view), url(r'^sessions/(?P\d+)$',views.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/?$',views.plannedsessions_view), + url(r'^sessions/(?P[\w\ ]+.*)$',views.plannedsessions_view), ] if settings.DEBUG: diff --git a/rowers/views.py b/rowers/views.py index 200111d4..ebe3ed56 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -11704,7 +11704,7 @@ def agegrouprecordview(request,sex='male',weightcategory='hwt', }) # Individual user creates training for himself -@user_passes_test(hasplannedsessions,login_url="/", +@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", redirect_field_name=None) def plannedsession_create_view(request): @@ -11752,8 +11752,49 @@ def plannedsession_create_view(request): 'plannedsessions':sps, }) +@login_required() +def plannedsessions_view(request,timeperiod='today',rowerid=0): + + if rowerid==0: + r = getrower(request.user) + else: + r = getrower(id=rowerid) + if not checkaccessuser(request.user,r): + raise Http404("You don't have access to this plan") + + # set start end date according timeperiod + if timeperiod=='today': + startdate=datetime.date.today() + enddate=datetime.date.today() + elif timeperiod=='tomorrow': + startdate=datetime.date.today()+timezone.timedelta(days=1) + enddate=datetime.date.today()+timezone.timedelta(days=1) + elif timeperiod=='thisweek': + today = datetime.date.today() + startdate = datetime.date.today()-timezone.timedelta(days=today.weekday()) + enddate = startdate+timezone.timedelta(weeks=1) + elif timeperiod=='thismonth': + today = datetime.date.today() + startdate = today.replace(day=1) + enddate = startdate+timezone.timedelta(days=32) + enddate = enddate.replace(day=1) + else: + startdate = datetime.date.today() + enddate = datetime.date.today() + + + + sps = get_sessions(r,startdate=startdate,enddate=enddate) + + return render(request,'plannedsessions.html', + { + 'teams':get_my_teams(request.user), + 'plannedsessions':sps, + }) + + # Edit an existing planned session -@user_passes_test(hasplannedsessions,login_url="/", +@user_passes_test(hasplannedsessions,login_url="/rowers/promembership/", redirect_field_name=None) def plannedsession_edit_view(request,id=0): @@ -11764,6 +11805,9 @@ def plannedsession_edit_view(request,id=0): except PlannedSession.DoesNotExist: raise Http404("Planned Session does not exist") + if ps.manager != request.user: + raise Http404("You are not allowed to delete this planned session") + if request.method == 'POST': sessioncreateform = PlannedSessionForm(request.POST,instance=ps) if sessioncreateform.is_valid(): @@ -11802,6 +11846,9 @@ def plannedsession_edit_view(request,id=0): 'thesession':ps, }) + + +@login_required() def plannedsession_view(request,id=0): r = getrower(request.user) @@ -11812,7 +11859,9 @@ def plannedsession_view(request,id=0): raise Http404("Planned Session does not exist") - psdict = {} + if ps.manager != request.user: + raise Http404("You are not allowed to delete this planned session") + psdict = my_dict_from_instance(ps,PlannedSession) @@ -11821,7 +11870,52 @@ def plannedsession_view(request,id=0): 'psdict': psdict, 'attrs':[ 'name','startdate','enddate','sessiontype', - 'comment' + ] + } + ) + +@login_required() +def plannedsession_delete_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 ps.manager != request.user: + raise Http404("You are not allowed to delete this planned session") + + ps.delete() + + url = reverse(plannedsessions_view) + + return HttpResponseRedirect(url) + +@login_required() +def plannedsession_deleteconfirm_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 ps.manager != request.user: + raise Http404("You are not allowed to delete this planned session") + + + psdict = my_dict_from_instance(ps,PlannedSession) + + return render(request,'plannedsessiondeleteconfirm.html', + { + 'ps':ps, + 'psdict': psdict, + 'attrs':[ + 'name','startdate','enddate','sessiontype', ] } ) diff --git a/templates/base.html b/templates/base.html index c1b47ac0..d5912f8f 100644 --- a/templates/base.html +++ b/templates/base.html @@ -3,13 +3,6 @@ {% load rowerfilters %} {% endblock %} -{% block plans %} -{% if user.rower.rowerplan == 'pro' or user.rower.rowerplan == 'coach' %} -

Plans

-{% else %} -

Plans

-{% endif %} -{% endblock %} {% block teams %} diff --git a/templates/basebase.html b/templates/basebase.html index 662f60c3..0a96c96d 100644 --- a/templates/basebase.html +++ b/templates/basebase.html @@ -202,8 +202,11 @@ {% endblock %}
- {% block plans %} - {% endblock %} + {% if user.is_authenticated %} +

Plans

+ {% else %} +

 

+ {% endif %}
{% block challenges %}