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

Loading…
Cancel
Save