pub async fn replace_for_course_module(
conn: &mut PgConnection,
course_module_id: Uuid,
wanted: &[CourseModuleSuotarRealisationEdit],
) -> ModelResult<()>Expand description
Makes the module’s live realisations exactly wanted, soft-deleting the rest rather than setting
active = false, which means “configured but not polled now”.