Five views, one data set
Day, week and month answer "when", while lanes of teachers and rooms answer "with whom and where". The view and the day live in the URL, so a link returns to the same place.
The front desk sees a whole week at once instead of opening twenty groups one by one. Lessons move with the mouse, and what happened during them goes to the group journal.
Day, week and month answer "when", while lanes of teachers and rooms answer "with whom and where". The view and the day live in the URL, so a link returns to the same place.
In the teacher view, dragging a block onto the neighboring lane changes who runs the lesson, key included - so the substitution later counts toward the settlement.
Grabbing the block changes day and time, grabbing the bottom edge changes duration. Saving is optimistic: a refusal rolls the change back and says what blocked it.
An entry such as "Winter break" cancels lessons across the whole range, and the series generator skips those days. Removing it restores only what it canceled itself.
The dashboard tile runs the same machinery as the full screen: same views, same gesture, same lesson dialog, so a time gets fixed without switching screens.
A module is a permission, and which records may be touched is settled on write, not in the menu.
| Role | Sees | Changes |
|---|---|---|
| Owner | The whole school's classes in all five views, days off included. | Any class: time, length, teacher, room, mode and cancellation. Days off as well. |
| Methodologist | The same as the owner: the whole school. | The same as the owner, the calendar of days off included. |
| Teacher | The whole school, unfiltered - who teaches next door is visible. Days off read only. | Their own classes and unstaffed ones in their group. Other blocks are locked. |
| Student | Nothing. No access to this screen. | Nothing. Their own lessons show in their own journal. |
The things that only surface in the third week of working with the module.
Grabbing the block changes the day and the time, grabbing its bottom edge changes the length, and a selection on empty space creates a new class. Arrow keys do the same, and Shift with an arrow changes the length. The save is optimistic: the block sits in its new place from the moment of the gesture, and a refusal visibly puts it back and says what got in the way.
From Groups. The Schedule has no field of its own beyond days off: it reads them in one request by date range and writes them back through the Groups routes. The name and the colour of a block belong to the group, the time and the staffing to the group's lesson. One request covers at most ninety-two days, because a month padded to whole weeks is forty-two.
In the Teachers view the lanes are people, so dragging a block one row over changes who runs the class. The lanes come from Team by membership KEY, not by name, so the substitution will later count towards pay. A name typed by hand, with no key, gets a lane of its own, marked out - that is a sign something needs fixing, not data.
It cancels every class in its range that is not cancelled yet, of any kind, in one transaction with the entry - and a new series or a published plan skips that day. A manual cancellation is a SEPARATE state, so removing the entry restores only what the entry itself cancelled. One entry spans at most 366 days, and a school keeps up to 366 of them.
They see the whole school, and that is deliberate: a staff room knows who teaches next door. They can move their own, meaning those carrying their key or unstaffed ones in a group they teach; the same query works that out row by row. Other blocks are drawn locked and the window opens them read only - a gesture the API would refuse must not even start.
The lane splits into bands, and a band has a floor, because a six-pixel block can be neither read nor grabbed. In horizontal lanes the row grows by another band; in day and week the column holds as many as fit and folds the rest into a “+N” link with a list to open. The view draws five hundred blocks and says how many stayed off screen.
The Schedule will not notice, and that is a recorded debt rather than an oversight. A room is plain text on the lesson, and the lanes of the Rooms view are built straight from that text, so a typo creates a new room. The room catalogue in Settings feeds the dropdown but does not bind a lesson to a place - to catch a clash, the room would have to be a key.
No. The calendar shows what already stands and lets it be moved one class at a time; the weekly series is created by the generator in Groups. The Schedule does create and delete single classes: a make-up, a mistake, an extra lesson.
14 days on your groups and instalments. No card, no strings.