MDL-66733 grade: Add helper to get correct user date for grade

This commit is contained in:
Andrew Nicols 2019-08-28 09:24:16 +08:00
parent 1c3efe48f8
commit 4bb39eabc7
8 changed files with 99 additions and 57 deletions

View file

@ -354,22 +354,15 @@ function scorm_user_outline($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);
$result = new stdClass();
$result = (object) [
'time' => grade_get_date_for_user_grade($grade, $user),
];
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.
// TODO: move this copied & pasted code somewhere in the grades API. See MDL-26704.
if ($grade->usermodified == $user->id || empty($grade->datesubmitted)) {
$result->time = $grade->dategraded;
} else {
$result->time = $grade->datesubmitted;
}
return $result;
}
return null;