diff --git a/grade/report/singleview/classes/local/screen/grade.php b/grade/report/singleview/classes/local/screen/grade.php index 9eb4569b4bc..98f67252711 100644 --- a/grade/report/singleview/classes/local/screen/grade.php +++ b/grade/report/singleview/classes/local/screen/grade.php @@ -219,11 +219,12 @@ class grade extends tablelike implements selectable_items, filterable_items { $gradestatus = ''; - $canviewhidden = $grade->is_hidden() && - !has_capability('moodle/grade:viewhidden', context_course::instance($this->courseid)); + // Show hidden icon if the grade is hidden and the user has permission to view hidden grades. + $showhiddenicon = $grade->is_hidden() && + has_capability('moodle/grade:viewhidden', context_course::instance($this->courseid)); $context = [ - 'hidden' => $canviewhidden, + 'hidden' => $showhiddenicon, 'locked' => $grade->is_locked(), ]; diff --git a/grade/report/singleview/classes/local/screen/user.php b/grade/report/singleview/classes/local/screen/user.php index d686c0f4956..74fa2471ce7 100644 --- a/grade/report/singleview/classes/local/screen/user.php +++ b/grade/report/singleview/classes/local/screen/user.php @@ -172,11 +172,12 @@ class user extends tablelike implements selectable_items { $grade = $this->fetch_grade_or_default($item, $this->item->id); $gradestatus = ''; - $canviewhidden = ($grade->is_hidden() || $item->is_hidden()) && - !has_capability('moodle/grade:viewhidden', context_course::instance($item->courseid)); + // Show hidden icon if the grade is hidden and the user has permission to view hidden grades. + $showhiddenicon = ($grade->is_hidden() || $item->is_hidden()) && + has_capability('moodle/grade:viewhidden', context_course::instance($item->courseid)); $context = [ - 'hidden' => $canviewhidden, + 'hidden' => $showhiddenicon, 'locked' => $grade->is_locked(), ]; diff --git a/grade/report/singleview/classes/local/ui/override.php b/grade/report/singleview/classes/local/ui/override.php index 1ce035e6f0a..0d78349fae1 100644 --- a/grade/report/singleview/classes/local/ui/override.php +++ b/grade/report/singleview/classes/local/ui/override.php @@ -96,9 +96,11 @@ class override extends grade_attribute_format implements be_checked, be_disabled * @return element */ public function determine_format(): element { - $canviewhidden = ($this->grade->is_hidden() || $this->grade->is_hidden()) && - !has_capability('moodle/grade:viewhidden', context_course::instance($this->grade->grade_item->courseid)); - if (!$canviewhidden || !$this->grade->grade_item->is_overridable_item()) { + // If the grade is hidden and the user does not have permission to view hidden grades, + // then we don't show the override checkbox. + $allowhiddenoverride = (!$this->grade->is_hidden() && !$this->grade->grade_item->is_hidden()) || + has_capability('moodle/grade:viewhidden', context_course::instance($this->grade->grade_item->courseid)); + if (!$allowhiddenoverride || !$this->grade->grade_item->is_overridable_item()) { return new empty_element(); } return new checkbox_attribute(