From 85acc43e471ef0e74c24ea1f3228a910b7d651b2 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 29 Jul 2002 07:21:36 +0000 Subject: [PATCH] Improvements to report.php ... clearer code, new functions in lib.php and now the journal entries are sorted with the newest at the top. --- mod/journal/lib.php | 50 +++++++++++++++++++++++ mod/journal/report.php | 93 ++++++++++++------------------------------ 2 files changed, 77 insertions(+), 66 deletions(-) diff --git a/mod/journal/lib.php b/mod/journal/lib.php index c1fa1fffde..6da13f62a1 100644 --- a/mod/journal/lib.php +++ b/mod/journal/lib.php @@ -150,5 +150,55 @@ function journal_cron () { return true; } +function journal_get_users_done($course, $journal) { + return get_records_sql("SELECT u.* FROM user u, user_students s, user_teachers t, journal_entries j + WHERE ((s.course = '$course->id' AND s.user = u.id) OR + (t.course = '$course->id' AND t.user = u.id)) + AND u.id = j.user AND j.journal = '$journal->id' + ORDER BY j.modified DESC"); +} + +function journal_print_user_entry($course, $user, $entry, $teachers) { + global $THEME; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo ""; + + echo "\n"; + + if ($entry) { + echo "\n"; + echo ""; + } + echo "
body\" WIDTH=35 VALIGN=TOP>"; + print_user_picture($user->id, $course->id, $user->picture); + echo "cellheading\">$user->firstname $user->lastname"; + if ($entry) { + echo "  Last edited: ".userdate($entry->modified).""; + } + echo "
cellcontent\">"; + if ($entry) { + echo text_to_html($entry->text); + } else { + echo "No entry"; + } + echo "
"; + if (!$entry->teacher) { + $entry->teacher = $USER->id; + } + print_user_picture($entry->teacher, $course->id, $teachers[$entry->teacher]->picture); + echo "cellheading\">Teacher Feedback:"; + choose_from_menu($RATING, "r$entry->id", $entry->rating, "Rate..."); + if ($entry->timemarked) { + echo "  ".userdate($entry->timemarked).""; + } + echo "

"; + echo "

\n"; +} ?> diff --git a/mod/journal/report.php b/mod/journal/report.php index 42c8cc6722..d1e5b7b203 100644 --- a/mod/journal/report.php +++ b/mod/journal/report.php @@ -26,12 +26,12 @@ // make some easy ways to access the entries. if ( $eee = get_records_sql("SELECT * FROM journal_entries WHERE journal='$journal->id'")) { foreach ($eee as $ee) { - $entrybystudent[$ee->user] = $ee; + $entrybyuser[$ee->user] = $ee; $entrybyentry[$ee->id] = $ee; } } else { - $entrybystudent = array () ; + $entrybyuser = array () ; $entrybyentry = array () ; } @@ -66,87 +66,48 @@ WHERE id = '$num'")) { error("Failed to update the journal feedback!"); } - $entrybystudent[$entry->user]->comment = $vals[c]; - $entrybystudent[$entry->user]->rating = $vals[r]; - $entrybystudent[$entry->user]->timemarked = $timenow; - $entrybystudent[$entry->user]->teacher = $USER->id; + $entrybyuser[$entry->user]->comment = $vals[c]; + $entrybyuser[$entry->user]->rating = $vals[r]; + $entrybyuser[$entry->user]->timemarked = $timenow; + $entrybyuser[$entry->user]->teacher = $USER->id; $count++; } } - add_to_log($course->id, "journal", "update feedback", "report.php?id=$cm->id", "$count students"); + add_to_log($course->id, "journal", "update feedback", "report.php?id=$cm->id", "$count users"); notify("Journal feedback updated for $count people."); } else { add_to_log($course->id, "journal", "view responses", "report.php?id=$cm->id", "$journal->id"); } - if (! $students = get_records_sql("SELECT u.* FROM user u, user_students s, user_teachers t - WHERE (s.course = '$course->id' AND s.user = u.id) OR - (t.course = '$course->id' AND t.user = u.id) - ORDER BY u.lastaccess DESC")) { - notify("No students", "$CFG->wwwroot/course/view.php?id=$course->id"); - die; - } - - if (! $teachers = get_records_sql("SELECT u.* FROM user u, user_teachers t - WHERE t.course = '$course->id' AND t.user = u.id - ORDER BY u.lastaccess DESC")) { - notify("No teachers", "$CFG->wwwroot/course/view.php?id=$course->id"); - die; - } + $teachers = get_course_teachers($course->id); + if (! $users = get_course_users($course->id)) { + print_heading("No users in this course yet"); - echo "
\n"; - foreach ($students as $student) { - $entry = $entrybystudent[$student->id]; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo ""; + } else { + echo "\n"; - echo "\n"; - if ($entry) { - echo "\n"; - echo ""; } - echo "
body\" WIDTH=35 VALIGN=TOP>"; - print_user_picture($student->id, $course->id, $student->picture); - echo "cellheading\">$student->firstname $student->lastname"; - if ($entry) { - echo "  Last edited: ".userdate($entry->modified).""; - } - echo "
cellcontent\">"; - if ($entry) { - echo text_to_html($entry->text); - } else { - echo "No entry"; + if ($usersdone = journal_get_users_done($course, $journal)) { + foreach ($usersdone as $user) { + $entry = $entrybyuser[$user->id]; + journal_print_user_entry($course, $user, $entry, $teachers); + } } - echo "
"; - if (!$entry->teacher) { - $entry->teacher = $USER->id; - } - print_user_picture($entry->teacher, $course->id, $teachers[$entry->teacher]->picture); - echo "cellheading\">Teacher Feedback:"; - choose_from_menu($RATING, "r$entry->id", $entry->rating, "Rate..."); - if ($entry->timemarked) { - echo "  ".userdate($entry->timemarked).""; + foreach ($users as $user) { + if (! $usersdone[$user->id]) { + $entry = NULL; + journal_print_user_entry($course, $user, $entry, $teachers); } - echo "

"; - echo "

\n"; - + echo "
"; + echo "id\">"; + echo ""; + echo "
"; + echo "
"; } - echo "
"; - echo "id\">"; - echo ""; - echo "
"; - echo ""; - + print_footer($course); - ?> -- 2.39.5