diff --git a/grade/grading/form/guide/classes/grades/grader/gradingpanel/external/fetch.php b/grade/grading/form/guide/classes/grades/grader/gradingpanel/external/fetch.php index 36823725920..79d678359b2 100644 --- a/grade/grading/form/guide/classes/grades/grader/gradingpanel/external/fetch.php +++ b/grade/grading/form/guide/classes/grades/grader/gradingpanel/external/fetch.php @@ -156,6 +156,9 @@ class fetch extends external_api { $hasgrade = $gradeitem->user_has_grade($gradeduser); $grade = $gradeitem->get_grade_for_user($gradeduser, $USER); $instance = $gradeitem->get_advanced_grading_instance($USER, $grade); + if (!$instance) { + throw new moodle_exception('error:gradingunavailable', 'grading'); + } $controller = $instance->get_controller(); $definition = $controller->get_definition(); $fillings = $instance->get_guide_filling(); diff --git a/grade/grading/form/rubric/classes/grades/grader/gradingpanel/external/fetch.php b/grade/grading/form/rubric/classes/grades/grader/gradingpanel/external/fetch.php index 8fee77f8e8a..49fa81d21a9 100644 --- a/grade/grading/form/rubric/classes/grades/grader/gradingpanel/external/fetch.php +++ b/grade/grading/form/rubric/classes/grades/grader/gradingpanel/external/fetch.php @@ -149,6 +149,10 @@ class fetch extends external_api { $hasgrade = $gradeitem->user_has_grade($gradeduser); $grade = $gradeitem->get_grade_for_user($gradeduser, $USER); $instance = $gradeitem->get_advanced_grading_instance($USER, $grade); + if (!$instance) { + throw new moodle_exception('error:gradingunavailable', 'grading'); + } + $controller = $instance->get_controller(); $definition = $controller->get_definition(); $fillings = $instance->get_rubric_filling(); diff --git a/lang/en/grading.php b/lang/en/grading.php index dd68d9100c2..68608868926 100644 --- a/lang/en/grading.php +++ b/lang/en/grading.php @@ -95,3 +95,4 @@ $string['templatetypeown'] = 'Own form'; $string['templatetypeshared'] = 'Shared template'; $string['templatesource'] = 'Location: {$a->component} ({$a->area})'; $string['error:notinrange'] = 'Invalid grade \'{$a->grade}\' provided. Grades must be between 0 and {$a->maxgrade}.'; +$string['error:gradingunavailable'] = 'The advanced grading method is not correctly set. Please check the whole forum grading options in the forum settings.';