choose_from_menu($minutes, $minute, $currentdate['minutes'], "");
}
-function print_grade_menu($courseid, $name, $current) {
+function print_grade_menu($courseid, $name, $current, $includenograde=true) {
/// Prints a grade menu (as part of an existing form) with help
/// Showing all possible numerical grades and scales
foreach ($scales as $i => $scalename) {
$grades[-$i] = "$strscale: $scalename";
}
- $grades[0] = get_string("nograde");
+ if ($includenograde) {
+ $grades[0] = get_string("nograde");
+ }
for ($i=100; $i>=1; $i--) {
$grades[$i] = $i;
}
table_column("forum", "", "assesstimestart", "integer", "10", "unsigned", "0", "", "assessed");
table_column("forum", "", "assesstimefinish", "integer", "10", "unsigned", "0", "", "assesstimestart");
}
+
+ if ($oldversion < 2003082502) {
+ table_column("forum", "scale", "scale", "integer", "10", "", "0");
+ execute_sql("UPDATE {$CFG->prefix}forum SET scale = (- scale)");
+ }
return true;
assessed int(10) unsigned NOT NULL default '0',
assesstimestart int(10) unsigned NOT NULL default '0',
assesstimefinish int(10) unsigned NOT NULL default '0',
- scale int(10) unsigned NOT NULL default '0',
+ scale int(10) NOT NULL default '0',
forcesubscribe tinyint(1) unsigned NOT NULL default '0',
timemodified int(10) unsigned NOT NULL default '0',
PRIMARY KEY (id),
table_column("forum", "", "assesstimefinish", "integer", "10", "unsigned", "0", "", "assesstimestart");
}
+ if ($oldversion < 2003082502) {
+ execute_sql("UPDATE {$CFG->prefix}forum SET scale = (- scale)");
+ }
+
return true;
}
if (!$forum->assessed) {
return false;
}
- if (!$scale = get_record("scale", "id", $forum->scale)) {
- return false;
- }
- $scalemenu = make_menu_from_list($scale->scale);
+ $scalemenu = make_grades_menu($forum->scale);
$currentuser = 0;
$ratingsuser = array();
foreach ($ratings as $rating) { // Ordered by user
if ($currentuser and $rating->userid != $currentuser) {
if (!empty($ratingsuser)) {
- $return->grades[$currentuser] = forum_get_ratings_mean(0, $scalemenu, $ratingsuser);
- $return->grades[$currentuser] .= "<br />".forum_get_ratings_summary(0, $scalemenu, $ratingsuser);
+ if ($forum->scale < 0) {
+ $return->grades[$currentuser] = forum_get_ratings_mean(0, $scalemenu, $ratingsuser);
+ $return->grades[$currentuser] .= "<br />".forum_get_ratings_summary(0, $scalemenu, $ratingsuser);
+ } else {
+ $total = 0;
+ $count = 0;
+ foreach ($ratingsuser as $ra) {
+ $total += $ra;
+ $count ++;
+ }
+ $return->grades[$currentuser] = format_float($total/$count, 2);
+ }
} else {
$return->grades[$currentuser] = "";
}
$currentuser = $rating->userid;
}
if (!empty($ratingsuser)) {
- $return->grades[$currentuser] = forum_get_ratings_mean(0, $scalemenu, $ratingsuser);
- $return->grades[$currentuser] .= "<br />".forum_get_ratings_summary(0, $scalemenu, $ratingsuser);
+ if ($forum->scale < 0) {
+ $return->grades[$currentuser] = forum_get_ratings_mean(0, $scalemenu, $ratingsuser);
+ $return->grades[$currentuser] .= "<br />".forum_get_ratings_summary(0, $scalemenu, $ratingsuser);
+ } else {
+ $total = 0;
+ $count = 0;
+ foreach ($ratingsuser as $ra) {
+ $total += $ra;
+ $count ++;
+ }
+ $return->grades[$currentuser] = format_float((float)$total/(float)$count, 2);
+ }
} else {
$return->grades[$currentuser] = "";
}
$return->grades = array();
}
- $return->maxgrade = "";
+ if ($forum->scale < 0) {
+ $return->maxgrade = "";
+ } else {
+ $return->maxgrade = $forum->scale;
+ }
return $return;
}
$ratings = NULL;
if ($forum->assessed and !empty($USER->id)) {
- if ($scale = get_record("scale", "id", $forum->scale)) {
- $ratings->scale = make_menu_from_list($scale->scale);
+ if ($ratings->scale = make_grades_menu($forum->scale)) {
$ratings->assesstimestart = $forum->assesstimestart;
$ratings->assesstimefinish = $forum->assesstimefinish;
if ($forum->assessed == 2 and !isteacher($course->id)) {
helpbutton("ratings", get_string("allowratings", "forum"), "forum");
echo "<br />";
- echo get_string("scale").":";
- print_scale_menu($course->id, "scale", $form->scale);
+ echo get_string("grade").":";
+ print_grade_menu($course->id, "scale", $form->scale, false);
echo "<br />";
echo "<input name=\"ratingtime\" type=checkbox value=1 ";
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
-$module->version = 2003082500;
+$module->version = 2003082502;
$module->cron = 60;
?>