Survey report: Fix csv export (WIP)

Todo remove debug
pull/3846/head
Julio Montoya 5 years ago
parent cc9cb130ff
commit 4cbd1ad193
  1. 77
      main/survey/survey_list.php

@ -239,7 +239,7 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
if (empty($userAnswers)) {
continue;
}
//echo '<pre>';
foreach ($questionsOptions as $question) {
foreach ($usersWithInvitation as $userData) {
$userIdItem = $userData['user_id'];
@ -267,6 +267,32 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
$finalAnswer = implode(' - ', $items);
}
break;
/*case 'dropdown':
$finalAnswer = '';
if (isset($all_answers[$userIdItem][$question['question_id']])) {
$optionAnswer = [];
foreach ($all_answers[$userIdItem][$question['question_id']] as $option) {
if ($userIdItem == 3368) {
//var_dump($question['options'], $option);
}
foreach ($question['options'] as $optionId => $text) {
if ($option['option_id'] == $optionId) {
$optionAnswer[] = api_html_entity_decode(strip_tags($text));
break;
}
}
}
$finalAnswer = implode(' - ', $optionAnswer);
}
if (empty($finalAnswer)) {
//$finalAnswer = "ju $surveyId user $userIdItem";
}
if ($userIdItem == 3368) {
//var_dump($surveyId, $question, $finalAnswer);
//var_dump($all_answers[$userIdItem][$question['question_id']]);
}
break;*/
default:
$finalAnswer = '';
if (isset($all_answers[$userIdItem][$question['question_id']])) {
@ -278,6 +304,10 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
}
}
}
if ($userIdItem == 3368) {
//error_log("$surveyId : $finalAnswer");
//error_log(print_r($all_answers[$userIdItem][$question['question_id']]));
}
break;
}
$userAnswers[$userIdItem][$surveyId][$question['question_id']] = $finalAnswer;
@ -293,7 +323,11 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
@$spreadsheet = new PHPExcel();
$counter = 0;
foreach ($classes as $class) {
$usersInClass = $usersInClassFullList[$class['id']];
$classId = $class['id'];
$usersInClass = $usersInClassFullList[$classId];
if ($classId == 47) {
//error_log(count($usersInClass));
}
if (empty($usersInClass)) {
continue;
}
@ -317,6 +351,11 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
$questions = $survey['questions'];
$questionsOriginal = $survey['questions'];
$usersWithInvitation = $survey['users_with_invitation'];
if ($classId == 47) {
/*error_log("s: $surveyId");
error_log(count($usersWithInvitation));
error_log(implode(',', array_column($usersWithInvitation, 'complete_name')));*/
}
if (empty($usersWithInvitation)) {
continue;
}
@ -358,14 +397,16 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
if (is_array($answerData)) {
$answerData = implode(', ', $answerData);
}
$answerData = strip_tags(trim($answerData));
$answerDataOriginal = $answerData;
$answerData = $answerDataOriginal = strip_tags(trim($answerData));
$answerDataMissing = '';
if (isset($question['answers']) && !in_array($answerData, $question['answers'])) {
$answerDataMissing = 'Answer not found in list';
//$answerDataMissing = 'Answer not found in list';
$answerData = '';
}
if ($debug) {
$answerData = "$answerData - $answerDataMissing - s: $surveyId u inv: {$userAnswer['lastname']} col: $userColumn prev: $previousSurveyQuestionsCount";
$answerData = "$answerData - $answerDataOriginal - $answerDataMissing - s: $surveyId u inv: {$userAnswer['lastname']} col: $userColumn prev: $previousSurveyQuestionsCount";
}
// Check if answer exists in the question list.
$cell = @$page->setCellValueByColumnAndRow(
@ -396,6 +437,9 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
$rowStudent++;
}
if ($classId == 47) {
//error_log(count($userInvitationWithData));
}
if (empty($userInvitationWithData)) {
continue;
}
@ -427,11 +471,25 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
$coordinate = $page->getCellByColumnAndRow($column, 1)->getCoordinate();
$firstCoordinate = $coordinate;
$questionId = $question['question_id'];
if ($classId == 47) {
/*echo '<pre>---';
var_dump($column);
var_dump($question['question']);
var_dump(count($usersWithInvitation));*/
}
foreach ($usersWithInvitation as $userAnswer) {
$userId = $userAnswer['user_id'];
$title = $survey['group_title'].' - '.$userAnswer['complete_name'];
$cell = @$page->setCellValueByColumnAndRow(
$column,
1,
$questionTitle,
true
);
if ($debug) {
$title = $userAnswer['id'].' - s:'.$surveyId.' - prev:'.$previousSurveyQuestionsCount.' '.$userAnswer['lastname'];
$title = 's:'.$surveyId.' - q '.$question['question_id'].' prev:'.$previousSurveyQuestionsCount.' '.$userAnswer['lastname'];
}
$cell = @$page->setCellValueByColumnAndRow(
$column,
@ -441,13 +499,15 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
);
$cell->getStyle()->getAlignment()->setTextRotation(90);
$spreadsheet->getActiveSheet()->getRowDimension(2)->setRowHeight(250);
$lastColumn = $column;
$column++;
$questionsInSurvey++;
}
$coordinate = $page->getCellByColumnAndRow($lastColumn, 1)->getCoordinate();
$lastCoordinate = $coordinate;
}
}
}
$previousSurveyQuestionsCount += $questionsInSurvey;
@ -563,10 +623,12 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
$counter++;
}
//exit;
$page = @$spreadsheet->createSheet($counter);
@$page->setTitle(get_lang('Questions'));
$row = 1;
if (!$debug) {
foreach ($surveyList as $survey) {
$questions = $survey['questions'];
$questionsOriginal = $survey['questions'];
@ -607,6 +669,7 @@ if (isset($_POST['action']) && $_POST['action'] && isset($_POST['id']) && is_arr
}
}
}
}
$spreadsheet->setActiveSheetIndex(0);
$file = api_get_path(SYS_ARCHIVE_PATH).uniqid('report', true);

Loading…
Cancel
Save