parent
faf0072b5f
commit
c0c810b1fe
@ -0,0 +1,107 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* Courses reporting |
||||||
|
* @package chamilo.reporting |
||||||
|
*/ |
||||||
|
|
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
|
||||||
|
if (api_is_student()) { |
||||||
|
api_not_allowed(true); |
||||||
|
exit; |
||||||
|
} |
||||||
|
|
||||||
|
$em = Database::getManager(); |
||||||
|
$session = null; |
||||||
|
$sessionsInfo = SessionManager::getSessionsFollowedByUser(api_get_user_id(), COURSEMANAGER); |
||||||
|
$coursesData = []; |
||||||
|
|
||||||
|
$form = new FormValidator('work_report'); |
||||||
|
$selectSession = $form->addSelect('session', get_lang('Session'), [0 => get_lang('None')]); |
||||||
|
$form->addButtonFilter(get_lang('Filter')); |
||||||
|
|
||||||
|
foreach ($sessionsInfo as $sessionInfo) { |
||||||
|
$selectSession->addOption($sessionInfo['name'], $sessionInfo['id']); |
||||||
|
} |
||||||
|
|
||||||
|
if ($form->validate()) { |
||||||
|
$sessionId = $form->exportValue('session'); |
||||||
|
$session = $em->find('ChamiloCoreBundle:Session', $sessionId); |
||||||
|
} |
||||||
|
|
||||||
|
if ($session) { |
||||||
|
$userSubscriptions = $session->getUsers(); |
||||||
|
$sessionCourses = $session->getCourses(); |
||||||
|
|
||||||
|
foreach ($sessionCourses as $sessionCourse) { |
||||||
|
$course = $sessionCourse->getCourse(); |
||||||
|
$userCourseSubscriptions = $session->getUserCourseSubscriptionsByStatus($course, 0); |
||||||
|
$courseInfo = [ |
||||||
|
'title' => $course->getTitle() |
||||||
|
]; |
||||||
|
|
||||||
|
$table = new HTML_Table(['class' => 'table table-hover table-striped']); |
||||||
|
$table->setHeaderContents(0, 0, get_lang('OfficialCode')); |
||||||
|
$table->setHeaderContents(0, 1, get_lang('StudentName')); |
||||||
|
$table->setHeaderContents(0, 2, get_lang('TimeSpentOnThePlatform')); |
||||||
|
$table->setHeaderContents(0, 3, get_lang('FirstLoginInPlatform')); |
||||||
|
$table->setHeaderContents(0, 4, get_lang('LatestLoginInPlatform')); |
||||||
|
$table->setHeaderContents(0, 5, get_lang('Course')); |
||||||
|
$table->setHeaderContents(0, 6, get_lang('Progress')); |
||||||
|
$table->setHeaderContents(0, 7, get_lang('SentDate')); |
||||||
|
|
||||||
|
foreach ($userCourseSubscriptions as $userCourseSubscription) { |
||||||
|
$user = $userCourseSubscription->getUser(); |
||||||
|
|
||||||
|
$lastPublication = Tracking::getLastStudentPublication($user, 'work', $course, $session); |
||||||
|
$lastPublicationFormatted = null; |
||||||
|
|
||||||
|
if ($lastPublication) { |
||||||
|
$lastPublicationFormatted = api_format_date( |
||||||
|
$lastPublication->getSentDate()->getTimestamp(), |
||||||
|
DATE_TIME_FORMAT_SHORT |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
$data = [ |
||||||
|
$user->getOfficialCode(), |
||||||
|
$user->getCompleteName(), |
||||||
|
api_time_to_hms( |
||||||
|
Tracking::get_time_spent_on_the_platform($user->getId()) |
||||||
|
), |
||||||
|
Tracking::get_first_connection_date($user->getId()), |
||||||
|
Tracking::get_last_connection_date($user->getId()), |
||||||
|
Tracking::get_avg_student_score($user->getId(), $course->getCode(), null, $session->getId()), |
||||||
|
Tracking::get_avg_student_progress($user->getId(), $course->getCode(), null, $session->getId()), |
||||||
|
$lastPublicationFormatted |
||||||
|
]; |
||||||
|
|
||||||
|
$table->addRow($data); |
||||||
|
} |
||||||
|
|
||||||
|
$coursesData[] = [ |
||||||
|
'title' => $course->getTitle(), |
||||||
|
'detail_table' => $table->toHtml() |
||||||
|
]; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$interbreadcrumb[] = [ |
||||||
|
'url' => api_get_path(WEB_CODE_PATH) . 'mySpace/index.php', |
||||||
|
'name' => get_lang('MySpace') |
||||||
|
]; |
||||||
|
|
||||||
|
$view = new Template(get_lang('WorkReport')); |
||||||
|
$view->assign('header', get_lang('WorkReport')); |
||||||
|
$view->assign('form', $form->returnForm()); |
||||||
|
|
||||||
|
if ($session) { |
||||||
|
$view->assign('session', ['name' => $session->getName()]); |
||||||
|
$view->assign('courses', $coursesData); |
||||||
|
} |
||||||
|
|
||||||
|
$template = $view->get_template('my_space/works.tpl'); |
||||||
|
$content = $view->fetch($template); |
||||||
|
$view->assign('content', $content); |
||||||
|
$view->display_one_col_template(); |
@ -0,0 +1,8 @@ |
|||||||
|
{{ form }} |
||||||
|
{% if session %} |
||||||
|
<h3 class="page-header">{{ session.name }}</h3> |
||||||
|
{% for course in courses %} |
||||||
|
<h4>{{ course.title }}</h4> |
||||||
|
{{ course.detail_table }} |
||||||
|
{% endfor %} |
||||||
|
{% endif %} |
Loading…
Reference in new issue