Expand description
Moving one row’s enrolment check schedule: starting it, restarting it for a visit or a check
request, scheduling the next check once one answers, batching slow checks, waking rows off a
roster and shifting them past a module pause. The ladders are
super::enrolment_check_schedule.
Structs§
- Enrolment
Check Answer - An answered check of a row waiting for an enrolment, logged with the write its answer makes.
- Enrolment
Check Start - The schedule a row starts when it first waits for an enrolment, decided by the preconditions recompute.
- Roster
Enrolee - One student the roster lists on a module, with every enrolment id it lists them under.
- Schedule
Facts 🔒
Enums§
- Check
Request Outcome - What a check request did to the row.
Functions§
- add_
seen_ 🔒enrolment_ ids - Adds the enrolment ids a check saw to the row’s seen set, which also marks it checked for
wake_for_roster_listing. - is_
check_ request_ limited - Whether a check request would be refused as too soon right now, which is when the buttons that make one are hidden.
- is_
too_ new_ for_ student_ check_ request - Whether a row is too new for its student to ask for a check, which hides their buttons and turns a request away as too soon. A teacher’s request has no such wait.
- is_
within 🔒 - lock_
schedule 🔒 - pull_
forward_ batched_ checks - Brings the slow checks due within
BATCH_PULL_FORWARDforward to now when another slow check inscopeis released and not yet claimed: they cost nothing extra in the request that goes out for it. A row tried withinTRANSIENT_FAILURE_RETRYkeeps waiting out its failed lookup. - record_
enrolment_ check - Logs what a check found and remembers the enrolments it saw for the roster wake-ups, given the row as the answer’s write left it. A lookup that failed in transit was no check and leaves no trace.
- record_
starts - Writes the schedules rows start with, and ends the checks of the earlier attempts each new row replaces for its student and module.
- record_
visit - A visit to the registration page while it showed the enrolment instructions. Moves a
completedrow onto the visited ladder; restarts avisitedrow at most once a day, and a stopped row of any group. Returns whether the schedule restarted. - request_
check - A student or teacher asking for a check, or Done being pressed: restarts the row on the check-requested ladder with its immediate check.
- schedule_
next_ check - Schedules the next check of a row an answer just parked in
no_usable_enrolment: the first rung after now, or stopped once the ladder has run out. A row with no schedule yet, such as one import sent back, starts one now. - shift_
past_ pause - Moves the schedules of a module’s rows past a pause of
paused_for, so the pause spends none of their ladder. A batched row stays on a batch boundary. Stopped rows are left as they are. - wake_
for_ roster_ listing - Wakes this module’s rows waiting for an enrolment when the roster lists their student under an enrolment id the row has not seen, stopped rows included, and returns how many it touched.
- write_
schedule 🔒 - Writes a (re)started or advanced schedule.
next_attempt_atis only moved for a row parked inno_usable_enrolment, and only ever earlier unlessreplaces_next_attempt: a row in a resolve state has a check on its way already, and one a roster just woke must stay woken.