diff --git a/rowers/models.py b/rowers/models.py
index 5513d86b..f9632550 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -936,6 +936,7 @@ class PlannedSessionFormSmall(ModelForm):
'criterium',
'sessionvalue',
'sessionunit',
+ 'manager',
'comment',
]
@@ -951,6 +952,7 @@ class PlannedSessionFormSmall(ModelForm):
'comment': forms.TextInput(attrs={'size':10}),
'sessionvalue': forms.TextInput(attrs={'style':'width:3em',
'type':'number'}),
+ 'manager': forms.HiddenInput(),
}
diff --git a/rowers/templates/plannedsession_multicreate.html b/rowers/templates/plannedsession_multicreate.html
index 44aba51e..b1f3ab62 100644
--- a/rowers/templates/plannedsession_multicreate.html
+++ b/rowers/templates/plannedsession_multicreate.html
@@ -53,6 +53,10 @@
+
+ On this page, you can create and edit sessions for an entire time
+ period.
+
@@ -94,10 +103,9 @@
$(document).ready(function(){
$('#ps-form-table tbody tr').formset({
- prefix: '{{ formset.prefix }}'
+ addText: ''
});
-
$("td #id_sessionmode").change(function() {
if (this.value == 'TRIMP') {
diff --git a/rowers/urls.py b/rowers/urls.py
index 509efae6..6e093cfa 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -420,6 +420,8 @@ urlpatterns = [
views.plannedsession_create_view),
url(r'^sessions/multicreate$',views.plannedsession_multicreate_view),
+ url(r'^sessions/multicreate/(?P[\w\ ]+.*)/rower/(?P\d+)/extra/(?P\d+)$',
+ views.plannedsession_multicreate_view),
url(r'^sessions/multicreate/rower/(?P\d+)$',
views.plannedsession_multicreate_view),
url(
diff --git a/rowers/views.py b/rowers/views.py
index f10ff612..4d5453a2 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -8811,7 +8811,6 @@ def workout_uploadimage_view(request,id):
if f is not None:
filename,path_and_filename = handle_uploaded_image(f)
- print path_and_filename,'aap'
try:
width,height = Image.open(path_and_filename).size
except:
@@ -11647,8 +11646,6 @@ def plannedsession_create_view(request,timeperiod='thisweek',rowerid=0):
else:
forminitial = {}
- print forminitial
-
sessioncreateform = PlannedSessionForm(initial=forminitial)
startdate,enddate = get_dates_timeperiod(timeperiod)
@@ -11666,7 +11663,9 @@ def plannedsession_create_view(request,timeperiod='thisweek',rowerid=0):
@user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/",
redirect_field_name=None)
def plannedsession_multicreate_view(request,timeperiod='thisweek',
- teamid=0,rowerid=0):
+ teamid=0,rowerid=0,extrasessions=0):
+
+ extrasessions=int(extrasessions)
if rowerid==0:
r = getrower(request.user)
@@ -11680,29 +11679,78 @@ def plannedsession_multicreate_view(request,timeperiod='thisweek',
startdate,enddate = get_dates_timeperiod(timeperiod)
sps = get_sessions(r,startdate=startdate,enddate=enddate)
- qset = PlannedSession.objects.filter(
- rower__in=[r],
- startdate__lte=enddate,
- enddate__gte=startdate,
- ).order_by("startdate","enddate")
+
+ m = Rower.objects.get(user=request.user)
+
+ if m.rowerplan == 'coach':
+ teams = Team.objects.filter(manager=request.user)
+ members = Rower.objects.filter(team__in=teams).distinct()
+ if r in members:
+ qset = PlannedSession.objects.filter(
+ rower__in=[r],
+ startdate__lte=enddate,
+ enddate__gte=startdate,
+ ).order_by("startdate","enddate")
+ else:
+ qset = []
+
+ if not qset:
+ qset = PlannedSession.objects.filter(
+ rower__in=[r],
+ manager = request.user,
+ startdate__lte=enddate,
+ enddate__gte=startdate,
+ ).order_by("startdate","enddate")
+
- extrasessions = (enddate-startdate).days+1
-
- PlannedSessionFormSet = modelformset_factory(PlannedSession,
- form=PlannedSessionFormSmall,
-# formset=BasePlannedSessionFormSet,
- can_delete=True,
- extra=extrasessions,
-)
- ps_formset = PlannedSessionFormSet(queryset = qset)
+ initial = {
+ 'startdate':startdate,
+ 'enddate':enddate,
+ 'sessionvalue':60,
+ 'manager':request.user,
+ 'name': 'NEW SESSION'
+ }
+
+ initials = [initial for i in range(extrasessions)]
+ PlannedSessionFormSet = modelformset_factory(
+ PlannedSession,
+ form=PlannedSessionFormSmall,
+ can_delete=True,
+ extra=extrasessions,
+ )
+ if request.method == "POST":
+ ps_formset = PlannedSessionFormSet(queryset = qset,
+ data = request.POST)
+ if ps_formset.is_valid():
+ instances = ps_formset.save(commit=False)
+ for ps in instances:
+ ps.save()
+ add_rower_session(r,ps)
+ for obj in ps_formset.deleted_objects:
+ obj.delete()
+ else:
+ print ps_formset.errors
+
+ url = reverse(plannedsession_multicreate_view,
+ kwargs = {
+ 'rowerid':r.id,
+ 'timeperiod':timeperiod
+ }
+ )
+ return HttpResponseRedirect(url)
+
+ ps_formset = PlannedSessionFormSet(queryset = qset,
+ initial=initials)
+
context = {
'ps_formset':ps_formset,
'rower':r,
'timeperiod':timeperiod,
- 'teams':get_my_teams(request.user)
+ 'teams':get_my_teams(request.user),
+ 'extrasessions': extrasessions+1
}
return render(request,'plannedsession_multicreate.html',context)