diff --git a/amd/build/rubric_ranges.min.js b/amd/build/rubric_ranges.min.js
new file mode 100644
index 00000000..f263b64b
--- /dev/null
+++ b/amd/build/rubric_ranges.min.js
@@ -0,0 +1,10 @@
+/**
+ * Modify ranged rubric grading form.
+ *
+ * @author Sumaiya Javed .\n\n/**\n * Modify ranged rubric grading form.\n *\n * @author Sumaiya Javed .
+
+/**
+ * Modify ranged rubric grading form.
+ *
+ * @author Sumaiya Javed stageidentifier;
$PAGE->set_url('/mod/coursework/actions/feedbacks/new.php', $urlparams);
+ // Autopopulate average grade from initial assessors.
+ if ($coursework && $coursework->is_using_ranged_rubric() && $teacherfeedback->stageidentifier == 'final_agreed_1') {
+ if (str_contains($coursework->automaticagreementstrategy, 'none')) {
+ $gdata = [];
+ $gdata = $coursework->get_advanced_grading_average_grade_range_rubric($teacherfeedback->get_submission()->id);
+ $PAGE->requires->js_call_amd('mod_coursework/rubric_ranges', 'init', [$gdata]);
+ }
+ }
+
// auto-populate Agreed Feedback with comments from initial marking
if ($coursework && $coursework->autopopulatefeedbackcomment_enabled() && $teacherfeedback->stageidentifier == 'final_agreed_1') {
// get all initial stages feedbacks for this submission
diff --git a/classes/models/coursework.php b/classes/models/coursework.php
index 962b6816..ac7b1978 100644
--- a/classes/models/coursework.php
+++ b/classes/models/coursework.php
@@ -2119,7 +2119,23 @@ public function get_advanced_grading_active_controller() {
}
/**
- * @return grading_manager
+ * @return bool|gradingform_controller|null
+ */
+ public function get_advanced_grading_average_grade_range_rubric($submissionid) {
+ global $DB;
+ if ($submissionid) {
+ $sql = "SELECT rr.criterionid, ROUND(AVG(rr.levelid)) as avglevel, ROUND(AVG(rr.grade)) as avggrade
+ FROM {coursework_feedbacks} cf
+ LEFT JOIN {grading_instances} gi ON cf.id = gi.itemid
+ LEFT JOIN {gradingform_rubric_ranges_f} rr ON gi.id = rr.instanceid
+ WHERE cf.submissionid = :submissionid AND cf.stageidentifier NOT LIKE 'final_agreed_1' AND cf.finalised = 1 AND gi.status = 1
+ GROUP BY rr.criterionid ORDER BY rr.criterionid ";
+ return $DB->get_records_sql($sql, ['submissionid' => $submissionid]);
+ }
+ }
+
+ /**
+ * @return \grading_manager
*/
protected function get_advanced_grading_manager() {
return get_grading_manager($this->get_context(), 'mod_coursework', 'submissions');
@@ -2143,6 +2159,15 @@ public function is_using_marking_guide(): bool {
return self::get_advanced_grading_method() === 'guide';
}
+ /**
+ * Check if ranged rubric is used in the current coursework.
+ *
+ * @return bool
+ */
+ public function is_using_ranged_rubric(): bool {
+ return self::get_advanced_grading_method() === 'rubric_ranges';
+ }
+
/**
* Get advanced grading method used in the current coursework.
*