From 9f6c7357e092095624d02a84b866893f4f54d6d8 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 5 Nov 2018 07:34:12 +0100 Subject: [PATCH] some improvements in team sessions --- rowers/forms.py | 13 ++++ rowers/templates/menu_plan.html | 5 ++ rowers/templates/plannedsessionedit.html | 62 +++++++++---------- .../templates/plannedsessionteamcreate.html | 28 ++++----- rowers/templates/plannedsessionteamedit.html | 36 +++++------ rowers/views.py | 58 ++++++++++++----- 6 files changed, 122 insertions(+), 80 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index d9d6e39b..8a07fa23 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -948,6 +948,19 @@ class PlannedSessionTeamForm(forms.Form): self.fields['team'].queryset = Team.objects.filter(manager=user) + def clean(self): + if any(self.errors): + return + + cd = self.cleaned_data + print cd['team'],'aap' + if not cd['team']: + raise forms.ValidationError( + 'You must select at least one team' + ) + + return cd + class PlannedSessionTeamMemberForm(forms.Form): members = forms.ModelMultipleChoiceField( diff --git a/rowers/templates/menu_plan.html b/rowers/templates/menu_plan.html index e0451c41..8e8fbd43 100644 --- a/rowers/templates/menu_plan.html +++ b/rowers/templates/menu_plan.html @@ -71,6 +71,11 @@ Plan Microcycle +
  • + + Clone Multiple Sessions + +
  • diff --git a/rowers/templates/plannedsessionedit.html b/rowers/templates/plannedsessionedit.html index a3adbdfe..af68b856 100644 --- a/rowers/templates/plannedsessionedit.html +++ b/rowers/templates/plannedsessionedit.html @@ -7,13 +7,39 @@ {% block main %}

    Edit Session

    {% if user.is_authenticated and user|is_manager %} -

    - - Assign to my Teams - -

    {% endif %}
      +
    • +

      {{ thesession.name }}

      +

      + + Assign to my Teams + +

      +
      + {% if form.errors %} +

      + Please correct the error{{ form.errors|pluralize }} below. +

      + {% endif %} +

      + + {{ form.as_table }} +
      +

      + {% csrf_token %} +
      + +
      +

      + Delete + Clone +

      + +
      + +
    • Plan

      @@ -63,32 +89,6 @@

    • -
    • -

      {{ thesession.name }}

      -
      - {% if form.errors %} -

      - Please correct the error{{ form.errors|pluralize }} below. -

      - {% endif %} -

      - - {{ form.as_table }} -
      -

      - {% csrf_token %} -
      - -
      -

      - Delete - Clone -

      - -
      - -
    {% endblock %} diff --git a/rowers/templates/plannedsessionteamcreate.html b/rowers/templates/plannedsessionteamcreate.html index b35ee0ac..69f0f2fe 100644 --- a/rowers/templates/plannedsessionteamcreate.html +++ b/rowers/templates/plannedsessionteamcreate.html @@ -18,12 +18,20 @@
  • {% csrf_token %} -

    Select Team

    -

    +

    New Team Session

    {{ teamform.as_table }} -

    - {% if plannedsessions %} + + + {{ form.as_table }} +
    + +
    + +
    +
  • + {% if plannedsessions %} +
  • Team Plan Sessions

    @@ -70,18 +78,8 @@

    - {% endif %} -
  • -
  • -

    New Session

    - - {{ form.as_table }} -
    - -
    - -
  • + {% endif %} diff --git a/rowers/templates/plannedsessionteamedit.html b/rowers/templates/plannedsessionteamedit.html index 3e36dfe5..a01f5c74 100644 --- a/rowers/templates/plannedsessionteamedit.html +++ b/rowers/templates/plannedsessionteamedit.html @@ -31,6 +31,24 @@ {{ rowersform.as_table }}

    +

    Session {{ plannedsession.name }}

    + + {{ form.as_table }} +
    +

    + Delete +

    +

    + Clone +

    +

    + +

    +
    + +
    + +
  • {% if plannedsessions %}

    Team Plan Sessions

    @@ -79,25 +97,7 @@

    {% endif %} -
  • -
  • -

    Session {{ plannedsession.name }}

    - - {{ form.as_table }} -
    -

    - Delete -

    -

    - Clone -

    -

    - -

    -
    - -
  • diff --git a/rowers/views.py b/rowers/views.py index 7b4d1c2c..cb02ff32 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -14353,7 +14353,7 @@ def plannedsession_teamcreate_view(request, sessionteamselectform = PlannedSessionTeamForm( request.user,request.POST ) - if sessioncreateform.is_valid(): + if sessioncreateform.is_valid() and sessionteamselectform.is_valid(): cd = sessioncreateform.cleaned_data startdate = cd['startdate'] enddate = cd['enddate'] @@ -14388,22 +14388,46 @@ def plannedsession_teamcreate_view(request, ps.save() - # some logic when to add all selected rowers - if sessionteamselectform.is_valid(): - cd = sessionteamselectform.cleaned_data - teams = cd['team'] - for team in teams: - add_team_session(team,ps) - rs = Rower.objects.filter(team__in=[team]) - for r in rs: - add_rower_session(r,ps) - - - url = reverse(plannedsession_teamcreate_view) - if when: - url += '?when='+when + cd = sessionteamselectform.cleaned_data + teams = cd['team'] + for team in teams: + add_team_session(team,ps) + rs = Rower.objects.filter(team__in=[team]) + for r in rs: + add_rower_session(r,ps) + + + url = reverse(plannedsession_teamcreate_view) + if when: + url += '?when='+when - return HttpResponseRedirect(url) + return HttpResponseRedirect(url) + else: + timeperiod = startdate.strftime('%Y-%m-%d')+'/'+enddate.strftime('%Y-%m-%d') + breadcrumbs = [ + { + 'url': reverse(plannedsessions_view), + 'name': 'Planned Sessions' + }, + { + 'url': reverse(plannedsession_teamcreate_view), + 'name': 'Add Team Session' + } + ] + + return render(request,'plannedsessionteamcreate.html', + { + 'teams':get_my_teams(request.user), + 'plan':trainingplan, + 'breadcrumbs':breadcrumbs, + 'form':sessioncreateform, + 'teamform':sessionteamselectform, + 'timeperiod':timeperiod, + 'plannedsessions':sps, + 'rower':therower, + 'active':'nav-plan' + }) + else: initial = { 'startdate':startdate, @@ -14522,6 +14546,8 @@ def plannedsession_teamedit_view(request, remove_team_session(team,ps) else: selectedteams = [] + for team in teams: + remove_team_session(team,ps) if sessionrowerform.is_valid():