School timetables (Advanced): first day must have first period, otherwise timetable schema is generated wrong

Bug #80109 reported by Philipp Schroeder
8
Affects Status Importance Assigned to Milestone
SchoolTool
Confirmed
Low
Unassigned

Bug Description

Alternative bug title: timetable schema model doesn't match what is displayed to
the user (for assigning schedules to course sections).

Create a School Timetable like this:

          Day 1 Day 2
Period 1 08:00-08:45
Period 2 09:00-09:45 09:00-09:45

Summary description (long description to follow): Period 1 for Day 1 should be
unavailable for booking. Unfortunately, when the 'manager' user assigns a
schedule to a course section, Period 1 still appears as an option for Day 1. You
can assign it, and you will see your course "nicely" scheduled in for the Period
1 on Day 1 (even though this was an invalid selection) in the response page. The
user has no warning that something has gone wrong up to this point! The falsely
selected period simply (i.e. quietly) doesn't show up in the calendar... :-(

Tags: timetables
Revision history for this message
Philipp Schroeder (philipp.schroeder) wrote :

Here is the XML of the Timetable Schema:

<timetable xmlns="http://schooltool.org/ns/timetable/0.1">
  <title>testing_select_invalid_periods_3</title>
  <model factory="WeeklyTimetableModel">
    <daytemplate>
      <used when="Monday"/>
      <period duration="45" id="Period 2" tstart="09:00"/>
    </daytemplate>
    <daytemplate>
      <used when="Tuesday"/>
      <period duration="45" id="Period 1" tstart="08:00"/>
      <period duration="45" id="Period 2" tstart="09:00"/>
    </daytemplate>
    <daytemplate>
      <used when="default"/>
    </daytemplate>
  </model>
  <day id="Day 1">
    <period id="Period 1"/>
    <period id="Period 2"/>
  </day>
  <day id="Day 2">
    <period id="Period 1"/>
  </day>
</timetable>

You should be able to clearly see that there is something amiss here.

Revision history for this message
Philipp Schroeder (philipp.schroeder) wrote :

Steps to reproduce

Verbose explanation of how I set up the School Timetable in the example:

1. Login as manager, go to 'SchoolTool Manager' (top right)
2. 'School Timetables' -> Action 'New timetable'
3. Advanced adding form
4. Enter a Title -> click 'Update'
5. Add a period, Add a day -> click 'Update'

Your Timetable Schema now looks like this:

          Day 1 Day 2
Period 1 Period 1
Period 2

6. Tick 'Timetable day always coincides ...'
7. Enter a starting time for Period 1 for 'Day 2' *only* (i.e. don't enter a
starting time for 'Day 1') !
8. Enter a starting time for 'Period 2' for both 'Day 1' and 'Day 2'

Your form should resemble this:
          Day 1 Day 2
Period 1 08:00
Period 2 09:00 09:00

9. Enter a Duration of '45' (Minutes) -> Click 'update'

Your form should resemble this now:

          Day 1 Day 2
Period 1 08:00-08:45
Period 2 09:00-09:45 09:00-09:45

10. Click 'Create timetable schema'
11. Select the new timetable schema as default -> click 'Cange'

Now, go to Courses, create a course section, add a schedule (action 'schedule').
Now I am presented with these options:

Day 1 Day 2
[] Period 1 [] Period 1
[] Period 2

... which is clearly not what I set up.

If I *do* select the "invalid" Period 1 for Day 1, the response page looks like
this:

          Day 1 Day 2
Period 1 My section title
Period 2

... But this Course won't show up in the Calendar, because it's actually an
invalid option in the firt place!

Revision history for this message
Tom Hoffman (tom-hoffman) wrote :

This bug appears to be specific to the "Advanced" timetable form, which is deprecated. The timetable
looks right when created using the standard wizard. The proper fix is adding support for weekend classes
to the standard wizard.

Changed in schooltool:
assignee: nobody → tom-hoffman
Changed in schooltool:
assignee: tom-hoffman → nobody
importance: Medium → Low
status: In Progress → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.