diff --git a/mod/journal/db/mysql.php b/mod/journal/db/mysql.php index f62e553e760..a6df5fbf9e7 100644 --- a/mod/journal/db/mysql.php +++ b/mod/journal/db/mysql.php @@ -4,20 +4,44 @@ function journal_upgrade($oldversion) { // This function does anything necessary to upgrade // older versions to match current functionality + global $CFG; + $result = true; - if ($oldversion < 20020810) { - if (! execute_sql("ALTER TABLE `journal_entries` ADD `mailed` TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL")) { - $result = false; - } + if ($oldversion < 2002081000) { + if (! execute_sql("ALTER TABLE `journal_entries` ADD `mailed` TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL")) { + $result = false; + } } if ($oldversion < 2002101200) { - execute_sql(" ALTER TABLE `journal_entries` ADD `format` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL AFTER `text` "); + execute_sql(" ALTER TABLE `journal_entries` ADD `format` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL AFTER `text` "); } if ($oldversion < 2002122300) { execute_sql("ALTER TABLE `journal_entries` CHANGE `user` `userid` INT(10) UNSIGNED DEFAULT '0' NOT NULL "); } + if ($oldversion < 2003081701) { + table_column("journal", "assessed", "assessed", "integer", "10", "", "0"); + table_column("journal_entries", "rating", "rating", "integer", "10", "", "0"); + } + + if ($oldversion < 2003081705) { + $defaultscale = NULL; + $defaultscale->courseid = 0; + $defaultscale->userid = 0; + $defaultscale->timemodified = time(); + $defaultscale->name = get_string("journalrating2", "journal"); + $defaultscale->scale = get_string("journalrating1", "journal").",". + get_string("journalrating2", "journal").",". + get_string("journalrating3", "journal"); + + if ($defaultscale->id = insert_record("scale", $defaultscale)) { + execute_sql("UPDATE {$CFG->prefix}journal SET assessed = '-$defaultscale->id'", false); + } else { + notify("An error occurred while inserting the default journal scale"); + $result = false; + } + } return $result; } diff --git a/mod/journal/db/mysql.sql b/mod/journal/db/mysql.sql index ff1496a1664..18aaa7cf77e 100755 --- a/mod/journal/db/mysql.sql +++ b/mod/journal/db/mysql.sql @@ -20,7 +20,7 @@ CREATE TABLE prefix_journal ( name varchar(255) default NULL, intro text, days smallint(5) unsigned NOT NULL default '7', - assessed tinyint(1) NOT NULL default '1', + assessed int(10) NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id) ) TYPE=MyISAM; @@ -37,7 +37,7 @@ CREATE TABLE prefix_journal_entries ( modified int(10) unsigned NOT NULL default '0', text text NOT NULL, format tinyint(2) NOT NULL default '0', - rating tinyint(4) default '0', + rating int(10) default '0', comment text, teacher int(10) unsigned NOT NULL default '0', timemarked int(10) unsigned NOT NULL default '0', diff --git a/mod/journal/db/postgres7.php b/mod/journal/db/postgres7.php index 7b8fad7f53e..7791526f55e 100644 --- a/mod/journal/db/postgres7.php +++ b/mod/journal/db/postgres7.php @@ -4,7 +4,27 @@ function journal_upgrade($oldversion) { // This function does anything necessary to upgrade // older versions to match current functionality + global $CFG; + $result = true; + if ($oldversion < 2003081705) { + $defaultscale = NULL; + $defaultscale->courseid = 0; + $defaultscale->userid = 0; + $defaultscale->timemodified = time(); + $defaultscale->name = get_string("journalrating2", "journal"); + $defaultscale->scale = get_string("journalrating1", "journal").",". + get_string("journalrating2", "journal").",". + get_string("journalrating3", "journal"); + + if ($defaultscale->id = insert_record("scale", $defaultscale)) { + execute_sql("UPDATE {$CFG->prefix}journal SET assessed = '-$defaultscale->id'", false); + } else { + notify("An error occurred while inserting the default journal scale"); + $result = false; + } + } + return $result; } diff --git a/mod/journal/db/postgres7.sql b/mod/journal/db/postgres7.sql index ee974fa955c..933d2426351 100755 --- a/mod/journal/db/postgres7.sql +++ b/mod/journal/db/postgres7.sql @@ -20,7 +20,7 @@ CREATE TABLE prefix_journal ( name varchar(255) default NULL, intro text, days integer NOT NULL default '7', - assessed integer NOT NULL default '1', + assessed integer NOT NULL default '0', timemodified integer NOT NULL default '0' ); # -------------------------------------------------------- diff --git a/mod/journal/lib.php b/mod/journal/lib.php index a003c7f2a02..734e7bd79e1 100644 --- a/mod/journal/lib.php +++ b/mod/journal/lib.php @@ -1,10 +1,5 @@ get_string("journalrating3", "journal"), - "2" => get_string("journalrating2", "journal"), - "1" => get_string("journalrating1", "journal") ); - - // STANDARD MODULE FUNCTIONS ///////////////////////////////////////////////////////// @@ -170,18 +165,33 @@ function journal_print_recent_activity($course, $isteacher, $timestart) { function journal_grades($journalid) { /// Must return an array of grades, indexed by user, and a max grade. - global $JOURNAL_RATING; - if ($return->grades = get_records_menu("journal_entries", "journal", $journalid, "", "userid,rating")) { - foreach ($return->grades as $key => $value) { - if ($value) { - $return->grades[$key] = $JOURNAL_RATING[$value]; - } else { - $return->grades[$key] = "-"; + if (!$journal = get_record("journal", "id", $journalid)) { + return NULL; + } + + $grades = get_records_menu("journal_entries", "journal", + $journal->id, "", "userid,rating"); + + if ($journal->assessed > 0) { + $return->grades = $grades; + $return->maxgrade = $journal->assessed; + + } else if ($journal->assessed == 0) { + $return->grades = NULL; + $return->maxgrade = 0; + + } else { + if ($scale = get_record("scale", "id", - $journal->assessed)) { + $scalegrades = make_menu_from_list($scale->scale); + foreach ($grades as $key => $grade) { + $grades[$key] = $scalegrades[$grade]; } } + $return->grades = $grades; $return->maxgrade = ""; } + return $return; } @@ -228,7 +238,7 @@ function journal_log_info($log) { -function journal_print_user_entry($course, $user, $entry, $teachers, $ratings) { +function journal_print_user_entry($course, $user, $entry, $teachers, $grades) { global $THEME, $USER; if ($entry->timemarked < $entry->modified) { @@ -265,7 +275,7 @@ function journal_print_user_entry($course, $user, $entry, $teachers, $ratings) { } print_user_picture($entry->teacher, $course->id, $teachers[$entry->teacher]->picture); echo "
"; - if ($JOURNAL_RATING[$entry->rating]) { - echo get_string("overallrating", "journal").": "; - echo $JOURNAL_RATING[$entry->rating]; + if ($grades[$entry->rating]) { + echo get_string("grade").": "; + echo $grades[$entry->rating]; } else { - print_string("noratinggiven", "journal"); + print_string("nograde"); } echo "
"; diff --git a/mod/journal/mod.html b/mod/journal/mod.html index 56f223b69e6..0794b3e2b9e 100644 --- a/mod/journal/mod.html +++ b/mod/journal/mod.html @@ -5,6 +5,9 @@ if (!isset($form->intro)) { $form->intro = ""; } + if (!isset($form->assessed)) { + $form->assessed = "0"; + } if (!isset($form->days)) { $form->days = "14"; } @@ -36,6 +39,14 @@:
: