adding templates to team create session
This commit is contained in:
@@ -101,6 +101,42 @@
|
|||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% 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> </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>
|
</ul>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -658,6 +658,7 @@ urlpatterns = [
|
|||||||
name='plannedsession_compare_view'),
|
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+)/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/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<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)/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),
|
re_path(r'^sessions/(?P<psid>\d+)/detach/(?P<id>\b[0-9A-Fa-f]+\b)/$',views.plannedsession_detach_view),
|
||||||
|
|||||||
@@ -637,6 +637,8 @@ def plannedsession_teamcreate_view(request,
|
|||||||
sps = PlannedSession.objects.filter(id__in=ids).order_by(
|
sps = PlannedSession.objects.filter(id__in=ids).order_by(
|
||||||
"preferreddate","startdate","enddate")
|
"preferreddate","startdate","enddate")
|
||||||
|
|
||||||
|
sessiontemplates = PlannedSession.objects.filter(manager=request.user,is_template=True)
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
sessioncreateform = PlannedSessionForm(request.POST)
|
sessioncreateform = PlannedSessionForm(request.POST)
|
||||||
sessionteamselectform = PlannedSessionTeamForm(
|
sessionteamselectform = PlannedSessionTeamForm(
|
||||||
@@ -713,6 +715,7 @@ def plannedsession_teamcreate_view(request,
|
|||||||
'plan':trainingplan,
|
'plan':trainingplan,
|
||||||
'breadcrumbs':breadcrumbs,
|
'breadcrumbs':breadcrumbs,
|
||||||
'form':sessioncreateform,
|
'form':sessioncreateform,
|
||||||
|
'sessiontemplates':sessiontemplates,
|
||||||
'teamform':sessionteamselectform,
|
'teamform':sessionteamselectform,
|
||||||
'timeperiod':timeperiod,
|
'timeperiod':timeperiod,
|
||||||
'plannedsessions':sps,
|
'plannedsessions':sps,
|
||||||
@@ -765,6 +768,7 @@ def plannedsession_teamcreate_view(request,
|
|||||||
'dateform':dateform,
|
'dateform':dateform,
|
||||||
'breadcrumbs':breadcrumbs,
|
'breadcrumbs':breadcrumbs,
|
||||||
'form':sessioncreateform,
|
'form':sessioncreateform,
|
||||||
|
'sessiontemplates':sessiontemplates,
|
||||||
'teamform':sessionteamselectform,
|
'teamform':sessionteamselectform,
|
||||||
'timeperiod':timeperiod,
|
'timeperiod':timeperiod,
|
||||||
'plannedsessions':sps,
|
'plannedsessions':sps,
|
||||||
@@ -1448,6 +1452,72 @@ def plannedsession_clone_view(request,id=0,userid=0):
|
|||||||
url += '?when='+startdatestring+'/'+enddatestring
|
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)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
@user_passes_test(hasplannedsessions, login_url="/rowers/paidplans/",
|
@user_passes_test(hasplannedsessions, login_url="/rowers/paidplans/",
|
||||||
|
|||||||
Reference in New Issue
Block a user