diff --git a/mod/workshop/form/accumulative/db/upgradelib.php b/mod/workshop/form/accumulative/db/upgradelib.php index 634811f0965..3376c864067 100644 --- a/mod/workshop/form/accumulative/db/upgradelib.php +++ b/mod/workshop/form/accumulative/db/upgradelib.php @@ -73,6 +73,10 @@ function workshopform_accumulative_upgrade_legacy() { $rs = $DB->get_recordset_sql($sql, $params); $newassessmentids = workshop_upgrade_assessment_id_mappings(); foreach ($rs as $old) { + if (!isset($newassessmentids[$old->assessmentid])) { + // orphaned grade - the assessment was removed but the grade remained + continue; + } if (!isset($newelementids[$old->workshopid]) or !isset($newelementids[$old->workshopid][$old->elementno])) { // orphaned grade - the assessment form element has been removed after the grade was recorded continue; diff --git a/mod/workshop/form/comments/db/upgradelib.php b/mod/workshop/form/comments/db/upgradelib.php index 1d7d3faa78f..f1e537bb6e1 100644 --- a/mod/workshop/form/comments/db/upgradelib.php +++ b/mod/workshop/form/comments/db/upgradelib.php @@ -70,6 +70,10 @@ function workshopform_comments_upgrade_legacy() { $rs = $DB->get_recordset_sql($sql, $params); $newassessmentids = workshop_upgrade_assessment_id_mappings(); foreach ($rs as $old) { + if (!isset($newassessmentids[$old->assessmentid])) { + // orphaned comment - the assessment was removed but the grade remained + continue; + } if (!isset($newelementids[$old->workshopid]) or !isset($newelementids[$old->workshopid][$old->elementno])) { // orphaned comment - the assessment form element has been removed after the grade was recorded continue; diff --git a/mod/workshop/form/numerrors/db/upgradelib.php b/mod/workshop/form/numerrors/db/upgradelib.php index cf169186442..f7b07f86ddb 100644 --- a/mod/workshop/form/numerrors/db/upgradelib.php +++ b/mod/workshop/form/numerrors/db/upgradelib.php @@ -93,6 +93,10 @@ function workshopform_numerrors_upgrade_legacy() { $rs = $DB->get_recordset_sql($sql, $params); $newassessmentids = workshop_upgrade_assessment_id_mappings(); foreach ($rs as $old) { + if (!isset($newassessmentids[$old->assessmentid])) { + // orphaned grade - the assessment was removed but the grade remained + continue; + } if (!isset($newelementids[$old->workshopid]) or !isset($newelementids[$old->workshopid][$old->elementno])) { // orphaned grade - the assessment form element has been removed after the grade was recorded continue; diff --git a/mod/workshop/form/rubric/db/upgradelib.php b/mod/workshop/form/rubric/db/upgradelib.php index 34ec718231d..40df767619e 100644 --- a/mod/workshop/form/rubric/db/upgradelib.php +++ b/mod/workshop/form/rubric/db/upgradelib.php @@ -104,6 +104,10 @@ function workshopform_rubric_upgrade_legacy_criterion() { $newassessmentids = workshop_upgrade_assessment_id_mappings(); $newdimensionids = $DB->get_records('workshopform_rubric_levels', array(), '', 'id,dimensionid'); foreach ($rs as $old) { + if (!isset($newassessmentids[$old->assessmentid])) { + // orphaned grade - the assessment was removed but the grade remained + continue; + } if (!isset($newelementids[$old->workshopid]) or !isset($newelementids[$old->workshopid][$old->elementno])) { // orphaned grade - the assessment form element has been removed after the grade was recorded continue;