diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 1ffcce18cf6..9f7b9b1ffa5 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -1778,18 +1778,14 @@ class assignment_base { * Return an outline of the user's interaction with the assignment * * The default method prints the grade and timemodified - * @param $user object + * @param $grade object * @return object with properties ->info and ->time */ - function user_outline($user) { - if ($submission = $this->get_submission($user->id)) { - - $result = new object(); - $result->info = get_string('grade').': '.$this->display_grade($submission->grade); - $result->time = $submission->timemodified; - return $result; - } - return NULL; + function user_outline($grade) { + $result = new object(); + $result->info = get_string('grade').': '.$grade->str_long_grade; + $result->time = $grade->dategraded; + return $result; } /** @@ -1797,7 +1793,14 @@ class assignment_base { * * @param $user object */ - function user_complete($user) { + function user_complete($user, $grade=null) { + if ($grade) { + echo '
'.get_string('grade').': '.$grade->str_long_grade.'
'; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.'
'; + } + } + if ($submission = $this->get_submission($user->id)) { if ($basedir = $this->file_area($user->id)) { if ($files = get_directory_list($basedir)) { @@ -1817,11 +1820,7 @@ class assignment_base { echo ''.get_string('grade').': '.$grade->str_long_grade.'
'; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.'
'; + } + } if ($records = get_records_select('data_records', 'dataid = '.$data->id.' AND userid = '.$user->id, 'timemodified DESC')) { data_print_template('singletemplate', $records, $data); diff --git a/mod/forum/lib.php b/mod/forum/lib.php index ece8080cf6a..d0997d647ae 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -946,13 +946,30 @@ function forum_make_mail_html($course, $forum, $discussion, $post, $userfrom, $u * @return object A standard object with 2 variables: info (number of posts for this user) and time (last modified) */ function forum_user_outline($course, $user, $mod, $forum) { - if ($count = forum_count_user_posts($forum->id, $user->id)) { - if ($count->postcount > 0) { - $result = new object(); - $result->info = get_string("numposts", "forum", $count->postcount); - $result->time = $count->lastpost; - return $result; + global $CFG; + require_once("$CFG->libdir/gradelib.php"); + $grades = grade_get_grades($course->id, 'mod', 'forum', $forum->id, $user->id); + if (empty($grades->items[0]->grades)) { + $grade = false; + } else { + $grade = reset($grades->items[0]->grades); + } + + $count = forum_count_user_posts($forum->id, $user->id); + + if ($count && $count->postcount > 0) { + $result = new object(); + $result->info = get_string("numposts", "forum", $count->postcount); + $result->time = $count->lastpost; + if ($grade) { + $result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade; } + return $result; + } else if ($grade) { + $result = new object(); + $result->info = get_string('grade') . ': ' . $grade->str_long_grade; + $result->time = $grade->dategraded; + return $result; } return NULL; } @@ -963,6 +980,16 @@ function forum_user_outline($course, $user, $mod, $forum) { */ function forum_user_complete($course, $user, $mod, $forum) { global $CFG,$USER; + require_once("$CFG->libdir/gradelib.php"); + + $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 ''.get_string('grade').': '.$grade->str_long_grade.'
'; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.'
'; + } + } if ($posts = forum_get_user_posts($forum->id, $user->id)) { diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 76553a90983..1372e96c9e7 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -161,11 +161,19 @@ function glossary_delete_instance($id) { } function glossary_user_outline($course, $user, $mod, $glossary) { + global $CFG; /// Return a small object with summary information about what a /// user has done with a given particular instance of this module /// Used for user activity reports. /// $return->time = the time they did it /// $return->info = a short text description + require_once("$CFG->libdir/gradelib.php"); + $grades = grade_get_grades($course->id, 'mod', 'glossary', $glossary->id, $user->id); + if (empty($grades->items[0]->grades)) { + $grade = false; + } else { + $grade = reset($grades->items[0]->grades); + } if ($entries = glossary_get_user_entries($glossary->id, $user->id)) { $result = new object(); @@ -173,8 +181,18 @@ function glossary_user_outline($course, $user, $mod, $glossary) { $lastentry = array_pop($entries); $result->time = $lastentry->timemodified; + + if ($grade) { + $result->info .= ', ' . get_string('grade') . ': ' . $grade->str_long_grade; + } + return $result; + } else if ($grade) { + $result = new object(); + $result->info = get_string('grade') . ': ' . $grade->str_long_grade; + $result->time = $grade->dategraded; return $result; } + return NULL; } @@ -197,7 +215,16 @@ function glossary_user_complete($course, $user, $mod, $glossary) { /// Print a detailed representation of what a user has done with /// a given particular instance of this module, for user activity reports. global $CFG; + require_once("$CFG->libdir/gradelib.php"); + $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 ''.get_string('grade').': '.$grade->str_long_grade.'
'; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.'
'; + } + } if ($entries = glossary_get_user_entries($glossary->id, $user->id)) { echo '| ';
foreach ($entries as $entry) {
diff --git a/mod/lesson/lib.php b/mod/lesson/lib.php
index 8d3972dc4f6..37cb87dd880 100644
--- a/mod/lesson/lib.php
+++ b/mod/lesson/lib.php
@@ -147,22 +147,15 @@ function lesson_user_outline($course, $user, $mod, $lesson) {
/// Used for user activity reports.
/// $return->time = the time they did it
/// $return->info = a short text description
-
- if ($grades = get_records_select("lesson_grades", "lessonid = $lesson->id AND userid = $user->id",
- "grade DESC")) {
- foreach ($grades as $grade) {
- $max_grade = number_format($grade->grade * $lesson->grade / 100.0, 1);
- break;
- }
- $return->time = $grade->completed;
- if ($lesson->retake) {
- $return->info = get_string("gradeis", "lesson", $max_grade)." (".
- get_string("attempt", "lesson", count($grades)).")";
- } else {
- $return->info = get_string("gradeis", "lesson", $max_grade);
- }
- } else {
+ global $CFG;
+ require_once("$CFG->libdir/gradelib.php");
+ $grades = grade_get_grades($course->id, 'mod', 'lesson', $lesson->id, $user->id);
+ if (empty($grades->items[0]->grades)) {
$return->info = get_string("no")." ".get_string("attempts", "lesson");
+ } else {
+ $grade = reset($grades->items[0]->grades);
+ $return->info = get_string("grade") . ': ' . $grade->str_long_grade;
+ $return->time = $grade->dategraded;
}
return $return;
}
@@ -171,6 +164,17 @@ function lesson_user_outline($course, $user, $mod, $lesson) {
function lesson_user_complete($course, $user, $mod, $lesson) {
/// Print a detailed representation of what a user has done with
/// a given particular instance of this module, for user activity reports.
+ global $CFG;
+ require_once("$CFG->libdir/gradelib.php");
+
+ $grades = grade_get_grades($course->id, 'mod', 'lesson', $lesson->id, $user->id);
+ if (!empty($grades->items[0]->grades)) {
+ $grade = reset($grades->items[0]->grades);
+ echo ' '.get_string('grade').': '.$grade->str_long_grade.' '; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.' '; + } + } if ($attempts = get_records_select("lesson_attempts", "lessonid = $lesson->id AND userid = $user->id", "retry, timeseen")) { @@ -210,25 +214,8 @@ function lesson_user_complete($course, $user, $mod, $lesson) { } print_table($table); print_simple_box_end(); - // also print grade summary - if ($grades = get_records_select("lesson_grades", "lessonid = $lesson->id AND userid = $user->id", - "grade DESC")) { - foreach ($grades as $grade) { - $max_grade = number_format($grade->grade * $lesson->grade / 100.0, 1); - break; - } - if ($lesson->retake) { - echo "".get_string("gradeis", "lesson", $max_grade)." (". - get_string("attempts", "lesson").": ".count($grades).") "; - } else { - echo "".get_string("gradeis", "lesson", $max_grade)." "; - } - } - } else { - echo get_string("no")." ".get_string("attempts", "lesson"); } - return true; } diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 61e02ead6ca..41a93320bfb 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -198,25 +198,36 @@ function quiz_user_outline($course, $user, $mod, $quiz) { /// Used for user activity reports. /// $return->time = the time they did it /// $return->info = a short text description - $grade = quiz_get_best_grade($quiz, $user->id); - if (is_null($grade)) { - return NULL; + global $CFG; + require_once("$CFG->libdir/gradelib.php"); + $grades = grade_get_grades($course->id, 'mod', 'quiz', $quiz->id, $user->id); + if (empty($grades->items[0]->grades)) { + return null; + } else { + $grade = reset($grades->items[0]->grades); } $result = new stdClass; - $result->info = get_string('grade') . ': ' . $grade . '/' . $quiz->grade; - $result->time = get_field('quiz_attempts', 'MAX(timefinish)', 'userid', $user->id, 'quiz', $quiz->id); + $result->info = get_string('grade') . ': ' . $grade->str_long_grade; + $result->time = $grade->dategraded; return $result; } function quiz_user_complete($course, $user, $mod, $quiz) { /// Print a detailed representation of what a user has done with /// a given particular instance of this module, for user activity reports. + global $CFG; + require_once("$CFG->libdir/gradelib.php"); + $grades = grade_get_grades($course->id, 'mod', 'quiz', $quiz->id, $user->id); + if (!empty($grades->items[0]->grades)) { + $grade = reset($grades->items[0]->grades); + echo ''.get_string('grade').': '.$grade->str_long_grade.' '; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.' '; + } + } if ($attempts = get_records_select('quiz_attempts', "userid='$user->id' AND quiz='$quiz->id'", 'attempt ASC')) { - if ($quiz->grade && $quiz->sumgrades && $grade = get_record('quiz_grades', 'userid', $user->id, 'quiz', $quiz->id)) { - echo get_string('grade').': '.round($grade->grade, $quiz->decimalpoints).'/'.$quiz->grade.''; - } foreach ($attempts as $attempt) { echo get_string('attempt', 'quiz').' '.$attempt->attempt.': '; if ($attempt->timefinish == 0) { diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 3b7ad63fb58..8e852ebba56 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -219,10 +219,16 @@ function scorm_delete_instance($id) { function scorm_user_outline($course, $user, $mod, $scorm) { global $CFG; require_once('locallib.php'); - - $return = scorm_grade_user($scorm, $user->id, true); - - return $return; + require_once("$CFG->libdir/gradelib.php"); + $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 object(); + $result->info = get_string('grade') . ': '. $grade->str_long_grade; + $result->time = $grade->dategraded; + return $result; + } + return null; } /** @@ -237,6 +243,7 @@ function scorm_user_outline($course, $user, $mod, $scorm) { */ function scorm_user_complete($course, $user, $mod, $scorm) { global $CFG; + require_once("$CFG->libdir/gradelib.php"); $liststyle = 'structlist'; $scormpixdir = $CFG->modpixpath.'/scorm/pix'; @@ -246,6 +253,15 @@ function scorm_user_complete($course, $user, $mod, $scorm) { $sometoreport = false; $report = ''; + $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 ' '.get_string('grade').': '.$grade->str_long_grade.' '; + if ($grade->str_feedback) { + echo ''.get_string('feedback').': '.$grade->str_feedback.' '; + } + } + if ($orgs = get_records_select('scorm_scoes',"scorm='$scorm->id' AND organization='' AND launch=''",'id','id,identifier,title')) { if (count($orgs) <= 1) { unset($orgs); @@ -651,4 +667,4 @@ function scorm_is_moddata_trusted() { return true; } -?> \ No newline at end of file +?> |