Private
Public Access
1
0

adding templates to team create session

This commit is contained in:
Sander Roosendaal
2019-09-22 17:26:23 +02:00
parent d0b0c37674
commit d2d0e6c076
3 changed files with 107 additions and 0 deletions

View File

@@ -101,6 +101,42 @@
</p>
</li>
{% endif %}
<li class="grid_2">
<h1>Templates</h1>
<p>
Click on session name to clone to current period
</p>
<table class="listtable shortpadded" width="80%">
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>&nbsp;</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
{% for ps in sessiontemplates %}
<tr>
<td>
{% if ps.name != '' %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/clone/team/?when={{ timeperiod }}">{{ ps.name }}</a>
{% else %}
<a class="small"
href="/rowers/sessions/{{ ps.id }}/clone/team/?when={{ timeperiod }}">Unnamed Session</a>
{% endif %}
</td>
<td> {{ ps.sessionvalue }} </td>
<td> {{ ps.sessionunit }} </td>
<td>
<a class="small" href="/rowers/sessions/{{ ps.id }}/deleteconfirm/">Delete</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</li>
</ul>
</form>

View File

@@ -658,6 +658,7 @@ urlpatterns = [
name='plannedsession_compare_view'),
re_path(r'^sessions/(?P<id>\d+)/edit/user/(?P<userid>\d+)/$',views.plannedsession_edit_view),
re_path(r'^sessions/(?P<id>\d+)/clone/user/(?P<userid>\d+)/$',views.plannedsession_clone_view),
re_path(r'^sessions/(?P<id>\d+)/clone/team/$',views.plannedsession_teamclone_view),
re_path(r'^sessions/(?P<id>\d+)/clone/$',views.plannedsession_clone_view),
re_path(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\b[0-9A-Fa-f]+\b)/user/(?P<userid>\d+)/$',views.plannedsession_detach_view),
re_path(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\b[0-9A-Fa-f]+\b)/$',views.plannedsession_detach_view),

View File

@@ -637,6 +637,8 @@ def plannedsession_teamcreate_view(request,
sps = PlannedSession.objects.filter(id__in=ids).order_by(
"preferreddate","startdate","enddate")
sessiontemplates = PlannedSession.objects.filter(manager=request.user,is_template=True)
if request.method == 'POST':
sessioncreateform = PlannedSessionForm(request.POST)
sessionteamselectform = PlannedSessionTeamForm(
@@ -713,6 +715,7 @@ def plannedsession_teamcreate_view(request,
'plan':trainingplan,
'breadcrumbs':breadcrumbs,
'form':sessioncreateform,
'sessiontemplates':sessiontemplates,
'teamform':sessionteamselectform,
'timeperiod':timeperiod,
'plannedsessions':sps,
@@ -765,6 +768,7 @@ def plannedsession_teamcreate_view(request,
'dateform':dateform,
'breadcrumbs':breadcrumbs,
'form':sessioncreateform,
'sessiontemplates':sessiontemplates,
'teamform':sessionteamselectform,
'timeperiod':timeperiod,
'plannedsessions':sps,
@@ -1448,6 +1452,72 @@ def plannedsession_clone_view(request,id=0,userid=0):
url += '?when='+startdatestring+'/'+enddatestring
return HttpResponseRedirect(url)
# Clone an existing planned session
# need clarity on cloning behavior time shift
@user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
message="This functionality requires a Coach or Self-Coach plan",
redirect_field_name=None)
def plannedsession_teamclone_view(request,id=0):
r = getrequestplanrower(request)
teams = Team.objects.filter(manager=request.user)
if len(teams)>0:
teamchoices = [(team.id, team.name) for team in teams]
teaminitial = [str(teams[0].id)]
else:
messages.info(request,"You have no teams established yet. We are redirecting you to the Team Management page.")
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)
startdate,enddate = get_dates_timeperiod(request)
try:
trainingplan = TrainingPlan.objects.filter(
startdate__lte = startdate,
rowers = r,
enddate__gte = enddate)[0]
except IndexError:
trainingplan = None
try:
ps = PlannedSession.objects.get(id=id)
except PlannedSession.DoesNotExist:
raise Http404("Planned Session does not exist")
if ps.manager != request.user:
raise PermissionDenied("You are not allowed to clone this planned session")
ps.pk = None
ps.id = None
if not ps.is_template:
ps.name += ' (copy)'
ps.is_template = False
deltadays = ps.enddate-ps.startdate
ps.startdate = timezone.now().date()
ps.enddate = (timezone.now()+deltadays).date()
ps.preferreddate = ps.preferreddate+deltadays
ps.save()
url = reverse(plannedsession_teamedit_view,
kwargs = {
'sessionid':ps.id,
'userid':r.user.id,
}
)
startdatestring = startdate.strftime('%Y-%m-%d')
enddatestring = enddate.strftime('%Y-%m-%d')
url += '?when='+startdatestring+'/'+enddatestring
return HttpResponseRedirect(url)
@user_passes_test(hasplannedsessions, login_url="/rowers/paidplans/",