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. Turning a
module on reaches none made before it: register_credits_via_suotar is set at creation or by hand.
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.