From: skodak Date: Mon, 30 Oct 2006 11:16:27 +0000 (+0000) Subject: Journal Module fixes fro 1.7 MDL-7159; merged from MOODLE_17_STABLE X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=714986dc40fc2a57f8726259eae44f7157dbf036;p=moodle.git Journal Module fixes fro 1.7 MDL-7159; merged from MOODLE_17_STABLE --- diff --git a/mod/journal/lib.php b/mod/journal/lib.php index 6dca25a020..f335bb7ad3 100644 --- a/mod/journal/lib.php +++ b/mod/journal/lib.php @@ -312,41 +312,24 @@ function journal_scale_used ($journalid,$scaleid) { function journal_get_users_done($journal) { global $CFG; - // make sure it works on the site course - $select = "s.course = '$journal->course' AND"; - if ($journal->course == SITEID) { - $select = ''; - } - - $studentjournals = get_records_sql ("SELECT u.* - FROM {$CFG->prefix}journal_entries j, - {$CFG->prefix}user u, - {$CFG->prefix}user_students s - WHERE j.userid = u.id - AND s.userid = u.id - AND $select j.journal = $journal->id - ORDER BY j.modified DESC"); - - $teacherjournals = get_records_sql ("SELECT u.* + $journals = get_records_sql ("SELECT u.* FROM {$CFG->prefix}journal_entries j, - {$CFG->prefix}user u, - {$CFG->prefix}user_teachers t + {$CFG->prefix}user u WHERE j.userid = u.id - AND t.userid = u.id AND j.journal = $journal->id - AND t.course = $journal->course ORDER BY j.modified DESC"); - if ($studentjournals and !$teacherjournals) { - return $studentjournals; - } - if ($teacherjournals and !$studentjournals) { - return $teacherjournals; + if (empty($journals)) { + return NULL; } - if (!$teacherjournals and !$studentjournals) { - return array(); + + // remove unenrolled participants + foreach ($journals as $key=>$user) { + if (!isteacher($journal->course, $user->id) and !isstudent($journal->course, $user->id)) { + unset($journals[$key]); + } } - return(array_merge($studentjournals, $teacherjournals)); + return $journals; } function journal_count_entries($journal, $groupid=0) { @@ -364,29 +347,24 @@ function journal_count_entries($journal, $groupid=0) { } else { /// Count all the entries from the whole course - // make sure it works on the site course - $select = "s.course = '$journal->course' AND"; - if ($journal->course == SITEID) { - $select = ''; + $journals = get_records_sql ("SELECT u.* + FROM {$CFG->prefix}journal_entries j, + {$CFG->prefix}user u + WHERE j.userid = u.id + AND j.journal = $journal->id + ORDER BY j.modified DESC"); + + if (empty($journals)) { + return 0; } - $studentjournals = count_records_sql("SELECT COUNT(*) - FROM {$CFG->prefix}journal_entries j, - {$CFG->prefix}user u, - {$CFG->prefix}user_students s - WHERE j.userid = u.id - AND s.userid = u.id - AND $select j.journal = $journal->id"); - - $teacherjournals = count_records_sql("SELECT COUNT(*) - FROM {$CFG->prefix}journal_entries j, - {$CFG->prefix}user u, - {$CFG->prefix}user_teachers t - WHERE j.userid = u.id - AND t.userid = u.id - AND j.journal = $journal->id - AND t.course = $journal->course "); - return ($studentjournals + $teacherjournals); + // remove unenrolled participants + foreach ($journals as $key=>$user) { + if (!isteacher($journal->course, $user->id) and !isstudent($journal->course, $user->id)) { + unset($journals[$key]); + } + } + return count($journals); } } diff --git a/mod/journal/view.php b/mod/journal/view.php index aafb523c6f..d273c0407c 100644 --- a/mod/journal/view.php +++ b/mod/journal/view.php @@ -102,13 +102,13 @@ print_simple_box_end(); if ($timenow < $timefinish) { - if ($entry->modified) { + if (!empty($entry->modified)) { echo '
'.get_string('lastedited').': '; echo userdate($entry->modified); echo ' ('.get_string('numwords', '', count_words($entry->text)).')'; echo "
"; } - if ($journal->days) { + if (!empty($journal->days)) { echo '
'.get_string('editingends', 'journal').': '; echo userdate($timefinish).'
'; } @@ -117,7 +117,7 @@ echo userdate($timefinish).''; } - if ($entry->entrycomment or $entry->rating) { + if (!empty($entry->entrycomment) or !empty($entry->rating)) { $grades = make_grades_menu($journal->assessed); print_heading(get_string('feedback')); journal_print_feedback($course, $entry, $grades);