diff --git a/rowers/templates/team_compare_select.html b/rowers/templates/team_compare_select.html index 835e6488..3a7dd211 100644 --- a/rowers/templates/team_compare_select.html +++ b/rowers/templates/team_compare_select.html @@ -13,6 +13,55 @@ checkboxes[i].checked = source.checked; } } + + + @@ -23,21 +72,38 @@

{{ team.name }} Team Workouts

-
+
{% if team %}
{% else %} {% endif %} - +
{{ dateform.as_table }}
{% csrf_token %} +
+
+
-
- + + {% if team %} +
+ {% else %} + + {% endif %} +
+ + {{ modalityform.as_table }} +
+ {% csrf_token %} +
+
+ +
+
{% if team %} diff --git a/rowers/views.py b/rowers/views.py index 4b6651d7..be594c7c 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -3170,19 +3170,67 @@ def team_comparison_select(request, except Rower.DoesNotExist: raise Http404("Rower doesn't exist") + if 'startdate' in request.session: + startdate = iso8601.parse_date(request.session['startdate']) - - if request.method == 'POST': + + if 'enddate' in request.session: + enddate = iso8601.parse_date(request.session['enddate']) + + + if 'waterboattype' in request.session: + waterboattype = request.session['waterboattype'] + else: + waterboattype = ['1x','2x','2-','4x','4-','8+'] + + + if 'modalities' in request.session: + modalities = request.session['modalities'] + if len(modalities) > 1: + modality = 'all' + else: + modality = modalities[0] + else: + modalities = [m[0] for m in types.workouttypes] + + if request.method == 'POST' and 'daterange' in request.POST: dateform = DateRangeForm(request.POST) if dateform.is_valid(): startdate = dateform.cleaned_data['startdate'] enddate = dateform.cleaned_data['enddate'] + startdatestring = startdate.strftime('%Y-%m-%d') + enddatestring = enddate.strftime('%Y-%m-%d') + request.session['startdate'] = startdatestring + request.session['enddate'] = enddatestring else: dateform = DateRangeForm(initial={ 'startdate':startdate, 'enddate':enddate, }) + + if request.method == 'POST' and 'modality' in request.POST: + modalityform = TrendFlexModalForm(request.POST) + if modalityform.is_valid(): + modality = modalityform.cleaned_data['modality'] + waterboattype = modalityform.cleaned_data['waterboattype'] + if modality == 'all': + modalities = [m[0] for m in types.workouttypes] + else: + modalities = [modality] + + if modality != 'water': + waterboattype = [b[0] for b in types.boattypes] + + + request.session['modalities'] = modalities + request.session['waterboattype'] = waterboattype + + negtypes = [] + for b in types.boattypes: + if b[0] not in waterboattype: + negtypes.append(b[0]) + startdate = datetime.datetime.combine(startdate,datetime.time()) enddate = datetime.datetime.combine(enddate,datetime.time(23,59,59)) enddate = enddate+datetime.timedelta(days=1) @@ -3208,18 +3256,21 @@ def team_comparison_select(request, if theteam and (theteam.viewing == 'allmembers' or theteam.manager == request.user): workouts = Workout.objects.filter(team=theteam, startdatetime__gte=startdate, - startdatetime__lte=enddate).order_by("-date", "-starttime") + startdatetime__lte=enddate, + workouttype__in=modalities).order_by("-date", "-starttime").exclude(boattype__in=negtypes) elif theteam and theteam.viewing == 'coachonly': workouts = Workout.objects.filter(team=theteam,user=r, startdatetime__gte=startdate, - startdatetime__lte=enddate).order_by("-date","-starttime") + startdatetime__lte=enddate, + workouttype__in=modalities).order_by("-date","-starttime").exclude(boattype__in=negtypes) else: theteam = None workouts = Workout.objects.filter(user=r, startdatetime__gte=startdate, - startdatetime__lte=enddate).order_by("-date", "-starttime") + startdatetime__lte=enddate, + workouttype__in=modalities).order_by("-date", "-starttime").exclude(boattype__in=negtypes) query = request.GET.get('q') if query: @@ -3240,6 +3291,11 @@ def team_comparison_select(request, theid = 0 chartform = ChartParamChoiceForm(initial={'teamid':0}) + modalityform = TrendFlexModalForm(initial={ + 'modality':modality, + 'waterboattype':waterboattype + }) + messages.info(request,successmessage) messages.error(request,message) @@ -3252,6 +3308,7 @@ def team_comparison_select(request, 'team':theteam, 'form':form, 'chartform':chartform, + 'modalityform':modalityform, 'teams':get_my_teams(request.user), })