|
@@ -736,8 +736,9 @@ class Category implements GradebookItem
|
|
|
$weightsum = 0;
|
|
|
|
|
|
if (!empty($cats)) {
|
|
|
+ /** @var Category $cat */
|
|
|
foreach ($cats as $cat) {
|
|
|
- $catres = $cat->calc_score($stud_id, $course_code, $session_id); // recursive call
|
|
|
+ $catres = $cat->calc_score($stud_id, $course_code, $session_id);
|
|
|
if ($cat->get_weight() != 0) {
|
|
|
$catweight = $cat->get_weight();
|
|
|
$rescount++;
|
|
@@ -750,20 +751,26 @@ class Category implements GradebookItem
|
|
|
}
|
|
|
|
|
|
if (!empty($evals)) {
|
|
|
+ /** @var Evaluation $eval */
|
|
|
foreach ($evals as $eval) {
|
|
|
$evalres = $eval->calc_score($stud_id);
|
|
|
+
|
|
|
if (isset($evalres) && $eval->get_weight() != 0) {
|
|
|
$evalweight = $eval->get_weight();
|
|
|
- $rescount++;
|
|
|
$weightsum += $evalweight;
|
|
|
+ $rescount++;
|
|
|
$ressum += (($evalres[0]/$evalres[1]) * $evalweight);
|
|
|
} else {
|
|
|
-
|
|
|
+ if ($eval->get_weight() != 0) {
|
|
|
+ $evalweight = $eval->get_weight();
|
|
|
+ $weightsum += $evalweight;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (!empty($links)) {
|
|
|
+ /** @var EvalLink $link */
|
|
|
foreach ($links as $link) {
|
|
|
$linkres = $link->calc_score($stud_id);
|
|
|
|
|
@@ -774,7 +781,7 @@ class Category implements GradebookItem
|
|
|
$weightsum += $linkweight;
|
|
|
$ressum += (($linkres[0]/$link_res_denom) * $linkweight);
|
|
|
} else {
|
|
|
- //adding if result does not exists
|
|
|
+ // Ddding if result does not exists
|
|
|
if ($link->get_weight() != 0) {
|
|
|
$linkweight = $link->get_weight();
|
|
|
$weightsum += $linkweight;
|
|
@@ -1538,7 +1545,7 @@ class Category implements GradebookItem
|
|
|
public static function register_user_certificate($category_id, $user_id)
|
|
|
{
|
|
|
// Generating the total score for a course
|
|
|
- $cats_course = Category::load($category_id, null, null, null, null, null, false);
|
|
|
+ $cats_course = Category::load($category_id, null, null, null, null, api_get_session_id(), false);
|
|
|
|
|
|
$alleval_course = $cats_course[0]->get_evaluations($user_id, true);
|
|
|
$alllink_course = $cats_course[0]->get_links($user_id, true);
|
|
@@ -1549,7 +1556,7 @@ class Category implements GradebookItem
|
|
|
if (isset($cats_course) && !empty($cats_course)) {
|
|
|
$categories = Category::load(null, null, null, $category_id);
|
|
|
if (!empty($categories)) {
|
|
|
- foreach($categories as $category) {
|
|
|
+ foreach ($categories as $category) {
|
|
|
$sum_categories_weight_array[$category->get_id()] = $category->get_weight();
|
|
|
}
|
|
|
} else {
|
|
@@ -1561,19 +1568,23 @@ class Category implements GradebookItem
|
|
|
|
|
|
$item_total_value = 0;
|
|
|
$item_value = 0;
|
|
|
+
|
|
|
for ($count=0; $count < count($evals_links); $count++) {
|
|
|
$item = $evals_links[$count];
|
|
|
$score = $item->calc_score($user_id);
|
|
|
$divide = ( ($score[1])==0 ) ? 1 : $score[1];
|
|
|
- $sub_cat_percentage = $sum_categories_weight_array[$item->get_category_id()];
|
|
|
+ //$sub_cat_percentage = $sum_categories_weight_array[$item->get_category_id()];
|
|
|
//$item_value = $score[0]/$divide*$item->get_weight()*$sub_cat_percentage/$main_weight;
|
|
|
$item_value = $score[0]/$divide*$item->get_weight();
|
|
|
+ /*var_dump($score[0], $divide, $item->get_weight(), $item_value);
|
|
|
+ echo '---';-*/
|
|
|
$item_total_value += $item_value;
|
|
|
}
|
|
|
+
|
|
|
$item_total_value = (float)$item_total_value;
|
|
|
|
|
|
$cattotal = Category::load($category_id);
|
|
|
- $scoretotal= $cattotal[0]->calc_score($user_id);
|
|
|
+ $scoretotal = $cattotal[0]->calc_score($user_id);
|
|
|
|
|
|
//Do not remove this the gradebook/lib/fe/gradebooktable.class.php file load this variable as a global
|
|
|
$scoredisplay = ScoreDisplay::instance();
|