Fix my_space/session.php page

pull/5656/head
Angel Fernando Quiroz Campos 1 year ago
parent eba34c50eb
commit b9a26f522d
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 57
      public/main/my_space/session.php

@ -4,6 +4,7 @@
use Chamilo\CoreBundle\Component\Utils\ActionIcon; use Chamilo\CoreBundle\Component\Utils\ActionIcon;
use Chamilo\CoreBundle\Component\Utils\ToolIcon; use Chamilo\CoreBundle\Component\Utils\ToolIcon;
use Chamilo\CoreBundle\Component\Utils\ObjectIcon; use Chamilo\CoreBundle\Component\Utils\ObjectIcon;
use Chamilo\CoreBundle\Entity\Course;
ob_start(); ob_start();
$cidReset = true; $cidReset = true;
@ -37,12 +38,14 @@ switch ($action) {
case 'export_to_pdf': case 'export_to_pdf':
$allStudents = isset($_GET['all_students']) && 1 === (int) $_GET['all_students'] ? true : false; $allStudents = isset($_GET['all_students']) && 1 === (int) $_GET['all_students'] ? true : false;
$sessionToExport = isset($_GET['session_to_export']) ? (int) $_GET['session_to_export'] : 0; $sessionToExport = isset($_GET['session_to_export']) ? (int) $_GET['session_to_export'] : 0;
$sessionEntity = $sessionToExport ? api_get_session_entity($sessionToExport) : null;
$type = isset($_GET['type']) ? $_GET['type'] : 'attendance'; $type = isset($_GET['type']) ? $_GET['type'] : 'attendance';
$sessionInfo = api_get_session_info($sessionToExport); if (empty($sessionEntity)) {
if (empty($sessionInfo)) {
api_not_allowed(true); api_not_allowed(true);
} }
$courses = Tracking::get_courses_list_from_session($sessionToExport); $courses = Tracking::get_courses_list_from_session($sessionToExport);
/** @var array<int, Course> $courseEntityList */
$courseEntityList = array_map(fn(array $courseInfo) => api_get_course_entity($courseInfo['c_id']), $courses);
$studentList = [$studentId]; $studentList = [$studentId];
if ($allStudents) { if ($allStudents) {
$users = SessionManager::get_users_by_session($sessionToExport, 0); $users = SessionManager::get_users_by_session($sessionToExport, 0);
@ -61,15 +64,14 @@ switch ($action) {
$timeSpentPerCourse = []; $timeSpentPerCourse = [];
$progressPerCourse = []; $progressPerCourse = [];
foreach ($courses as $course) { foreach ($courseEntityList as $course) {
$courseId = $course['c_id']; $courseTimeSpent = Tracking::get_time_spent_on_the_course($studentId, $course->getId(), $sessionToExport);
$courseTimeSpent = Tracking::get_time_spent_on_the_course($studentId, $courseId, $sessionToExport); $timeSpentPerCourse[$course->getId()] = $courseTimeSpent;
$timeSpentPerCourse[$courseId] = $courseTimeSpent;
$timeSpent += $courseTimeSpent; $timeSpent += $courseTimeSpent;
$sql = "SELECT DISTINCT count(course_access_id) as count $sql = "SELECT DISTINCT count(course_access_id) as count
FROM $table FROM $table
WHERE WHERE
c_id = $courseId AND c_id = {$course->getId()} AND
session_id = $sessionToExport AND session_id = $sessionToExport AND
user_id = $studentId"; user_id = $studentId";
$result = Database::query($sql); $result = Database::query($sql);
@ -77,11 +79,11 @@ switch ($action) {
$numberVisits += $row['count']; $numberVisits += $row['count'];
$courseProgress = Tracking::get_avg_student_progress( $courseProgress = Tracking::get_avg_student_progress(
$studentId, $studentId,
$course['code'], $course,
[], [],
$sessionToExport $sessionEntity
); );
$progressPerCourse[$courseId] = $courseProgress; $progressPerCourse[$course->getId()] = $courseProgress;
$progress += $courseProgress; $progress += $courseProgress;
} }
@ -139,10 +141,8 @@ switch ($action) {
$gradeBookTotal = [0, 0]; $gradeBookTotal = [0, 0];
$totalEvaluations = '0/0 (0%)'; $totalEvaluations = '0/0 (0%)';
foreach ($courses as $course) { foreach ($courseEntityList as $course) {
$courseId = $course['c_id']; $courseInfoItem = api_get_course_info_by_id($course->getId());
$courseInfoItem = api_get_course_info_by_id($courseId);
$courseId = $courseInfoItem['real_id'];
$courseCodeItem = $courseInfoItem['code']; $courseCodeItem = $courseInfoItem['code'];
$isSubscribed = CourseManager::is_user_subscribed_in_course( $isSubscribed = CourseManager::is_user_subscribed_in_course(
@ -153,17 +153,17 @@ switch ($action) {
); );
if ($isSubscribed) { if ($isSubscribed) {
$timeInSeconds = $timeSpentPerCourse[$courseId]; $timeInSeconds = $timeSpentPerCourse[$course->getId()];
$totalCourseTime += $timeInSeconds; $totalCourseTime += $timeInSeconds;
$time_spent_on_course = api_time_to_hms($timeInSeconds); $time_spent_on_course = api_time_to_hms($timeInSeconds);
$progress = $progressPerCourse[$courseId]; $progress = $progressPerCourse[$course->getId()];
$totalProgress += $progress; $totalProgress += $progress;
$bestScore = Tracking::get_avg_student_score( $bestScore = Tracking::get_avg_student_score(
$studentId, $studentId,
$courseCodeItem, $course,
[], [],
$sessionToExport, $sessionEntity,
false, false,
false, false,
true true
@ -213,16 +213,13 @@ switch ($action) {
$tpl = new Template('', false, false, false, true, false, false); $tpl = new Template('', false, false, false, true, false, false);
$tpl->assign('title', $pdfTitle); $tpl->assign('title', $pdfTitle);
$tpl->assign('session_title', $sessionInfo['name']); $tpl->assign('session_title', $sessionEntity->getTitle());
$tpl->assign('session_info', $sessionInfo); $tpl->assign('session_info', $sessionEntity);
$sessionCategoryTitle = ''; $sessionCategoryTitle = '';
if (isset($sessionInfo['session_category_id'])) { if ($sessionEntity->getCategory()) {
$sessionCategory = SessionManager::get_session_category($sessionInfo['session_category_id']); $sessionCategoryTitle = $sessionEntity->getCategory()->getTitle();
if ($sessionCategory) {
$sessionCategoryTitle = $sessionCategory['name'];
}
} }
$dateData = SessionManager::parseSessionDates($sessionInfo, false); $dateData = SessionManager::parseSessionDates($sessionEntity, false);
$dateToString = $dateData['access']; $dateToString = $dateData['access'];
$tpl->assign('session_display_dates', $dateToString); $tpl->assign('session_display_dates', $dateToString);
$tpl->assign('session_category_title', $sessionCategoryTitle); $tpl->assign('session_category_title', $sessionCategoryTitle);
@ -234,7 +231,7 @@ switch ($action) {
'subtitle', 'subtitle',
sprintf( sprintf(
get_lang('InSessionXYouHadTheFollowingResults'), get_lang('InSessionXYouHadTheFollowingResults'),
$sessionInfo['name'] $sessionEntity->getTitle()
) )
); );
$tpl->assign('table_course', $courseTable); $tpl->assign('table_course', $courseTable);
@ -246,7 +243,7 @@ switch ($action) {
$params = [ $params = [
'pdf_title' => get_lang('Resume'), 'pdf_title' => get_lang('Resume'),
'session_info' => $sessionInfo, 'session_info' => $sessionEntity,
'course_info' => '', 'course_info' => '',
'pdf_date' => '', 'pdf_date' => '',
'student_info' => $studentInfo, 'student_info' => $studentInfo,
@ -259,7 +256,7 @@ switch ($action) {
$pdf->setBackground($tpl->theme); $pdf->setBackground($tpl->theme);
$mode = 'D'; $mode = 'D';
$pdfName = $sessionInfo['name'].'_'.$studentInfo['complete_name']; $pdfName = $sessionEntity->getTitle().'_'.$studentInfo['complete_name'];
if ($allStudents) { if ($allStudents) {
$mode = 'F'; $mode = 'F';
$pdfName = $studentInfo['complete_name']; $pdfName = $studentInfo['complete_name'];
@ -295,7 +292,7 @@ switch ($action) {
api_get_path(SYS_ARCHIVE_PATH) api_get_path(SYS_ARCHIVE_PATH)
); );
} }
$name = $sessionInfo['name'].'_'.api_get_utc_datetime().'.zip'; $name = $sessionEntity->getTitle().'_'.api_get_utc_datetime().'.zip';
DocumentManager::file_send_for_download($tempZipFile, true, $name); DocumentManager::file_send_for_download($tempZipFile, true, $name);
exit; exit;
break; break;

Loading…
Cancel
Save