diff --git a/mod/assign/classes/output/renderer.php b/mod/assign/classes/output/renderer.php index 646414969a210..d87209ec80776 100644 --- a/mod/assign/classes/output/renderer.php +++ b/mod/assign/classes/output/renderer.php @@ -448,6 +448,11 @@ public function render_assign_feedback_status(\assign_feedback_status $status) { $o .= \html_writer::table($t); $o .= $this->output->box_end(); + if (!empty($status->gradingcontrollergrade)) { + $o .= $this->output->heading(get_string('gradebreakdown', 'assign'), 4); + $o .= $status->gradingcontrollergrade; + } + $o .= $this->output->container_end(); return $o; } @@ -813,13 +818,6 @@ public function render_assign_submission_status(assign_submission_status $status $this->add_table_row_tuple($t, $cell1content, $cell2content, [], $cell2attributes); } - // Grading criteria preview. - if (!empty($status->gradingcontrollerpreview)) { - $cell1content = get_string('gradingmethodpreview', 'assign'); - $cell2content = $status->gradingcontrollerpreview; - $this->add_table_row_tuple($t, $cell1content, $cell2content, [], []); - } - // Last modified. if ($submission) { $cell1content = get_string('timemodified', 'assign'); @@ -860,6 +858,12 @@ public function render_assign_submission_status(assign_submission_status $status $o .= \html_writer::table($t); $o .= $this->output->box_end(); + // Grading criteria preview. + if (!empty($status->gradingcontrollerpreview)) { + $o .= $this->output->heading(get_string('gradingmethodpreview', 'assign'), 4); + $o .= $status->gradingcontrollerpreview; + } + $o .= $this->output->container_end(); return $o; } diff --git a/mod/assign/lang/en/assign.php b/mod/assign/lang/en/assign.php index cf44e3b3b68cd..75eacf44fb3bb 100644 --- a/mod/assign/lang/en/assign.php +++ b/mod/assign/lang/en/assign.php @@ -284,6 +284,7 @@ $string['gradedfollowupsubmit'] = 'Graded - follow-up submission received'; $string['gradedon'] = 'Graded on'; $string['gradebelowzero'] = 'Grade must be greater than or equal to zero.'; +$string['gradebreakdown'] = 'Grade breakdown'; $string['gradeabovemaximum'] = 'Grade must be less than or equal to {$a}.'; $string['gradelocked'] = 'This grade is locked or overridden in the gradebook.'; $string['gradeoutof'] = 'Grade out of {$a}'; diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 328e15a20ab44..1eee029466357 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -5570,15 +5570,19 @@ public function get_assign_feedback_status_renderable($user) { $grader = null; $gradingmanager = get_grading_manager($this->get_context(), 'mod_assign', 'submissions'); + $gradingcontrollergrade = ''; if ($hasgrade) { if ($controller = $gradingmanager->get_active_controller()) { $menu = make_grades_menu($this->get_instance()->grade); $controller->set_grade_range($menu, $this->get_instance()->grade > 0); - $gradefordisplay = $controller->render_grade($PAGE, - $grade->id, - $gradingitem, - $gradebookgrade->str_long_grade, - $cangrade); + $gradingcontrollergrade = $controller->render_grade( + $PAGE, + $grade->id, + $gradingitem, + '', + $cangrade + ); + $gradefordisplay = $gradebookgrade->str_long_grade; } else { $gradefordisplay = $this->display_grade($gradebookgrade->grade, false); } @@ -5605,15 +5609,18 @@ public function get_assign_feedback_status_renderable($user) { if ($grade) { \mod_assign\event\feedback_viewed::create_from_grade($this, $grade)->trigger(); } - $feedbackstatus = new assign_feedback_status($gradefordisplay, - $gradeddate, - $grader, - $this->get_feedback_plugins(), - $grade, - $this->get_course_module()->id, - $this->get_return_action(), - $this->get_return_params(), - $viewfullnames); + $feedbackstatus = new assign_feedback_status( + $gradefordisplay, + $gradeddate, + $grader, + $this->get_feedback_plugins(), + $grade, + $this->get_course_module()->id, + $this->get_return_action(), + $this->get_return_params(), + $viewfullnames, + $gradingcontrollergrade + ); // Show the grader's identity if 'Hide Grader' is disabled or has the 'Show Hidden Grader' capability. $showgradername = ( diff --git a/mod/assign/renderable.php b/mod/assign/renderable.php index c6240963526f7..738e8659cd223 100644 --- a/mod/assign/renderable.php +++ b/mod/assign/renderable.php @@ -291,6 +291,8 @@ class assign_feedback_status implements renderable { public $returnparams = array(); /** @var bool canviewfullnames */ public $canviewfullnames = false; + /** @var string gradingcontrollergrade The grade information rendered by a grade controller */ + public $gradingcontrollergrade; /** * Constructor @@ -303,6 +305,7 @@ class assign_feedback_status implements renderable { * @param string $returnaction The action required to return to this page * @param array $returnparams The list of params required to return to this page * @param bool $canviewfullnames + * @param string $gradingcontrollergrade The grade information rendered by a grade controller */ public function __construct($gradefordisplay, $gradeddate, @@ -312,7 +315,8 @@ public function __construct($gradefordisplay, $coursemoduleid, $returnaction, $returnparams, - $canviewfullnames) { + $canviewfullnames, + $gradingcontrollergrade = '') { $this->gradefordisplay = $gradefordisplay; $this->gradeddate = $gradeddate; $this->grader = $grader; @@ -322,6 +326,7 @@ public function __construct($gradefordisplay, $this->returnaction = $returnaction; $this->returnparams = $returnparams; $this->canviewfullnames = $canviewfullnames; + $this->gradingcontrollergrade = $gradingcontrollergrade; } }