Active flag for student years/groups/subgroups

Started by math, November 14, 2019, 11:21:02 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

math

Here's another suggestion which comes from my brother in law. He's responsibe for generating timetables at his vocational school. At this school tuition is organized in blocks. Students attend their lessons for 6 weeks, then returning to their apprentice companies for 6 weeks, then returning to school again, etc. Since availabilities of teachers is changing over time and the building is shared, a new timetable is required every 6 weeks.

He's doing this by activating all activities of arriving students resp. deactivating all activities of leaving students. This way he just has to adjust some constraints (e.g. availability times of teachers or rooms) and generate a new schedule.

FET is working perfectly fine in that environment, however it's quite some effort to toggle the active flag of all activities every six weeks. That's why he suggests to add an active flag to "Data -> Students -> Years", "Data -> Students -> Groups" and "Data -> Students -> Subgroups". This would allow him to switch specific student groups as active or inactive instead of touching the activities itself.

The semantic could be the following:

  • If a year is inactive, all containing groups are marked as "inactive (by inheritance)"
  • If a subgroup is included in inactive groups only (no matter if these groups have been toggled inactive or if they are inactive by inheritance), it also gets marked as "inactive (by inheritance)"
  • An activitiy can be assigned to some student set (e.g. a year, some groups or subgroups). If all assigned entries are inactive (no matter if these groups have been toggled inactive or if they are inactive by inheritance), it also gets marked as "inactive (by inheritance)"

Displaying entries as inactive could work the following way:

  • If I toggle an activiy as inactive, it already gets displayed with an "X" in the activity dialog. If it gets marked as "inactive (by inheritance)" it could get marked as "#".
  • If a year/group/subgroup is set as inactive, it gets displayed in round brackets like "(STUD-2019-A)"
  • If a year/group/subgroup is set as inactive (by inheritance), it gets displayed in square brackets like "[STUD-2019-A]"

This way it would be sufficient to toggle student groups as active/inactive instead of modifying all activities. However, it would leave a problem with activities without student sets which are scheduled in parallel to other activities (e.g. for allocating a second room etc.). If the main activity gets inactive by inheritance, this activity would still remain active. This could be solved by a new constraint "Inherit active state from".

Liviu Lalescu

Thank you for the suggestion!

However, I hope it won't be needed to implement it, since it would require a large effort and I do not quite like the possible outcome, it is complicating things.

So, please let me know why not simply deactivate/activate all the activities of the year/group/subgroup from that dialog? It works recursively for years and groups, propagating to groups+subgroups, respectively to subgroups.

About the activities without students and constrained simultaneously to allocate a second room: I thought multiple rooms per activity was solved by virtual rooms?

math