The Subject Restrictions module lets the school set rules about how often and in what pattern a subject can appear in a class's weekly schedule — for example, "Math can appear at most twice a day" or "Physical Education's sessions must always be back-to-back." These rules are picked up automatically whenever a schedule is built, so the Timetable Generator honors them instead of scattering a subject's periods in ways that don't fit how the school actually wants to teach it.
Subject Restrictions
Overview
Business Use Case
Some subjects work better taught in a specific rhythm — a lab-based subject might need two consecutive periods to be useful, while a core subject might need to be spread out rather than clustered on one day. Without a way to express these preferences, an automated schedule might technically be conflict-free but still produce an impractical school day. This module lets administrators capture those real-world teaching preferences once per grade (or per class, if needed), and have every future generated schedule respect them automatically.
Who uses it?
System Administrators / Academic Coordinators
Define, review, and adjust subject scheduling rules for each grade.
Prerequisites
- Grades, Classes, and Subjects must already exist.
- Timetable Categories for the current school year must be set up, since restrictions are saved per category (useful for schools running more than one schedule track).
How Restrictions Work
Each restriction is attached to one subject and can include either or both of the following rules:
| Rule | What It Does |
|---|---|
| Max per Day | Limits how many periods that subject can be scheduled into on any single day. |
| Back to Back | When turned on, requires all of that subject's sessions on a day they appear together to be scheduled in consecutive periods, rather than spread out with gaps. |
A rule can be set for an entire grade (applying to every class in it) or narrowed down to specific classes within that grade, depending on what's selected when it's created.
Setting Up Restrictions
1. Choose a Grade, Classes, and Timetable Category
- Grade — required; loads that grade's subjects and classes.
- Classes — optional. Leave this empty to apply the rules to every class in the grade; select one or more specific classes to narrow the rules to just them.
- Timetable Category — required, defaulting to whichever category is currently active for the school year.
As soon as enough of these are chosen, the screen automatically checks whether rules already exist for that exact combination and loads them in for editing; if nothing exists yet, it starts you off with one blank row.
2. Add Subject Rules
Each row lets you configure one subject:
- Subject — pick which subject this rule applies to.
- Max per Day — a switch that reveals a number field once turned on, letting you cap how many times that subject can appear per day.
- Back to Back — a simple on/off switch requiring the subject's sessions to stay consecutive on days it's scheduled more than once.
Use the + button to add another subject row, or the × button to remove one. You can add as many subject rules as needed for the selected grade/classes/category combination.
[!IMPORTANT] No Duplicate Subjects The same subject can't be added twice within one restriction setup. If you try to, the screen highlights the duplicate and blocks saving until it's resolved — this check happens both as you type and again when you save, so it can't slip through.
3. Save
Saving replaces whatever restrictions currently exist for the exact grade, classes, and timetable category you selected with what's on screen — so if you remove a row before saving, that subject's rule is removed entirely; if you add one, it's newly created.
Editing a Single Restriction
From the list of saved restrictions, each entry can also be opened individually to adjust:
- Its Grade and Timetable Category.
- Its Subject.
- Its Back to Back setting and Max per Day value.
The Class this restriction applies to is shown for reference (either a specific class name or "All Classes in Grade") but isn't changeable from this screen — if you need to change which classes a rule covers, adjust it from the main setup screen instead.
Deleting a Restriction
A restriction can be removed individually from the list at any time, immediately lifting that rule from future schedule generations.
How This Connects to Timetable Generation
Every rule set up here is read directly by the Timetable Generator when it builds a schedule:
- Exceeding a subject's Max per Day limit counts as a scheduling problem the generator actively tries to avoid.
- Breaking a Back to Back requirement (leaving gaps between a subject's sessions on a day it appears more than once) is treated the same way.
Both are considered lower-priority than hard conflicts like a teacher or classroom being double-booked, so the generator will always resolve those first — but it still actively works to honor these rules whenever possible, and will flag it if a generated schedule couldn't fully satisfy one.
Permissions
The reviewed setup does not show a dedicated permission separate from general access to this section. Access is governed by whatever role or menu permission controls this area for your school — confirm with your system administrator if you need to restrict who can view or change subject restrictions.