Skip to content

Commit

Permalink
Surveys: new export by class BT#18008
Browse files Browse the repository at this point in the history
  • Loading branch information
jmontoyaa committed Jan 22, 2021
1 parent 997a697 commit c5c861d
Showing 1 changed file with 128 additions and 25 deletions.
153 changes: 128 additions & 25 deletions main/survey/survey_list.php
Expand Up @@ -267,32 +267,147 @@
@$spreadsheet = new PHPExcel();
$counter = 0;
foreach ($classes as $class) {
$users = $userGroup->getUserListByUserGroup($class['id'], 'u.lastname ASC');
$users = $userList = $userGroup->getUserListByUserGroup($class['id'], 'u.lastname ASC');
$page = @$spreadsheet->createSheet($counter);
@$page->setTitle($class['name']);
$firstColumn = 3;
$column = 3;
$columnQuestion = 3;
@$page->setCellValueByColumnAndRow(
0,
2,
$class['name']
);
foreach ($surveyList as $survey) {
$questions = $survey['questions'];
$questionsOriginal = $survey['questions'];
$usersWithAnswers = $survey['user_with_answers'];
$goodQuestionList = [];
foreach ($questions as $question) {
$questionTitle = $question['question'];
if (strpos($question['question'], '{{')) {
$firstColumn = $column;
$cell = @$page->setCellValueByColumnAndRow(
$column,
1,
str_replace('{{student_full_name}}', '', $question['question'])
);

$coordinate = $page->getCellByColumnAndRow($column, 1)->getCoordinate();
$firstCoordinate = $coordinate;
$questionId = $question['question_id'];
//$column++;
$rowStudent = 3;
foreach ($users as $user) {
$userId = $user['id'];
$completeName = $user['firstname'].' '.$user['lastname'];
$questionTitle = str_replace(
'{{student_full_name}}',
$completeName,
$question['question']
);
$goodQuestionId = null;
foreach ($questions as $questionData) {
if ($questionData['question'] === $questionTitle) {
$goodQuestionId = $questionData['question_id'];
$goodQuestionList[] = $questionData['question_id'];
break;
}
}
$cell = @$page->setCellValueByColumnAndRow(
$column,
2,
"$questionTitle ".$goodQuestionId,
true
);
$cell->getStyle()->getAlignment()->setTextRotation(90);
$spreadsheet->getActiveSheet()->getRowDimension(2)->setRowHeight(250);
$lastColumn = $column;
$userColumn = $column;
$questionCounter = 0;
$questionPosition = $column + $questionCounter;
$column++;
$userRow = 3;
$rowStudent = 3;
$userColumn++;
/*foreach ($questionsOriginal as $questionData) {
if (strpos($questionData['question'], '{{') === false) {
if ($questionTitle === $questionData['question'] &&
isset($survey['user_answers'][$userId])
) {
//var_dump($questionData['question']);
foreach ($survey['user_answers'][$userId][$survey['survey_id']] as $questionId => $answerData) {
if ($questionData['question_id'] == $questionId) {
if (is_array($answerData)) {
$answerData = implode(', ', $answerData);
}
@$page->setCellValueByColumnAndRow(
$questionPosition,
$rowStudent,
$answerData,
true
);
break;
}
}
break;
}
}*/


$questionPosition++;
}

//$rowStudent++;
$coordinate = $page->getCellByColumnAndRow($lastColumn, 1)->getCoordinate();
$lastCoordinate = $coordinate;

if (!empty($lastCoordinate)) {
$page->mergeCells($firstCoordinate.':'.$lastCoordinate);
}
}
}


$rowStudent = 3;
foreach ($userList as $userData) {
$myUserId = $userData['id'];
$userColumn = 3;
foreach ($goodQuestionList as $questionId) {
//$questionId = $questionData['question_id'];
//var_dump($questionId);
//if (strpos($questionData['question'], '{{') === false) {
$answerData = '';
if (isset($survey['user_answers'][$myUserId]) &&
isset($survey['user_answers'][$myUserId][$survey['survey_id']][$questionId])
) {
$answerData = $survey['user_answers'][$myUserId][$survey['survey_id']][$questionId];
}
@$page->setCellValueByColumnAndRow(
$userColumn,
$rowStudent,
$answerData,
//"$answerData : [$userColumn $rowStudent] $questionId",
true
);
$userColumn++;
//}
}
$rowStudent++;
}
//exit;


if (false)
foreach ($usersWithAnswers as $userAnswer) {
$userId = $userAnswer['user_id'];
$cell = @$page->setCellValueByColumnAndRow(
$column,
1,
//$survey['title'].$survey['group_title'].' - '.$userAnswer['complete_name']
$survey['group_title'].' - '.$userAnswer['complete_name']
);
$coordinate = $page->getCellByColumnAndRow($column, 1)->getCoordinate();
/*if (!empty($coordinate)) {
$dimension = $cell->getColumnDimension($coordinate);
if ($dimension) {
$cell->getColumnDimension($coordinate)->setAutoSize(false);
$cell->getColumnDimension($coordinate)->setWidth("120");
}
}*/
//$page->getCellByColumnAndRow($column, 1)->getColumnDimension($coordinate)->setWidth(80);
$questionCounter = 0;
$firstCoordinate = $coordinate;
$lastCoordinate = '';
Expand All @@ -307,16 +422,6 @@
true
);

//$coordinate = @$page->getCellByColumnAndRow($questionPosition, 2)->getCoordinate();
//$page->getColumnDimension($coordinate);
/*$dimension = @$page->getColumnDimension($questionPosition);
if ($dimension) {
$dimension->setAutoSize(true);
$dimension->setWidth(200);
//$cell->getColumnDimension($coordinate)->setAutoSize(false);
//$cell->getColumnDimension($coordinate)->setWidth("120");
}*/

$coordinate = $page->getCellByColumnAndRow($questionPosition, 1)->getCoordinate();
$lastCoordinate = $coordinate;
$rowStudent = 3;
Expand Down Expand Up @@ -351,7 +456,6 @@
}
$rowStudent++;
}

$questionCounter++;
$columnQuestion++;
}
Expand All @@ -364,7 +468,7 @@
}
}

$questionPerUser = [];
/*$questionPerUser = [];
foreach ($questions as $question) {
if (strpos($question['question'], '{{')) {
} else {
Expand All @@ -376,12 +480,11 @@
$questionPerUser[$user['id']][] = $question['question_id'];
}
}
}
}*/
}

$row = 2;
$row = 3;
foreach ($users as $user) {
$userId = $user['id'];
$columnUser = 0;
@$page->setCellValueByColumnAndRow($columnUser++, $row, $user['lastname']);
@$page->setCellValueByColumnAndRow($columnUser++, $row, $user['firstname']);
Expand Down

0 comments on commit c5c861d

Please sign in to comment.