MDL-62893 mod: Grade visibility bug in the Outline/Complete reports
Grades that have been hidden will appear in the outline/complete report - even if the user is a student. The modules that have been fixed are: * mod_assign * mod_data * mod_forum * mod_glossary * mod_lesson * mod_scorm * mod_workshop
This commit is contained in:
+5
-1
@@ -1628,7 +1628,11 @@ function assign_user_outline($course, $user, $coursemodule, $assignment) {
|
||||
return null;
|
||||
}
|
||||
$result = new stdClass();
|
||||
$result->info = get_string('outlinegrade', 'assign', $gradebookgrade->str_long_grade);
|
||||
if (!$gradingitem->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info = get_string('outlinegrade', 'assign', $gradebookgrade->str_long_grade);
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
$result->time = $gradebookgrade->dategraded;
|
||||
|
||||
return $result;
|
||||
|
||||
+17
-5
@@ -1192,12 +1192,20 @@ function data_user_outline($course, $user, $mod, $data) {
|
||||
ORDER BY timemodified DESC', array($data->id, $user->id), true);
|
||||
$result->time = $lastrecord->timemodified;
|
||||
if ($grade) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} else if ($grade) {
|
||||
$result = new stdClass();
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
|
||||
//datesubmitted == time created. dategraded == time modified or time overridden
|
||||
//if grade was last modified by the user themselves use date graded. Otherwise use date submitted
|
||||
@@ -1229,9 +1237,13 @@ function data_user_complete($course, $user, $mod, $data) {
|
||||
$grades = grade_get_grades($course->id, 'mod', 'data', $data->id, $user->id);
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$grade = reset($grades->items[0]->grades);
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
}
|
||||
} else {
|
||||
echo $OUTPUT->container(get_string('grade') . ': ' . get_string('hidden', 'grades'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+17
-5
@@ -1272,12 +1272,20 @@ function forum_user_outline($course, $user, $mod, $forum) {
|
||||
$result->info = get_string("numposts", "forum", $count->postcount);
|
||||
$result->time = $count->lastpost;
|
||||
if ($grade) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} else if ($grade) {
|
||||
$result = new stdClass();
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
|
||||
//datesubmitted == time created. dategraded == time modified or time overridden
|
||||
//if grade was last modified by the user themselves use date graded. Otherwise use date submitted
|
||||
@@ -1309,9 +1317,13 @@ function forum_user_complete($course, $user, $mod, $forum) {
|
||||
$grades = grade_get_grades($course->id, 'mod', 'forum', $forum->id, $user->id);
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$grade = reset($grades->items[0]->grades);
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
}
|
||||
} else {
|
||||
echo $OUTPUT->container(get_string('grade') . ': ' . get_string('hidden', 'grades'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+17
-5
@@ -262,12 +262,20 @@ function glossary_user_outline($course, $user, $mod, $glossary) {
|
||||
$result->time = $lastentry->timemodified;
|
||||
|
||||
if ($grade) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} else if ($grade) {
|
||||
$result = new stdClass();
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
|
||||
//datesubmitted == time created. dategraded == time modified or time overridden
|
||||
//if grade was last modified by the user themselves use date graded. Otherwise use date submitted
|
||||
@@ -319,9 +327,13 @@ function glossary_user_complete($course, $user, $mod, $glossary) {
|
||||
$grades = grade_get_grades($course->id, 'mod', 'glossary', $glossary->id, $user->id);
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$grade = reset($grades->items[0]->grades);
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
}
|
||||
} else {
|
||||
echo $OUTPUT->container(get_string('grade') . ': ' . get_string('hidden', 'grades'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-3
@@ -406,7 +406,11 @@ function lesson_user_outline($course, $user, $mod, $lesson) {
|
||||
$return->info = get_string("nolessonattempts", "lesson");
|
||||
}
|
||||
} else {
|
||||
$return->info = get_string("grade") . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$return->info = get_string('grade') . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$return->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
|
||||
// Datesubmitted == time created. dategraded == time modified or time overridden.
|
||||
// If grade was last modified by the user themselves use date graded. Otherwise use date submitted.
|
||||
@@ -463,13 +467,18 @@ function lesson_user_complete($course, $user, $mod, $lesson) {
|
||||
$status = get_string("nolessonattempts", "lesson");
|
||||
}
|
||||
} else {
|
||||
$status = get_string("grade") . ': ' . $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$status = get_string("grade") . ': ' . $grade->str_long_grade;
|
||||
} else {
|
||||
$status = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
}
|
||||
|
||||
// Display the grade or lesson status if there isn't one.
|
||||
echo $OUTPUT->container($status);
|
||||
|
||||
if ($grade->str_feedback) {
|
||||
if ($grade->str_feedback &&
|
||||
(!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id)))) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
}
|
||||
}
|
||||
|
||||
+12
-4
@@ -353,7 +353,11 @@ function scorm_user_outline($course, $user, $mod, $scorm) {
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$grade = reset($grades->items[0]->grades);
|
||||
$result = new stdClass();
|
||||
$result->info = get_string('grade') . ': '. $grade->str_long_grade;
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$result->info = get_string('grade') . ': '. $grade->str_long_grade;
|
||||
} else {
|
||||
$result->info = get_string('grade') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
|
||||
// Datesubmitted == time created. dategraded == time modified or time overridden
|
||||
// if grade was last modified by the user themselves use date graded. Otherwise use date submitted.
|
||||
@@ -401,9 +405,13 @@ function scorm_user_complete($course, $user, $mod, $scorm) {
|
||||
$grades = grade_get_grades($course->id, 'mod', 'scorm', $scorm->id, $user->id);
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$grade = reset($grades->items[0]->grades);
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
if (!$grade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
echo $OUTPUT->container(get_string('grade').': '.$grade->str_long_grade);
|
||||
if ($grade->str_feedback) {
|
||||
echo $OUTPUT->container(get_string('feedback').': '.$grade->str_feedback);
|
||||
}
|
||||
} else {
|
||||
echo $OUTPUT->container(get_string('grade') . ': ' . get_string('hidden', 'grades'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+22
-4
@@ -405,13 +405,23 @@ function workshop_user_outline($course, $user, $mod, $workshop) {
|
||||
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$submissiongrade = reset($grades->items[0]->grades);
|
||||
$info .= get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade . html_writer::empty_tag('br');
|
||||
$time = max($time, $submissiongrade->dategraded);
|
||||
if (!$submissiongrade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$info .= get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade
|
||||
. html_writer::empty_tag('br');
|
||||
} else {
|
||||
$info .= get_string('submissiongrade', 'workshop') . ': ' . get_string('hidden', 'grades')
|
||||
. html_writer::empty_tag('br');
|
||||
}
|
||||
}
|
||||
if (!empty($grades->items[1]->grades)) {
|
||||
$assessmentgrade = reset($grades->items[1]->grades);
|
||||
$info .= get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade;
|
||||
$time = max($time, $assessmentgrade->dategraded);
|
||||
if (!$assessmentgrade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$info .= get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade;
|
||||
} else {
|
||||
$info .= get_string('gradinggrade', 'workshop') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($info) and !empty($time)) {
|
||||
@@ -444,12 +454,20 @@ function workshop_user_complete($course, $user, $mod, $workshop) {
|
||||
|
||||
if (!empty($grades->items[0]->grades)) {
|
||||
$submissiongrade = reset($grades->items[0]->grades);
|
||||
$info = get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade;
|
||||
if (!$submissiongrade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$info = get_string('submissiongrade', 'workshop') . ': ' . $submissiongrade->str_long_grade;
|
||||
} else {
|
||||
$info = get_string('submissiongrade', 'workshop') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
echo html_writer::tag('li', $info, array('class'=>'submissiongrade'));
|
||||
}
|
||||
if (!empty($grades->items[1]->grades)) {
|
||||
$assessmentgrade = reset($grades->items[1]->grades);
|
||||
$info = get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade;
|
||||
if (!$assessmentgrade->hidden || has_capability('moodle/grade:viewhidden', context_course::instance($course->id))) {
|
||||
$info = get_string('gradinggrade', 'workshop') . ': ' . $assessmentgrade->str_long_grade;
|
||||
} else {
|
||||
$info = get_string('gradinggrade', 'workshop') . ': ' . get_string('hidden', 'grades');
|
||||
}
|
||||
echo html_writer::tag('li', $info, array('class'=>'gradinggrade'));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user