|
@@ -136,7 +136,7 @@ class FlatViewDataGenerator
|
|
|
$session_id = api_get_session_id();
|
|
|
|
|
|
$allcat = $this->category->get_subcategories(null, $course_code, $session_id, 'ORDER BY id');
|
|
|
-
|
|
|
+ $evaluationsAdded = array();
|
|
|
if ($parent_id == 0 && !empty($allcat)) {
|
|
|
// Means there are any subcategory
|
|
|
foreach ($allcat as $sub_cat) {
|
|
@@ -152,9 +152,11 @@ class FlatViewDataGenerator
|
|
|
(isset($this->params['only_total_category']) && $this->params['only_total_category'] == false)
|
|
|
) {
|
|
|
for ($count=0; ($count < $items_count ) && ($items_start + $count < count($this->evals_links)); $count++) {
|
|
|
+ /** @var AbstractLink $item */
|
|
|
$item = $this->evals_links[$count + $items_start];
|
|
|
$weight = round(100*$item->get_weight()/$main_weight,1);
|
|
|
$headers[] = $item->get_name().' '.$weight.' % ';
|
|
|
+ $evaluationsAdded[] = $item->get_id();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -163,7 +165,7 @@ class FlatViewDataGenerator
|
|
|
for ($count = 0; ($count < $items_count) && ($items_start + $count < count($this->evals_links)); $count++) {
|
|
|
/** @var AbstractLink $item */
|
|
|
$item = $this->evals_links[$count + $items_start];
|
|
|
- if ($mainCategoryId == $item->get_category_id()) {
|
|
|
+ if ($mainCategoryId == $item->get_category_id() && !in_array($item->get_id(), $evaluationsAdded)) {
|
|
|
$weight = round(100 * $item->get_weight() / $main_weight, 1);
|
|
|
$headers[] = $item->get_name() . ' ' . $weight . ' % ';
|
|
|
}
|
|
@@ -360,6 +362,8 @@ class FlatViewDataGenerator
|
|
|
$session_id = api_get_session_id();
|
|
|
$allcat = $this->category->get_subcategories(null, $course_code, $session_id, 'ORDER BY id');
|
|
|
|
|
|
+ $evaluationsAdded = array();
|
|
|
+
|
|
|
if ($parent_id == 0 && !empty($allcat)) {
|
|
|
foreach ($allcat as $sub_cat) {
|
|
|
$score = $sub_cat->calc_score($user_id);
|
|
@@ -420,6 +424,7 @@ class FlatViewDataGenerator
|
|
|
|
|
|
$item_total += $result['item_total'];
|
|
|
$item_value_total += $result['item_value_total'];
|
|
|
+ $evaluationsAdded = $result['evaluations_added'];
|
|
|
$item_total = $main_weight;
|
|
|
}
|
|
|
|
|
@@ -431,7 +436,8 @@ class FlatViewDataGenerator
|
|
|
$items_start,
|
|
|
$show_all,
|
|
|
$row,
|
|
|
- $mainCategoryId
|
|
|
+ $mainCategoryId,
|
|
|
+ $evaluationsAdded
|
|
|
);
|
|
|
|
|
|
$item_total += $result['item_total'];
|
|
@@ -477,23 +483,33 @@ class FlatViewDataGenerator
|
|
|
$items_start,
|
|
|
$show_all,
|
|
|
& $row,
|
|
|
- $parentCategoryIdFilter = null
|
|
|
+ $parentCategoryIdFilter = null,
|
|
|
+ $evaluationsAlreadyAdded = array()
|
|
|
) {
|
|
|
// Generate actual data array
|
|
|
$scoredisplay = ScoreDisplay :: instance();
|
|
|
$item_total = 0;
|
|
|
$item_value_total = 0;
|
|
|
|
|
|
+ $evaluationsAdded = array();
|
|
|
+
|
|
|
for ($count = 0; ($count < $items_count) && ($items_start + $count < count($this->evals_links)); $count++) {
|
|
|
/** @var AbstractLink $item */
|
|
|
$item = $this->evals_links[$count + $items_start];
|
|
|
|
|
|
+ if (!empty($evaluationsAlreadyAdded)) {
|
|
|
+ if (in_array($item->get_id(), $evaluationsAlreadyAdded)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!empty($parentCategoryIdFilter)) {
|
|
|
if ($item->get_category_id() != $parentCategoryIdFilter) {
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $evaluationsAdded[] = $item->get_id();
|
|
|
$score = $item->calc_score($user_id);
|
|
|
|
|
|
$real_score = $score;
|
|
@@ -562,7 +578,8 @@ class FlatViewDataGenerator
|
|
|
|
|
|
return array(
|
|
|
'item_total' => $item_total,
|
|
|
- 'item_value_total' => $item_value_total
|
|
|
+ 'item_value_total' => $item_value_total,
|
|
|
+ 'evaluations_added' => $evaluationsAdded
|
|
|
);
|
|
|
}
|
|
|
|