Skip to content

Commit

Permalink
Gradebook: Show weighted average in flatview - refs BT#19641
Browse files Browse the repository at this point in the history
  • Loading branch information
AngelFQC committed Feb 8, 2022
1 parent fa512c6 commit 92701d5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
21 changes: 14 additions & 7 deletions main/gradebook/lib/flatview_data_generator.class.php
Expand Up @@ -163,15 +163,22 @@ public function get_header_names($items_start = 0, $items_count = null, $show_de
$links = $sub_cat->get_links();
$evaluations = $sub_cat->get_evaluations();

/** @var ExerciseLink $link */
$linkNameList = [];
/** @var ExerciseLink $link */
foreach ($links as $link) {
$linkNameList[] = $link->get_name();
$linkNameList[] = Display::returnHeaderWithPercentage(
$link->get_name(),
$link->get_weight()
);
}

$evalNameList = [];
/** @var Evaluation $evaluation */
foreach ($evaluations as $evaluation) {
$evalNameList[] = $evaluation->get_name();
$linkNameList[] = Display::returnHeaderWithPercentage(
$evaluation->get_name(),
$evaluation->get_weight()
);
}

$finalList = array_merge($linkNameList, $evalNameList);
Expand Down Expand Up @@ -451,7 +458,7 @@ public function get_data(
);

$evaluationsAdded = [];
$detailAdminView = api_get_setting('gradebook_detailed_admin_view');
$detailAdminView = 'true' === api_get_setting('gradebook_detailed_admin_view');
$style = api_get_configuration_value('gradebook_report_score_style');
$defaultStyle = SCORE_DIV_SIMPLE_WITH_CUSTOM;
if (!empty($style)) {
Expand All @@ -466,7 +473,7 @@ public function get_data(
/** @var Category $sub_cat */
foreach ($allcat as $sub_cat) {
$score = $sub_cat->calc_score($user_id);
if ('true' === $detailAdminView) {
if ($detailAdminView) {
$links = $sub_cat->get_links();
/** @var ExerciseLink $link */
$linkScoreList = [];
Expand Down Expand Up @@ -546,12 +553,12 @@ public function get_data(
false == $this->params['only_total_category'])
) {
if (!$show_all) {
if ('true' === api_get_setting('gradebook_detailed_admin_view')) {
if ($detailAdminView) {
$finalList = array_merge($linkScoreList, $evalScoreList);
if (empty($finalList)) {
$average = 0;
} else {
$average = array_sum($finalList) / count($finalList);
$average = $item_value / count($finalList);
}
$finalList[] = round($average, 2);
foreach ($finalList as $finalValue) {
Expand Down
10 changes: 10 additions & 0 deletions main/inc/lib/display.lib.php
Expand Up @@ -3018,4 +3018,14 @@ public static function get_image($image, $size = ICON_SIZE_SMALL, $name = '')
{
return self::return_icon($image, $name, [], $size);
}

public static function returnHeaderWithPercentage($header, $percentage)
{
$percentHtml = sprintf(
get_lang('XPercent'),
round($percentage, 2)
);

return "$header<br><small>$percentHtml</small>";
}
}

0 comments on commit 92701d5

Please sign in to comment.