';
- if ((isset($action) && $action == 'calendar_edit') && (isset($calendar_id) && $calendar_id == $calendar['id'])) {
+ if ((isset($action) && $action == 'calendar_edit') &&
+ (isset($calendar_id) && $calendar_id == $calendar['id'])
+ ) {
// calendar edit form
echo '
';
- $form = new FormValidator('attendance_calendar_edit','POST','index.php?action=calendar_edit&attendance_id='.$attendance_id.'&calendar_id='.$calendar_id.'&'.api_get_cidreq().$param_gradebook,'');
+ $form = new FormValidator(
+ 'attendance_calendar_edit',
+ 'POST',
+ 'index.php?action=calendar_edit&attendance_id=' . $attendance_id . '&calendar_id=' . $calendar_id . '&' . api_get_cidreq() . $param_gradebook,
+ ''
+ );
$form->addElement('date_time_picker', 'date_time', '', array('form_name'=>'attendance_calendar_edit'), 5);
$defaults['date_time'] = $calendar['date_time'];
$form->addElement('style_submit_button', null, get_lang('Save'), 'class="save"');
@@ -107,10 +121,15 @@ if (isset($action) && $action == 'calendar_add') {
} else {
echo Display::return_icon('lp_calendar_event.png', get_lang('DateTime')).' '.substr($calendar['date_time'], 0, strlen($calendar['date_time'])- 3) .' ';
if (!$is_locked_attendance || api_is_platform_admin()) {
- echo '
';
- echo ''.Display::return_icon('edit.png', get_lang('Edit'), array('style'=>'vertical-align:middle'), ICON_SIZE_SMALL).' ';
- echo ''.Display::return_icon('delete.png', get_lang('Delete'), array('style'=>'vertical-align:middle'), ICON_SIZE_SMALL).'';
- echo '';
+ if (api_is_allowed_to_edit()) {
+ echo '
';
+ echo ''.
+ Display::return_icon('edit.png', get_lang('Edit'), array('style'=>'vertical-align:middle'), ICON_SIZE_SMALL).' ';
+ echo ''.
+ Display::return_icon('delete.png', get_lang('Delete'), array('style'=>'vertical-align:middle'), ICON_SIZE_SMALL).'';
+ echo '';
+ }
+
}
}
echo '
';
diff --git a/main/attendance/attendance_controller.php b/main/attendance/attendance_controller.php
index 921c160e82..6d35d5efec 100755
--- a/main/attendance/attendance_controller.php
+++ b/main/attendance/attendance_controller.php
@@ -212,10 +212,12 @@ class AttendanceController
}
/**
- * It's used for controlling attendace sheet (list, add),
+ * It's used for controlling attendance sheet (list, add),
* render to attendance_sheet view
- * @param string action
- * @param int attendance id
+ * @param string $action
+ * @param int $attendance_id
+ * @param int $student_id
+ * @param bool $edit
*/
public function attendance_sheet($action, $attendance_id, $student_id = 0, $edit = true)
{
@@ -230,8 +232,14 @@ class AttendanceController
$filter_type = $_REQUEST['filter'];
}
+ $isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
+ api_get_user_id(),
+ api_get_course_info()
+ );
+
if ($edit == true) {
- if (api_is_allowed_to_edit(null, true)) {
+
+ if (api_is_allowed_to_edit(null, true) || $isDrhOfCourse) {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
}
} else {
@@ -242,11 +250,12 @@ class AttendanceController
}
if (api_is_allowed_to_edit(null, true) ||
- api_is_coach(api_get_session_id(), api_get_course_id())
+ api_is_coach(api_get_session_id(), api_get_course_id()) ||
+ $isDrhOfCourse
) {
- $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
+ $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
} else {
- $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);
+ $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);
}
$data['faults'] = $attendance->get_faults_of_user($user_id, $attendance_id);
@@ -257,7 +266,6 @@ class AttendanceController
$data['next_attendance_calendar_datetime'] = $attendance->get_next_attendance_calendar_datetime($attendance_id);
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
-
if (isset($_POST['hidden_input'])) {
foreach ($_POST['hidden_input'] as $cal_id) {
$users_present = array();
diff --git a/main/attendance/attendance_list.php b/main/attendance/attendance_list.php
index 0039dc4c74..f871895e89 100755
--- a/main/attendance/attendance_list.php
+++ b/main/attendance/attendance_list.php
@@ -25,7 +25,12 @@ if ($attendance->get_number_of_attendances() == 0) {
$attendance->set_description(get_lang('Attendances'));
$attendance->attendance_add();
}
-$table = new SortableTable('attendance_list', array('Attendance', 'get_number_of_attendances'), array('Attendance', 'get_attendance_data'), $default_column);
+$table = new SortableTable(
+ 'attendance_list',
+ array('Attendance', 'get_number_of_attendances'),
+ array('Attendance', 'get_attendance_data'),
+ $default_column
+);
$table->set_additional_parameters($parameters);
$table->set_header(0, '', false, array('style'=>'width:20px;'));
$table->set_header(1, get_lang('Name'), true );
diff --git a/main/attendance/attendance_sheet.php b/main/attendance/attendance_sheet.php
index 9aab5309f1..d74b70ae5b 100755
--- a/main/attendance/attendance_sheet.php
+++ b/main/attendance/attendance_sheet.php
@@ -8,23 +8,36 @@
* @package chamilo.attendance
*/
-// protect a course script
+// Protect a course script
api_protect_course_script(true);
+$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
+ api_get_user_id(),
+ api_get_course_info()
+);
+
if (api_is_allowed_to_edit(null, true) ||
- api_is_coach(api_get_session_id(), api_get_course_id())
+ api_is_coach(api_get_session_id(), api_get_course_id()) ||
+ $isDrhOfCourse
) {
$param_gradebook = '';
if (isset($_SESSION['gradebook'])) {
$param_gradebook = '&gradebook='.$_SESSION['gradebook'];
}
- $form = new FormValidator('filter', 'post', 'index.php?action=attendance_sheet_list&'.api_get_cidreq().$param_gradebook.'&attendance_id='.$attendance_id, null, array('class' => 'form-search pull-left'));
+ $form = new FormValidator(
+ 'filter',
+ 'post',
+ 'index.php?action=attendance_sheet_list&' . api_get_cidreq() . $param_gradebook . '&attendance_id=' . $attendance_id,
+ null,
+ array('class' => 'form-search pull-left')
+ );
+
$values = array(
- 'all' => get_lang('All'),
- 'today' => get_lang('Today'),
- 'all_done' => get_lang('AllDone'),
- 'all_not_done' => get_lang('AllNotDone')
+ 'all' => get_lang('All'),
+ 'today' => get_lang('Today'),
+ 'all_done' => get_lang('AllDone'),
+ 'all_not_done' => get_lang('AllNotDone')
);
$today = api_convert_and_format_date(null, DATE_FORMAT_SHORT);
$exists_attendance_today = false;
diff --git a/main/inc/lib/attendance.lib.php b/main/inc/lib/attendance.lib.php
index 9f4f2da407..4eb5cef78a 100755
--- a/main/inc/lib/attendance.lib.php
+++ b/main/inc/lib/attendance.lib.php
@@ -142,7 +142,7 @@ class Attendance
while ($attendance = Database::fetch_row($res)) {
$student_param = '';
- if (api_is_drh() && ($_GET['student_id'])) {
+ if (api_is_drh() && $_GET['student_id']) {
$student_param = '&student_id='.Security::remove_XSS($_GET['student_id']);
}
@@ -152,11 +152,17 @@ class Attendance
$session_star = api_get_session_image(api_get_session_id(), $user_info['status']);
}
if ($attendance[5] == 1) {
- if (api_is_allowed_to_edit(null, true)) {
- //Link to edit
+
+ $isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
+ api_get_user_id(),
+ api_get_course_info()
+ );
+
+ if (api_is_allowed_to_edit(null, true) || $isDrhOfCourse) {
+ // Link to edit
$attendance[1] = '
'.$attendance[1].''.$session_star;
} else {
- //Link to view
+ // Link to view
$attendance[1] = '
'.$attendance[1].''.$session_star;
}