Gradebook - Fix export format only score, fix xls/doc headers BT#18440

pull/3782/head
Julio Montoya 5 years ago
parent a3cd0ec489
commit 94e03cace9
  1. 5
      main/gradebook/lib/GradebookUtils.php
  2. 54
      main/gradebook/lib/flatview_data_generator.class.php
  3. 17
      main/gradebook/lib/gradebook_result.class.php

@ -637,8 +637,9 @@ class GradebookUtils
null,
$offset,
$count,
true === $onlyScore,
true
$onlyScore,
true,
$onlyScore
);
$result = [];

@ -306,8 +306,9 @@ class FlatViewDataGenerator
$users_count = null,
$items_start = 0,
$items_count = null,
$ignore_score_color = false,
$show_all = false
$ignoreScoreColor = false,
$show_all = false,
$onlyScore = false
) {
// Do some checks on users/items counts, redefine if invalid values
if (!isset($users_count)) {
@ -457,6 +458,10 @@ class FlatViewDataGenerator
$defaultStyle = (int) $style;
}
if ($onlyScore) {
$defaultStyle = SCORE_PERCENT;
}
if (0 == $parent_id && !empty($allcat)) {
/** @var Category $sub_cat */
foreach ($allcat as $sub_cat) {
@ -469,9 +474,9 @@ class FlatViewDataGenerator
$linkScore = $link->calc_score($user_id);
$linkScoreList[] = $scoreDisplay->display_score(
$linkScore,
SCORE_SIMPLE,
$defaultStyle,
null,
$ignore_score_color
$ignoreScoreColor
);
}
@ -482,9 +487,9 @@ class FlatViewDataGenerator
$evalScore = $evaluation->calc_score($user_id);
$evalScoreList[] = $scoreDisplay->display_score(
$evalScore,
SCORE_SIMPLE,
$defaultStyle,
null,
$ignore_score_color
$ignoreScoreColor
);
}
}
@ -504,17 +509,20 @@ class FlatViewDataGenerator
if (!empty($style)) {
$defaultShowPercentageValue = $style;
}
if ($onlyScore) {
$defaultShowPercentageValue = SCORE_PERCENT;
}
$real_score = $scoreDisplay->display_score(
$real_score,
$defaultShowPercentageValue,
true,
$ignore_score_color
$ignoreScoreColor
);
$temp_score = $scoreDisplay->display_score(
$score,
SCORE_DIV_SIMPLE_WITH_CUSTOM,
null,
$ignore_score_color
$ignoreScoreColor
);
$temp_score = Display::tip($real_score, $temp_score);
} else {
@ -522,13 +530,13 @@ class FlatViewDataGenerator
$real_score,
SCORE_DIV_PERCENT,
SCORE_ONLY_SCORE,
$ignore_score_color
$ignoreScoreColor
);
$temp_score = $scoreDisplay->display_score(
$score,
$defaultStyle,
null,
$ignore_score_color
$ignoreScoreColor
);
$temp_score = Display::tip($temp_score, $real_score);
}
@ -569,7 +577,7 @@ class FlatViewDataGenerator
$row,
null,
[],
$ignore_score_color
$ignoreScoreColor
);
$item_value_total += $result['item_value_total'];
$evaluationsAdded = $result['evaluations_added'];
@ -586,7 +594,8 @@ class FlatViewDataGenerator
$row,
$mainCategoryId,
$evaluationsAdded,
$ignore_score_color
$ignoreScoreColor,
$onlyScore
);
$item_total += $result['item_total'];
@ -598,8 +607,8 @@ class FlatViewDataGenerator
$scoreDisplay->is_custom();
if (!$show_all) {
$defaultStyle = empty($style) ? SCORE_DIV_PERCENT : (int) $style;
$displayScore = $scoreDisplay->display_score($total_score, $defaultStyle, null, $ignore_score_color);
//$defaultStyle = empty($style) ? SCORE_DIV_PERCENT : (int) $style;
$displayScore = $scoreDisplay->display_score($total_score, $defaultStyle, null, $ignoreScoreColor);
if (!empty($model)) {
$displayScore = ExerciseLib::show_score($total_score[0], $total_score[1]);
}
@ -609,11 +618,11 @@ class FlatViewDataGenerator
$row[] = $displayScore;
}
} else {
$defaultStyle = empty($style) ? SCORE_DIV_SIMPLE_WITH_CUSTOM_LETTERS : (int) $style;
if ($ignore_score_color) {
/*$defaultStyle = empty($style) ? SCORE_DIV_SIMPLE_WITH_CUSTOM_LETTERS : (int) $style;
if ($ignoreScoreColor) {
$defaultStyle = SCORE_DIV_PERCENT;
}
$displayScore = $scoreDisplay->display_score($total_score, $defaultStyle, null, $ignore_score_color);
}*/
$displayScore = $scoreDisplay->display_score($total_score, $defaultStyle, null, $ignoreScoreColor);
if (!empty($model)) {
$displayScore = ExerciseLib::show_score($total_score[0], $total_score[1]);
}
@ -660,7 +669,8 @@ class FlatViewDataGenerator
&$row,
$parentCategoryIdFilter = null,
$evaluationsAlreadyAdded = [],
$ignoreScoreDecorations = false
$ignoreScoreDecorations = false,
$onlyScore = false
) {
// Generate actual data array
$scoreDisplay = ScoreDisplay::instance();
@ -674,6 +684,10 @@ class FlatViewDataGenerator
if (!empty($style)) {
$defaultStyle = (int) $style;
}
if ($onlyScore) {
$defaultStyle = SCORE_PERCENT;
}
$showPercentage = api_get_setting('gradebook_show_percentage_in_reports');
for ($count = 0; $count < $items_count && ($items_start + $count < count($this->evals_links)); $count++) {
/** @var AbstractLink $item */
@ -737,7 +751,7 @@ class FlatViewDataGenerator
);
$temp_score = $scoreDisplay->display_score(
[$item_value, null],
SCORE_DIV_SIMPLE_WITH_CUSTOM,
$defaultStyle,
null,
$ignoreScoreDecorations
);

@ -94,11 +94,16 @@ class GradeBookResult
$line = 1;
$column = 0;
// headers.
foreach ($data[0] as $header_col) {
foreach ($data[0] as $headerData) {
$title = $headerData;
if (isset($headerData['header'])) {
$title = $headerData['header'];
}
$title = html_entity_decode(strip_tags($title));
$worksheet->SetCellValueByColumnAndRow(
$column,
$line,
html_entity_decode(strip_tags($header_col))
$title
);
$column++;
}
@ -141,12 +146,16 @@ class GradeBookResult
$table->addRow();
for ($i = 0; $i < count($data[0]); $i++) {
$table->addCell(1750)->addText(strip_tags($data[0][$i]));
$title = $data[0][$i];
if (isset($data[0][$i]['header'])) {
$title = $data[0][$i]['header'];
}
$title = strip_tags($title);
$table->addCell(1750)->addText($title);
}
foreach ($data[1] as $dataLine) {
$table->addRow();
for ($i = 0; $i < count($dataLine); $i++) {
$table->addCell(1750)->addText(strip_tags($dataLine[$i]));
}

Loading…
Cancel
Save