From bf0a1542179a4ea0e34f0002815c553f2542a901 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Tue, 28 Nov 2017 15:47:30 +0800 Subject: [PATCH] MDL-58983 assign: Hide grade button if no cap If the current user cannot grade students, don't show them the button. --- mod/assign/locallib.php | 6 ++++-- mod/assign/renderable.php | 7 ++++++- mod/assign/renderer.php | 8 +++++--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index ae24d0f7db8..7b17d5a2e5e 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -5323,7 +5323,8 @@ class assign { $this->get_course_module()->id, $this->count_submissions_need_grading(), $instance->teamsubmission, - $warnofungroupedusers); + $warnofungroupedusers, + $this->can_grade()); } else { // The active group has already been updated in groups_print_activity_menu(). $countparticipants = $this->count_participants($activitygroup); @@ -5337,7 +5338,8 @@ class assign { $this->get_course_module()->id, $this->count_submissions_need_grading(), $instance->teamsubmission, - false); + false, + $this->can_grade()); } diff --git a/mod/assign/renderable.php b/mod/assign/renderable.php index 8c6435e6a4f..06eb4becc34 100644 --- a/mod/assign/renderable.php +++ b/mod/assign/renderable.php @@ -748,6 +748,8 @@ class assign_grading_summary implements renderable { public $teamsubmission = false; /** @var boolean warnofungroupedusers - Do we need to warn people that there are users without groups */ public $warnofungroupedusers = false; + /** @var boolean cangrade - Can the current user grade students? */ + public $cangrade = false; /** * constructor @@ -762,6 +764,7 @@ class assign_grading_summary implements renderable { * @param int $coursemoduleid * @param int $submissionsneedgradingcount * @param bool $teamsubmission + * @param bool $cangrade */ public function __construct($participantcount, $submissiondraftsenabled, @@ -773,7 +776,8 @@ class assign_grading_summary implements renderable { $coursemoduleid, $submissionsneedgradingcount, $teamsubmission, - $warnofungroupedusers) { + $warnofungroupedusers, + $cangrade = true) { $this->participantcount = $participantcount; $this->submissiondraftsenabled = $submissiondraftsenabled; $this->submissiondraftscount = $submissiondraftscount; @@ -785,6 +789,7 @@ class assign_grading_summary implements renderable { $this->submissionsneedgradingcount = $submissionsneedgradingcount; $this->teamsubmission = $teamsubmission; $this->warnofungroupedusers = $warnofungroupedusers; + $this->cangrade = $cangrade; } } diff --git a/mod/assign/renderer.php b/mod/assign/renderer.php index 649e6742018..3d9bde8a385 100644 --- a/mod/assign/renderer.php +++ b/mod/assign/renderer.php @@ -339,9 +339,11 @@ class mod_assign_renderer extends plugin_renderer_base { $urlparams = array('id' => $summary->coursemoduleid, 'action' => 'grading'); $url = new moodle_url('/mod/assign/view.php', $urlparams); $o .= '' . get_string('viewgrading', 'mod_assign') . ' '; - $urlparams = array('id' => $summary->coursemoduleid, 'action' => 'grader'); - $url = new moodle_url('/mod/assign/view.php', $urlparams); - $o .= '' . get_string('grade') . ''; + if ($summary->cangrade) { + $urlparams = array('id' => $summary->coursemoduleid, 'action' => 'grader'); + $url = new moodle_url('/mod/assign/view.php', $urlparams); + $o .= '' . get_string('grade') . ''; + } $o .= $this->output->container_end(); // Close the container and insert a spacer.