Expand description
Creating ledger rows for completions that are allowed to be registered. It catches up as well as
keeps up: any completion carrying the push-path flag and still missing a row gets one, stopping
at pending, because historical completions belong to students nobody ever asked. Completions
from before the push path never carry the flag, so they are never caught up.
Structs§
- Unmaterialised
Completion - A completion that should have a ledger row and has none.
Constants§
- GRADE_
IMPROVEMENT_ LIMIT - How many re-attempts one iteration may start. Bounded apart from
MATERIALIZE_LIMITbecause each of these costs a round trip to the study registry for a credit the student already has. - MATERIALIZE_
LIMIT - How many rows one iteration may create, and so the rate at which a catch-up drains.
Functions§
- ensure_
registration_ rows_ for_ eligible_ completions - Creates a
pendingrow and itscreatedevent for every registrable completion that has none; returns the count. - get_
unmaterialised_ eligible_ completions - Completions
ensure_registration_rows_for_eligible_completionsshould have picked up at leastmin_age_secsago and did not. - start_
re_ attempts_ for_ improved_ grades - Starts a new attempt at
ready_to_submitfor every accepted attempt whose completion has since been graded higher; returns how many were started.