diff --git a/rowers/forms.py b/rowers/forms.py index d470ab2a..53139c5a 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -650,9 +650,15 @@ class CourseSelectForm(forms.Form): course = forms.ModelChoiceField(queryset=GeoCourse.objects.all()) class WorkoutMultipleCompareForm(forms.Form): - workouts = forms.ModelMultipleChoiceField(queryset=Workout.objects.all(), - widget=forms.CheckboxSelectMultiple()) + workouts = forms.ModelMultipleChoiceField( + queryset=Workout.objects.filter(), + widget=forms.CheckboxSelectMultiple()) + def __init__(self, *args, **kwargs): + super(WorkoutMultipleCompareForm,self).__init__(*args,**kwargs) + self.fields['workouts'].queryset = Workout.objects.filter() + + class PlannedSessionMultipleCloneForm(forms.Form): plannedsessions = forms.ModelMultipleChoiceField( queryset=PlannedSession.objects.all(), diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 2da87b2d..f50d61c5 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -2408,8 +2408,8 @@ def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='', for nr, gvalue, color in colorlegend: - box = BoxAnnotation(bottom=400+20*nr,left=550,top=420+20*nr, - right=570, + box = BoxAnnotation(bottom=125+20*nr,left=100,top=145+20*nr, + right=120, bottom_units='screen', top_units='screen', left_units='screen', @@ -2417,7 +2417,7 @@ def interactive_multiflex(datadf,xparam,yparam,groupby,extratitle='', fill_color=color, fill_alpha=1.0, line_color=color) - legendlabel = Label(x=571,y=403+20*nr,x_units='screen', + legendlabel = Label(x=121,y=128+20*nr,x_units='screen', y_units='screen', text = "{gvalue:3.0f}".format(gvalue=gvalue), background_fill_alpha=1.0, diff --git a/rowers/templates/user_multiflex_select.html b/rowers/templates/user_multiflex_select.html index 2e0ede5c..9d553b5d 100644 --- a/rowers/templates/user_multiflex_select.html +++ b/rowers/templates/user_multiflex_select.html @@ -78,6 +78,32 @@

TIP: Agree with your team members to put tags (e.g. '8x500m') in the notes section of your workouts. That makes it easy to search.

+
  • + {% if theuser %} +
    + {% else %} + + {% endif %} + + + {{ dateform.as_table }} +
    + + {{ modalityform.as_table }} +
    + {% csrf_token %} + +
    +
  • +
  • +
    + + +
    +
  • {% if workouts %} @@ -96,36 +122,10 @@ {{ chartform.as_table }}

    - +

  • -
  • - {% if theuser %} -
    - {% else %} - - {% endif %} - - - {{ dateform.as_table }} -
    - - {{ modalityform.as_table }} -
    - {% csrf_token %} - -
    -
  • -
  • -
    - - -
    -
  • diff --git a/rowers/urls.py b/rowers/urls.py index b17568ad..2f84b1bb 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -506,7 +506,7 @@ urlpatterns = [ url(r'^sessions/coach/$',views.plannedsessions_coach_view), url(r'^sessions/coach/user/\d+/$',views.plannedsessions_coach_view), url(r'^sessions/print/?$',views.plannedsessions_print_view), - url(r'^sessions/print/user/(?P\d+)$',views.plannedsessions_print_view), + url(r'^sessions/print/user/(?P\d+)/$',views.plannedsessions_print_view), url(r'^sessions/$',views.plannedsessions_view), url(r'^sessions/user/(?P\d+)$',views.plannedsessions_view), url(r'^sessions/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$', diff --git a/rowers/views.py b/rowers/views.py index 3b560217..75754ac2 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5405,7 +5405,7 @@ def team_comparison_select(request, workouttype__in=modalities).order_by("-date", "-starttime").exclude(boattype__in=negtypes) if rankingonly: - workouts = [w for w in workouts if w.rankingpiece] + workouts = workouts.exclude(rankingpiece=False) query = request.GET.get('q') if query: @@ -5655,8 +5655,10 @@ def user_multiflex_select(request, if 'enddate' in request.session: enddate = iso8601.parse_date(request.session['enddate']) - - waterboattype = request.session['waterboattype'] + try: + waterboattype = request.session['waterboattype'] + except KeyError: + waterboattype = mytypes.waterboattype else: waterboattype = mytypes.waterboattype @@ -6361,7 +6363,7 @@ def user_boxplot_select(request, # workouttypes = [w for w in workouttypes if w not in mytypes.otwtypes] if rankingonly: - workouts = [w for w in workouts if w.rankingpiece] + workouts = workouts.exclude(rankingpiece=False) query = request.GET.get('q') if query: @@ -6775,7 +6777,8 @@ def workouts_view(request,message='',successmessage='', startdatetime__lte=activity_enddate).order_by("-startdatetime") if rankingonly: - workouts = [w for w in workouts if w.rankingpiece] + workouts = workouts.exclude(rankingpiece=False) + query = request.GET.get('q') if query: