* @author Julio Montoya reworked 2010
*
* @package chamilo.attendance
*/
// Protect a course script
api_protect_course_script(true);
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
api_get_user_id(),
api_get_course_info()
) || api_is_drh();
if (api_is_allowed_to_edit(null, true) ||
api_is_coach(api_get_session_id(), api_get_course_int_id()) ||
$isDrhOfCourse
) {
$groupId = isset($_REQUEST['group_id']) ? intval($_REQUEST['group_id']) : null;
$form = new FormValidator(
'filter',
'post',
'index.php?action=attendance_sheet_list&'.api_get_cidreq().'&attendance_id='.$attendance_id,
null,
[],
'inline'
);
$values = [
'all' => get_lang('All'),
'today' => get_lang('Today'),
'all_done' => get_lang('All done'),
'all_not_done' => get_lang('All not done'),
];
$today = api_convert_and_format_date(null, DATE_FORMAT_SHORT);
$exists_attendance_today = false;
if (!empty($attendant_calendar_all)) {
$values[''] = '---------------';
foreach ($attendant_calendar_all as $attendance_date) {
$includeCalendar = true;
if (isset($attendance_date['groups']) && !empty($groupId)) {
foreach ($attendance_date['groups'] as $group) {
if ($groupId == $group['group_id']) {
$includeCalendar = true;
break;
} else {
$includeCalendar = false;
}
}
}
if ($today == $attendance_date['date']) {
$exists_attendance_today = true;
}
if ($includeCalendar) {
$values[$attendance_date['id']] = $attendance_date['date_time'];
}
}
}
if (!$exists_attendance_today) {
echo Display::return_message(
get_lang('There is no class scheduled today, try picking another day or add your attendance entry yourself using the action icons.'),
'warning'
);
}
$form->addSelect(
'filter',
get_lang('Filter'),
$values,
['id' => 'filter_id', 'onchange' => 'submit();']
);
$groupList = GroupManager::get_group_list(null, null, 1);
$groupIdList = ['--'];
foreach ($groupList as $group) {
$groupIdList[$group['id']] = $group['name'];
}
if (!empty($groupList)) {
$form->addSelect('group_id', get_lang('Group'), $groupIdList);
}
if (isset($_REQUEST['filter'])) {
if (in_array($_REQUEST['filter'], array_keys($values))) {
$default_filter = $_REQUEST['filter'];
}
} else {
$default_filter = 'today';
}
$renderer = $form->defaultRenderer();
$renderer->setCustomElementTemplate('
{label}
{element}
');
$form->setDefaults(
[
'filter' => $default_filter,
'group_id' => $groupId,
]
);
if (!$is_locked_attendance || api_is_platform_admin()) {
$actionsLeft = ''.
Display::return_icon('attendance_calendar.png', get_lang('Attendance calendar'), '', ICON_SIZE_MEDIUM).'';
$actionsLeft .= ''.
Display::return_icon('pdf.png', get_lang('Export to PDF'), '', ICON_SIZE_MEDIUM).'';
$actionsRight = $form->returnForm();
$toolbar = Display::toolbarAction('toolbar-attendance', [$actionsLeft, $actionsRight]);
echo $toolbar;
}
$message_information = get_lang('The attendance sheets allow you to specify a list of dates in which you will report attendance to your courses');
if (!empty($message_information)) {
$message = ''.get_lang('Information').'
';
$message .= $message_information;
echo Display::return_message($message, 'normal', false);
}
if ($is_locked_attendance) {
echo Display::return_message(get_lang('The attendance sheet is locked.'), 'warning', false);
}
$param_filter = '&filter='.Security::remove_XSS($default_filter).'&group_id='.$groupId;
if (count($users_in_course) > 0) {
?>
'.
get_lang('There are no registered learners inside the course').'',
'warning',
false
);
}
} else {
echo Display::page_header(get_lang('Report of attendance sheets'));
// View for students?>