Private
Public Access
1
0

somehow working

This commit is contained in:
Sander Roosendaal
2018-02-13 20:13:18 +01:00
parent 7d4a2f2251
commit 0a47d0b840
4 changed files with 83 additions and 23 deletions

View File

@@ -936,6 +936,7 @@ class PlannedSessionFormSmall(ModelForm):
'criterium', 'criterium',
'sessionvalue', 'sessionvalue',
'sessionunit', 'sessionunit',
'manager',
'comment', 'comment',
] ]
@@ -951,6 +952,7 @@ class PlannedSessionFormSmall(ModelForm):
'comment': forms.TextInput(attrs={'size':10}), 'comment': forms.TextInput(attrs={'size':10}),
'sessionvalue': forms.TextInput(attrs={'style':'width:3em', 'sessionvalue': forms.TextInput(attrs={'style':'width:3em',
'type':'number'}), 'type':'number'}),
'manager': forms.HiddenInput(),
} }

View File

@@ -53,6 +53,10 @@
</div> </div>
<div class="grid_12 alpha"> <div class="grid_12 alpha">
<p>
On this page, you can create and edit sessions for an entire time
period.
</p>
<form id="ps-form-table" method="post"> <form id="ps-form-table" method="post">
{% csrf_token %} {% csrf_token %}
{{ ps_formset.management_form }} {{ ps_formset.management_form }}
@@ -68,9 +72,13 @@
</thead> </thead>
<tbody> <tbody>
{% for form in ps_formset %} {% for form in ps_formset %}
<tr> <tr id="id_form_row">
<td> {{ forloop.counter }} <td> {{ forloop.counter }}
{% if form.instance.pk %}{{ form.DELETE }}{% endif %} {% if form.instance.pk %}{{ form.DELETE }}{% endif %}
{{ form.id }}
{% for field in form.hidden_fields %}
{{ field }}
{% endfor %}
{% for field in form.visible_fields %} {% for field in form.visible_fields %}
<td> <td>
{{ field }} {{ field }}
@@ -80,7 +88,8 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
<button type="submit">Submit</button> <a class="button gray small grid_2" href="/rowers/sessions/multicreate/thisweek/rower/{{ rower.id }}/extra/{{ extrasessions }}">Add More</a>
<button class="button green small grid_2" type="submit">Submit</button>
</form> </form>
</div> </div>
@@ -94,10 +103,9 @@
$(document).ready(function(){ $(document).ready(function(){
$('#ps-form-table tbody tr').formset({ $('#ps-form-table tbody tr').formset({
prefix: '{{ formset.prefix }}' addText: ''
}); });
$("td #id_sessionmode").change(function() { $("td #id_sessionmode").change(function() {
if (this.value == 'TRIMP') { if (this.value == 'TRIMP') {

View File

@@ -420,6 +420,8 @@ urlpatterns = [
views.plannedsession_create_view), views.plannedsession_create_view),
url(r'^sessions/multicreate$',views.plannedsession_multicreate_view), url(r'^sessions/multicreate$',views.plannedsession_multicreate_view),
url(r'^sessions/multicreate/(?P<timeperiod>[\w\ ]+.*)/rower/(?P<rowerid>\d+)/extra/(?P<extrasessions>\d+)$',
views.plannedsession_multicreate_view),
url(r'^sessions/multicreate/rower/(?P<rowerid>\d+)$', url(r'^sessions/multicreate/rower/(?P<rowerid>\d+)$',
views.plannedsession_multicreate_view), views.plannedsession_multicreate_view),
url( url(

View File

@@ -8811,7 +8811,6 @@ def workout_uploadimage_view(request,id):
if f is not None: if f is not None:
filename,path_and_filename = handle_uploaded_image(f) filename,path_and_filename = handle_uploaded_image(f)
print path_and_filename,'aap'
try: try:
width,height = Image.open(path_and_filename).size width,height = Image.open(path_and_filename).size
except: except:
@@ -11647,8 +11646,6 @@ def plannedsession_create_view(request,timeperiod='thisweek',rowerid=0):
else: else:
forminitial = {} forminitial = {}
print forminitial
sessioncreateform = PlannedSessionForm(initial=forminitial) sessioncreateform = PlannedSessionForm(initial=forminitial)
startdate,enddate = get_dates_timeperiod(timeperiod) 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/", @user_passes_test(hasplannedsessions,login_url="/rowers/planmembership/",
redirect_field_name=None) redirect_field_name=None)
def plannedsession_multicreate_view(request,timeperiod='thisweek', def plannedsession_multicreate_view(request,timeperiod='thisweek',
teamid=0,rowerid=0): teamid=0,rowerid=0,extrasessions=0):
extrasessions=int(extrasessions)
if rowerid==0: if rowerid==0:
r = getrower(request.user) r = getrower(request.user)
@@ -11680,29 +11679,78 @@ def plannedsession_multicreate_view(request,timeperiod='thisweek',
startdate,enddate = get_dates_timeperiod(timeperiod) startdate,enddate = get_dates_timeperiod(timeperiod)
sps = get_sessions(r,startdate=startdate,enddate=enddate) sps = get_sessions(r,startdate=startdate,enddate=enddate)
qset = PlannedSession.objects.filter(
rower__in=[r], m = Rower.objects.get(user=request.user)
startdate__lte=enddate,
enddate__gte=startdate, if m.rowerplan == 'coach':
).order_by("startdate","enddate") 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 initial = {
'startdate':startdate,
PlannedSessionFormSet = modelformset_factory(PlannedSession, 'enddate':enddate,
form=PlannedSessionFormSmall, 'sessionvalue':60,
# formset=BasePlannedSessionFormSet, 'manager':request.user,
can_delete=True, 'name': 'NEW SESSION'
extra=extrasessions, }
)
ps_formset = PlannedSessionFormSet(queryset = qset)
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 = { context = {
'ps_formset':ps_formset, 'ps_formset':ps_formset,
'rower':r, 'rower':r,
'timeperiod':timeperiod, 'timeperiod':timeperiod,
'teams':get_my_teams(request.user) 'teams':get_my_teams(request.user),
'extrasessions': extrasessions+1
} }
return render(request,'plannedsession_multicreate.html',context) return render(request,'plannedsession_multicreate.html',context)