Browse Source

Fixed bug with gradebook grade

MOODLE_23_STABLE
Artem Andreev 13 years ago
parent
commit
c73ddce2b9
  1. 19
      locallib.php

19
locallib.php

@ -984,7 +984,7 @@ class attforblock {
foreach ($userids as $userid) {
$grades[$userid]->userid = $userid;
$grades[$userid]->rawgrade = att_calc_user_grade_percent($this->get_user_grade($userid), $this->get_user_max_grade($userid));
$grades[$userid]->rawgrade = att_calc_user_grade_fraction($this->get_user_grade($userid), $this->get_user_max_grade($userid)) * $this->grade;
}
return grade_update('mod/attforblock', $this->course->id, 'mod', 'attforblock',
@ -1242,26 +1242,33 @@ function att_get_user_courses_attendances($userid) {
return $DB->get_records_sql($sql, $params);
}
function att_calc_user_grade_percent($grade, $maxgrade) {
function att_calc_user_grade_fraction($grade, $maxgrade) {
if ($maxgrade == 0)
return 0;
else
return $grade / $maxgrade * 100;
return $grade / $maxgrade;
}
function att_update_all_users_grades($attid, $course, $context) {
global $COURSE;
function att_get_gradebook_maxgrade($attid) {
global $DB;
return $DB->get_field('attforblock', 'grade', array('id' => $attid));
}
function att_update_all_users_grades($attid, $course, $context) {
$grades = array();
$userids = array_keys(get_enrolled_users($context, 'mod/attforblock:canbelisted', 0, 'u.id'));
$statuses = att_get_statuses($attid);
$gradebook_maxgrade = att_get_gradebook_maxgrade($attid);
foreach ($userids as $userid) {
$grades[$userid]->userid = $userid;
$userstatusesstat = att_get_user_statuses_stat($attid, $course->startdate, $userid);
$usertakensesscount = att_get_user_taken_sessions_count($attid, $course->startdate, $userid);
$grades[$userid]->rawgrade = att_calc_user_grade_percent(att_get_user_grade($userstatusesstat, $statuses), att_get_user_max_grade($usertakensesscount, $statuses));
$usergrade = att_get_user_grade($userstatusesstat, $statuses);
$usermaxgrade = att_get_user_max_grade($usertakensesscount, $statuses);
$grades[$userid]->rawgrade = att_calc_user_grade_fraction($usergrade, $usermaxgrade) * $gradebook_maxgrade;
}
return grade_update('mod/attforblock', $course->id, 'mod', 'attforblock',

Loading…
Cancel
Save