From 296f8af6d06df6a3db7e57c22d925448681ef9a6 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 15 Oct 2018 10:27:30 +0200 Subject: [PATCH] plannedsession_view --- rowers/templates/plannedsessionedit.html | 109 +++----- .../plannedsessions_multiclone_select.html | 2 +- rowers/templates/plannedsessionview.html | 253 +++++++++--------- rowers/urls.py | 9 +- rowers/views.py | 169 +++++++++--- 5 files changed, 289 insertions(+), 253 deletions(-) diff --git a/rowers/templates/plannedsessionedit.html b/rowers/templates/plannedsessionedit.html index deb11173..a3adbdfe 100644 --- a/rowers/templates/plannedsessionedit.html +++ b/rowers/templates/plannedsessionedit.html @@ -1,65 +1,21 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% load rowerfilters %} {% block title %}Update Planned Session{% endblock %} -{% block content %} -
- {% include "planningbuttons.html" %} - -
-
-
-

Edit Session

-
- +{% block main %} +

Edit Session

{% if user.is_authenticated and user|is_manager %} - +

{% endif %} -
- Courses -
-
-
- - -
-

{{ thesession.name }}

+ +
  • +

    {{ thesession.name }}

    {% if form.errors %}

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

    {% endif %} - +

    {{ form.as_table }}
    +

    {% csrf_token %} -
    - Delete +
    +
    -
    - Clone -
    -
    - -
    -
    +

    + Delete + Clone +

    + + -
    +
  • + -
    - - - -
    {% endblock %} +{% block sidebar %} +{% include 'menu_plan.html' %} +{% endblock %} + + {% block scripts %} -

    Clone Multiple Sessions

    +

    Clone Multiple Sessions for {{ rower.user.first_name }} {{ rower.user.last_name }}

    diff --git a/rowers/templates/plannedsessionview.html b/rowers/templates/plannedsessionview.html index 34df6972..fb967acd 100644 --- a/rowers/templates/plannedsessionview.html +++ b/rowers/templates/plannedsessionview.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "newbase.html" %} {% load staticfiles %} {% load rowerfilters %} @@ -7,158 +7,145 @@ {% block title %}Planned Session{% endblock %} -{% block content %} +{% block main %} -
    - {% include "planningbuttons.html" %} - -
    -
    -
    - {% if user.is_authenticated and psdict.id.1|is_session_manager:user %} - +{% if user.is_authenticated and psdict.id.1|is_session_manager:user %} +

    + Edit Session - {% else %} -   - {% endif %} -

    -
    - {% if plannedsession.sessiontype == 'coursetest' %} - Courses - {% else %} -   - {% endif %} -
    -
    -
    -
    -

    Session {{ psdict.name.1 }}

    - - {% for attr in attrs %} - {% for key,value in psdict.items %} - {% if key == attr %} - - {% if key == 'comment' %} - - {% else %} - - {% endif %} - - {% endif %} - {% endfor %} - {% endfor %} -
    {{ value.0 }}{{ value.1|linebreaks }}{{ value.0 }}{{ value.1 }}
    -
    - -
    -
    -
    -

    {{ rower.user.first_name }} {{ rower.user.last_name }}

    -

    Status: {{ status }}

    -

    Percentage complete: {{ ratio }}

    -
    - -
    -
    - {% if coursescript %} -

    Course

    + + {% endfor %} + + + +
  • +

    {{ rower.user.first_name }} {{ rower.user.last_name }}

    +

    Status: {{ status }}

    +

    Percentage complete: {{ ratio }}

    +
  • +
  • +

    Stats

    + + + + + + + + + + + + + + {% for id, value in results.items %} + + + + + + + + + + {% endfor %} + +
    NameMinutesMetersrScoreTRIMPComplete DateStatus
    {{ value|lookup:'first_name' }} {{ value|lookup:'last_name' }}{{ value|lookup:'duration' }}{{ value|lookup:'distance' }}{{ value|lookup:'rscore' }}{{ value|lookup:'trimp' }}{{ value|lookup:'completedate' }}{{ value|lookup:'status' }}
    +
  • + {% if coursescript %} +
  • +

    Course

    {{ coursediv|safe }} - + {{ coursescript|safe }} - {% endif %} -
  • - -
    + + {% endif %} + + {% endblock %} +{% block sidebar %} +{% include 'menu_plan.html' %} +{% endblock %} + {% block scripts %} diff --git a/rowers/urls.py b/rowers/urls.py index 53e87a49..080a7b61 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -445,13 +445,12 @@ urlpatterns = [ url(r'^sessions/teamcreate/$',views.plannedsession_teamcreate_view), url(r'^sessions/teamcreate/team/$', views.plannedsession_teamcreate_view), - url(r'^sessions/teamedit/(?P\d+)$',views.plannedsession_teamedit_view), + url(r'^sessions/teamedit/(?P\d+)/$',views.plannedsession_teamedit_view), + url(r'^sessions/teamedit/(?P\d+)/user/(?P\d+)/$',views.plannedsession_teamedit_view), url(r'^sessions/create/$',views.plannedsession_create_view), url(r'^sessions/create/user/(?P\d+)$', views.plannedsession_create_view), url(r'^sessions/multiclone/$',views.plannedsession_multiclone_view), - url(r'^sessions/multiclone/user/(?P\d+)/extra/(?P\d+)$/', - views.plannedsession_multiclone_view), url(r'^sessions/multiclone/user/(?P\d+)/$', views.plannedsession_multiclone_view), url(r'^sessions/multicreate/$',views.plannedsession_multicreate_view), @@ -460,8 +459,8 @@ urlpatterns = [ url(r'^sessions/multicreate/user/(?P\d+)/$', views.plannedsession_multicreate_view), url(r'^sessions/(?P\d+)/edit/$',views.plannedsession_edit_view), - url(r'^sessions/(?P\d+)/edit/user/(?P/$',views.plannedsession_edit_view), - url(r'^sessions/(?P\d+)/clone/user/(?P/$',views.plannedsession_clone_view), + url(r'^sessions/(?P\d+)/edit/user/(?P\d+)/$',views.plannedsession_edit_view), + url(r'^sessions/(?P\d+)/clone/user/(?P\d+)/$',views.plannedsession_clone_view), url(r'^sessions/(?P\d+)/clone/$',views.plannedsession_clone_view), url(r'^sessions/(?P\d+)$',views.plannedsession_view, name='plannedsession_view'), diff --git a/rowers/views.py b/rowers/views.py index c604b8e6..0c33fa4b 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -12318,7 +12318,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""): # Page where user can set his details # Add email address to form so user can change his email address @login_required() -def rower_prefs_view(request,rowerid=0,userid=0,message=""): +def rower_prefs_view(request,userid=0,message=""): r = getrequestrower(request,rowerid=rowerid,userid=userid,notpermanent=True) rowerid = r.id @@ -13598,8 +13598,8 @@ def plannedsession_multiclone_view( kwargs = { 'userid':r.user.id, }) - - url += '?when='+when + if when: + url += '?when='+when return HttpResponseRedirect(url) @@ -13657,6 +13657,7 @@ def plannedsession_create_view(request, r = getrequestrower(request,userid=userid) + when = request.GET.get('when') if when: timeperiod = when @@ -13710,7 +13711,7 @@ def plannedsession_create_view(request, url = reverse(plannedsession_create_view, kwargs = { - 'rowerid':r.id, + 'userid':r.user.id, 'timeperiod':timeperiod, }) return HttpResponseRedirect(url) @@ -13739,6 +13740,7 @@ def plannedsession_create_view(request, if fprefdate > enddate: fprefdate = enddate + forminitial = { 'startdate':fstartdate, 'enddate':fenddate, @@ -13871,10 +13873,14 @@ def plannedsession_multicreate_view(request, url = reverse(plannedsession_multicreate_view, kwargs = { - 'rowerid':r.id, - 'timeperiod':timeperiod + 'userid':r.user.id, } ) + + + if when: + url += '?when='+when + return HttpResponseRedirect(url) ps_formset = PlannedSessionFormSet(queryset = qset, @@ -14009,10 +14015,17 @@ def plannedsession_teamcreate_view(request,timeperiod='thisweek', # Manager edits sessions for entire team @user_passes_test(iscoachmember,login_url="/rowers/planmembership/", redirect_field_name=None) -def plannedsession_teamedit_view(request,timeperiod='thisweek', - sessionid=0): +def plannedsession_teamedit_view(request, + sessionid=0,userid=0): - r = getrequestrower(request) + r = getrequestrower(request,userid=userid) + + when = request.GET.get('when') + if when: + timeperiod = when + else: + timeperiod = 'thisweek' + try: ps = PlannedSession.objects.get(id=sessionid) @@ -14103,8 +14116,11 @@ def plannedsession_teamedit_view(request,timeperiod='thisweek', url = reverse(plannedsession_teamedit_view, kwargs = { 'sessionid':sessionid, - 'timeperiod':timeperiod, }) + + if when: + url += '?when='+when + return HttpResponseRedirect(url) else: sessioncreateform = PlannedSessionForm(instance=ps) @@ -14202,9 +14218,9 @@ def plannedsessions_coach_view(request,timeperiod='thisweek', ) @login_required() -def plannedsessions_view(request,timeperiod='thisweek',rowerid=0,userid=0): +def plannedsessions_view(request,timeperiod='thisweek',userid=0): - r = getrequestrower(request,rowerid=rowerid) + r = getrequestrower(request,userid=userid) startdate,enddate = get_dates_timeperiod(timeperiod) @@ -14249,9 +14265,9 @@ def plannedsessions_view(request,timeperiod='thisweek',rowerid=0,userid=0): }) @login_required() -def plannedsessions_print_view(request,timeperiod='thisweek',rowerid=0,userid=0): +def plannedsessions_print_view(request,timeperiod='thisweek',userid=0): - r = getrequestrower(request,rowerid=rowerid) + r = getrequestrower(request,userid=userid) startdate,enddate = get_dates_timeperiod(timeperiod) @@ -14282,14 +14298,14 @@ def plannedsessions_print_view(request,timeperiod='thisweek',rowerid=0,userid=0) @login_required() -def plannedsessions_manage_view(request,timeperiod='thisweek',rowerid=0,userid=0, +def plannedsessions_manage_view(request,timeperiod='thisweek',userid=0, initialsession=0): is_ajax = False if request.is_ajax(): is_ajax = True - r = getrequestrower(request,rowerid=rowerid) + r = getrequestrower(request,userid=userid) startdate,enddate = get_dates_timeperiod(timeperiod) @@ -14415,10 +14431,15 @@ def plannedsessions_manage_view(request,timeperiod='thisweek',rowerid=0,userid=0 # need clarity on cloning behavior time shift @user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/", redirect_field_name=None) -def plannedsession_clone_view(request,id=0,rowerid=0,userid=0, - timeperiod='thisweek'): +def plannedsession_clone_view(request,id=0,userid=0): - r = getrequestrower(request,rowerid=rowerid) + r = getrequestrower(request,userid=userid) + + when = request.GET.get('when') + if when: + timeperiod = when + else: + timeperiod = 'thisweek' startdate,enddate = get_dates_timeperiod(timeperiod) @@ -14460,10 +14481,12 @@ def plannedsession_clone_view(request,id=0,rowerid=0,userid=0, url = reverse(plannedsession_edit_view, kwargs = { 'id':ps.id, - 'timeperiod':timeperiod, - 'rowerid':r.id, + 'userid':r.user.id, } - ) + ) + + if when: + url += '?when='+when return HttpResponseRedirect(url) @@ -14471,9 +14494,15 @@ def plannedsession_clone_view(request,id=0,rowerid=0,userid=0, # Edit an existing planned session @user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/", redirect_field_name=None) -def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0,userid=0): +def plannedsession_edit_view(request,id=0,userid=0): - r = getrequestrower(request,rowerid=rowerid) + r = getrequestrower(request,userid=userid) + + when = request.GET.get('when') + if when: + timeperiod = when + else: + timeperiod = 'thisweek' startdate,enddate = get_dates_timeperiod(timeperiod) @@ -14493,11 +14522,10 @@ def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0,userid if ps.manager != request.user: raise PermissionDenied("You are not allowed to edit this planned session") - + if ps.team.all() or len(ps.rower.all())>1: url = reverse(plannedsession_teamedit_view, kwargs={ - 'timeperiod':timeperiod, 'sessionid':id, }) return HttpResponseRedirect(url) @@ -14523,20 +14551,57 @@ def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0,userid url = reverse(plannedsession_edit_view, kwargs={ 'id':int(ps.id), - 'timeperiod':timeperiod, - 'rowerid':r.id, + 'userid':r.user.id, }) + + if when: + url += '?when='+when + return HttpResponseRedirect(url) else: sessioncreateform = PlannedSessionForm(instance=ps) sps = get_sessions(r,startdate=startdate,enddate=enddate) - + + breadcrumbs = [ + { + 'url':reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Plan' + }, + { + 'url': reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Sessions' + }, + { + 'url':reverse(plannedsession_view, + kwargs={ + 'userid':userid, + 'id':id, + } + ), + 'name': ps.id + }, + { + 'url':reverse(plannedsession_edit_view, + kwargs={ + 'userid':userid, + 'id':id, + } + ), + 'name': 'Edit' + } + ] + + return render(request,'plannedsessionedit.html', { 'teams':get_my_teams(request.user), 'plan':trainingplan, + 'breadcrumbs':breadcrumbs, 'form':sessioncreateform, + 'active':'nav-plan', 'plannedsessions':sps, 'thesession':ps, 'rower':r, @@ -14546,16 +14611,16 @@ def plannedsession_edit_view(request,id=0,timeperiod='thisweek',rowerid=0,userid @login_required() -def plannedsession_view(request,id=0,rowerid=0,userid=0, - timeperiod='thisweek'): +def plannedsession_view(request,id=0,userid=0): - m = getrower(request.user) + r = getrequestrower(request,userid=userid) - - if not rowerid: - r = m + when = request.GET.get('when') + if when: + timeperiod = when else: - r = Rower.objects.get(id=rowerid) + timeperiod = 'thisweek' + try: ps = PlannedSession.objects.get(id=id) @@ -14569,6 +14634,8 @@ def plannedsession_view(request,id=0,rowerid=0,userid=0, coursescript = '' coursediv = '' + m = ps.manager + if ps.manager != request.user: if r.rowerplan == 'coach': teams = Team.objects.filter(manager=request.user) @@ -14668,6 +14735,30 @@ def plannedsession_view(request,id=0,rowerid=0,userid=0, enddate__gte = enddate)[0] except IndexError: trainingplan = None + + + breadcrumbs = [ + { + 'url':reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Plan' + }, + { + 'url': reverse(plannedsessions_view, + kwargs={'userid':userid}), + 'name': 'Sessions' + }, + { + 'url':reverse(plannedsession_view, + kwargs={ + 'userid':userid, + 'id':id, + } + ), + 'name': ps.id + } + ] + return render(request,'plannedsessionview.html', { @@ -14679,6 +14770,8 @@ def plannedsession_view(request,id=0,rowerid=0,userid=0, 'sessionvalue','sessionunit','comment', ], 'workouts': ws, + 'active':'nav-plan', + 'breadcrumbs':breadcrumbs, 'manager':m, 'rower':r, 'ratio':ratio, @@ -15106,7 +15199,7 @@ def virtualevent_addboat_view(request,id=0): { 'form':form, 'race':race, - 'rowerid':r.id, + 'userid':r.user.id, 'active': 'nav-racing', }) @@ -15199,7 +15292,7 @@ def virtualevent_register_view(request,id=0): { 'form':form, 'race':race, - 'rowerid':r.id, + 'userid':r.user.id, })