no message

This commit is contained in:
Nicolas Connault
2009-10-27 11:24:55 +00:00
parent 2289c2acde
commit 5e150ff30f
7 changed files with 177 additions and 69 deletions
+30 -18
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
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 '<br />';
if (empty($submission->timemarked)) {
print_string("notgradedyet", "assignment");
} else {
$this->view_feedback($submission);
}
$this->view_feedback($submission);
print_simple_box_end();
@@ -2063,10 +2062,16 @@ function assignment_add_instance($assignment) {
function assignment_user_outline($course, $user, $mod, $assignment) {
global $CFG;
require_once("$CFG->libdir/gradelib.php");
require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");
$assignmentclass = "assignment_$assignment->assignmenttype";
$ass = new $assignmentclass($mod->id, $assignment, $mod, $course);
return $ass->user_outline($user);
$grades = grade_get_grades($course->id, 'mod', 'assignment', $assignment->id, $user->id);
if (!empty($grades->items[0]->grades)) {
return $ass->user_outline(reset($grades->items[0]->grades));
} else {
return null;
}
}
/**
@@ -2077,10 +2082,17 @@ function assignment_user_outline($course, $user, $mod, $assignment) {
function assignment_user_complete($course, $user, $mod, $assignment) {
global $CFG;
require_once("$CFG->libdir/gradelib.php");
require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");
$assignmentclass = "assignment_$assignment->assignmenttype";
$ass = new $assignmentclass($mod->id, $assignment, $mod, $course);
return $ass->user_complete($user);
$grades = grade_get_grades($course->id, 'mod', 'assignment', $assignment->id, $user->id);
if (empty($grades->items[0]->grades)) {
$grade = false;
} else {
$grade = reset($grades->items[0]->grades);
}
return $ass->user_complete($user, $grade);
}
/**
+28
View File
@@ -706,6 +706,15 @@ function data_delete_instance($id) { // takes the dataid
************************************************************************/
function data_user_outline($course, $user, $mod, $data) {
global $CFG;
require_once("$CFG->libdir/gradelib.php");
$grades = grade_get_grades($course->id, 'mod', 'data', $data->id, $user->id);
if (empty($grades->items[0]->grades)) {
$grade = false;
} else {
$grade = reset($grades->items[0]->grades);
}
if ($countrecords = count_records('data_records', 'dataid', $data->id, 'userid', $user->id)) {
$result = new object();
$result->info = get_string('numrecords', 'data', $countrecords);
@@ -713,6 +722,14 @@ function data_user_outline($course, $user, $mod, $data) {
WHERE dataid = '.$data->id.' AND userid = '.$user->id.'
ORDER BY timemodified DESC', true);
$result->time = $lastrecord->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;
@@ -722,6 +739,17 @@ function data_user_outline($course, $user, $mod, $data) {
* Prints all the records uploaded by this user *
************************************************************************/
function data_user_complete($course, $user, $mod, $data) {
global $CFG;
require_once("$CFG->libdir/gradelib.php");
$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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
if ($records = get_records_select('data_records', 'dataid = '.$data->id.' AND userid = '.$user->id,
'timemodified DESC')) {
data_print_template('singletemplate', $records, $data);
+33 -6
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
if ($posts = forum_get_user_posts($forum->id, $user->id)) {
+27
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
if ($entries = glossary_get_user_entries($glossary->id, $user->id)) {
echo '<table width="95%" border="0"><tr><td>';
foreach ($entries as $entry) {
+19 -32
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
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 "<p>".get_string("gradeis", "lesson", $max_grade)." (".
get_string("attempts", "lesson").": ".count($grades).")</p>";
} else {
echo "<p>".get_string("gradeis", "lesson", $max_grade)."</p>";
}
}
} else {
echo get_string("no")." ".get_string("attempts", "lesson");
}
return true;
}
+19 -8
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
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.'<br />';
}
foreach ($attempts as $attempt) {
echo get_string('attempt', 'quiz').' '.$attempt->attempt.': ';
if ($attempt->timefinish == 0) {
+21 -5
View File
@@ -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 '<p>'.get_string('grade').': '.$grade->str_long_grade.'</p>';
if ($grade->str_feedback) {
echo '<p>'.get_string('feedback').': '.$grade->str_feedback.'</p>';
}
}
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;
}
?>
?>