|
@@ -2,190 +2,185 @@
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
|
|
/**
|
|
|
- * This file contains class used like controller, it should be included inside a dispatcher file (e.g: index.php)
|
|
|
+ * This file contains class used like controller,
|
|
|
+ * it should be included inside a dispatcher file (e.g: index.php)
|
|
|
*
|
|
|
- * !!! WARNING !!! : ALL DATES IN THIS MODULE ARE STORED IN UTC ! DO NOT CONVERT DURING THE TRANSITION FROM CHAMILO 1.8.x TO 2.0
|
|
|
+ * !!! WARNING !!! : ALL DATES IN THIS MODULE ARE STORED IN UTC !
|
|
|
+ * DO NOT CONVERT DURING THE TRANSITION FROM CHAMILO 1.8.x TO 2.0
|
|
|
*
|
|
|
* @author Christian Fasanando <christian1827@gmail.com>
|
|
|
* @author Julio Montoya <gugli100@gmail.com> lot of bugfixes + improvements
|
|
|
* @package chamilo.attendance
|
|
|
*/
|
|
|
+class AttendanceController
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * Constructor
|
|
|
+ */
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ $this->toolname = 'attendance';
|
|
|
+ $this->view = new View($this->toolname);
|
|
|
+ }
|
|
|
|
|
|
-/**
|
|
|
- * Controller script. Prepares the common background variables to give to the scripts corresponding to
|
|
|
- * the requested action
|
|
|
- * @package chamilo.attendance
|
|
|
- */
|
|
|
+ /**
|
|
|
+ * It's used for listing attendace,
|
|
|
+ * render to attendance_list view
|
|
|
+ * @param boolean true for listing history (optional)
|
|
|
+ * @param array message for showing by action['edit','add','delete'] (optional)
|
|
|
+ */
|
|
|
+ public function attendance_list($history = false, $messages = array())
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ $data = array();
|
|
|
|
|
|
- class AttendanceController
|
|
|
- {
|
|
|
- /**
|
|
|
- * Constructor
|
|
|
- */
|
|
|
- public function __construct() {
|
|
|
- $this->toolname = 'attendance';
|
|
|
- $this->view = new View($this->toolname);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * It's used for listing attendace,
|
|
|
- * render to attendance_list view
|
|
|
- * @param boolean true for listing history (optional)
|
|
|
- * @param array message for showing by action['edit','add','delete'] (optional)
|
|
|
- */
|
|
|
- public function attendance_list($history=false,$messages=array()) {
|
|
|
- $attendance = new Attendance();
|
|
|
- $data = array();
|
|
|
-
|
|
|
- // render to the view
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_list');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * It's used for adding attendace,
|
|
|
- * render to attendance_add or attendance_list view
|
|
|
- */
|
|
|
- public function attendance_add() {
|
|
|
-
|
|
|
- $attendance = new Attendance();
|
|
|
- $data = array();
|
|
|
-
|
|
|
- if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
-
|
|
|
- if (!empty($_POST['title'])) {
|
|
|
- $check = Security::check_token();
|
|
|
- if ($check) {
|
|
|
- $attendance->set_name($_POST['title']);
|
|
|
- $attendance->set_description($_POST['description']);
|
|
|
- $attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']);
|
|
|
- $attendance->set_attendance_weight($_POST['attendance_weight']);
|
|
|
- $link_to_gradebook = false;
|
|
|
- if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
|
|
|
- $link_to_gradebook = true;
|
|
|
- }
|
|
|
+ // render to the view
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_list');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * It's used for adding attendace,
|
|
|
+ * render to attendance_add or attendance_list view
|
|
|
+ */
|
|
|
+ public function attendance_add()
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ $data = array();
|
|
|
+
|
|
|
+ if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
+
|
|
|
+ if (!empty($_POST['title'])) {
|
|
|
+ $check = Security::check_token();
|
|
|
+ if ($check) {
|
|
|
+ $attendance->set_name($_POST['title']);
|
|
|
+ $attendance->set_description($_POST['description']);
|
|
|
+ $attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']);
|
|
|
+ $attendance->set_attendance_weight($_POST['attendance_weight']);
|
|
|
+ $link_to_gradebook = false;
|
|
|
+ if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
|
|
|
+ $link_to_gradebook = true;
|
|
|
+ }
|
|
|
$attendance->category_id = $_POST['category_id'];
|
|
|
- $last_id = $attendance->attendance_add($link_to_gradebook);
|
|
|
- Security::clear_token();
|
|
|
- }
|
|
|
- $param_gradebook = '';
|
|
|
- if (isset($_SESSION['gradebook'])) {
|
|
|
- $param_gradebook = '&gradebook='.Security::remove_XSS($_SESSION['gradebook']);
|
|
|
- }
|
|
|
- //header('location:index.php?action=attendance_sheet_list&attendance_id='.$last_id.'&'.api_get_cidreq().$param_gradebook);
|
|
|
+ $last_id = $attendance->attendance_add($link_to_gradebook);
|
|
|
+ Security::clear_token();
|
|
|
+ }
|
|
|
+ $param_gradebook = '';
|
|
|
+ if (isset($_SESSION['gradebook'])) {
|
|
|
+ $param_gradebook = '&gradebook='.Security::remove_XSS($_SESSION['gradebook']);
|
|
|
+ }
|
|
|
+ //header('location:index.php?action=attendance_sheet_list&attendance_id='.$last_id.'&'.api_get_cidreq().$param_gradebook);
|
|
|
header('location:index.php?action=calendar_add&attendance_id='.$last_id.'&'.api_get_cidreq().$param_gradebook);
|
|
|
- exit;
|
|
|
- } else {
|
|
|
- $data['error'] = true;
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_add');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
- } else {
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_add');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * It's used for editing attendace,
|
|
|
- * render to attendance_edit or attendance_list view
|
|
|
- * @param int attendance id
|
|
|
- */
|
|
|
- public function attendance_edit($attendance_id) {
|
|
|
- $attendance = new Attendance();
|
|
|
- $data = array();
|
|
|
- $attendance_id = intval($attendance_id);
|
|
|
-
|
|
|
- if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
-
|
|
|
- if (!empty($_POST['title'])) {
|
|
|
- $check = Security::check_token();
|
|
|
- if ($check) {
|
|
|
- $attendance->set_name($_POST['title']);
|
|
|
- $attendance->set_description($_POST['description']);
|
|
|
- $attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']);
|
|
|
- $attendance->set_attendance_weight($_POST['attendance_weight']);
|
|
|
+ exit;
|
|
|
+ } else {
|
|
|
+ $data['error'] = true;
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_add');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_add');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * It's used for editing attendace,
|
|
|
+ * render to attendance_edit or attendance_list view
|
|
|
+ * @param int attendance id
|
|
|
+ */
|
|
|
+ public function attendance_edit($attendance_id)
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ $data = array();
|
|
|
+ $attendance_id = intval($attendance_id);
|
|
|
+
|
|
|
+ if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
+
|
|
|
+ if (!empty($_POST['title'])) {
|
|
|
+ $check = Security::check_token();
|
|
|
+ if ($check) {
|
|
|
+ $attendance->set_name($_POST['title']);
|
|
|
+ $attendance->set_description($_POST['description']);
|
|
|
+ $attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']);
|
|
|
+ $attendance->set_attendance_weight($_POST['attendance_weight']);
|
|
|
|
|
|
$attendance->category_id = $_POST['category_id'];
|
|
|
- $link_to_gradebook = false;
|
|
|
- if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
|
|
|
- $link_to_gradebook = true;
|
|
|
- }
|
|
|
- $last_id = $attendance->attendance_edit($attendance_id,$link_to_gradebook);
|
|
|
- Security::clear_token();
|
|
|
-
|
|
|
- $param_gradebook = '';
|
|
|
- if (isset($_SESSION['gradebook'])) {
|
|
|
- $param_gradebook = '&gradebook='.Security::remove_XSS($_SESSION['gradebook']);
|
|
|
- }
|
|
|
- header('location:index.php?action=attendance_list&'.api_get_cidreq().$param_gradebook);
|
|
|
- exit;
|
|
|
- }
|
|
|
- } else {
|
|
|
- $data['attendance_id'] = $_POST['attendance_id'];
|
|
|
- $data['error'] = true;
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_edit');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- // default values
|
|
|
- $attendance_data = $attendance->get_attendance_by_id($attendance_id);
|
|
|
- $data['attendance_id'] = $attendance_data['id'];
|
|
|
- $data['title'] = $attendance_data['name'];
|
|
|
- $data['description'] = $attendance_data['description'];
|
|
|
- $data['attendance_qualify_title'] = $attendance_data['attendance_qualify_title'];
|
|
|
- $data['attendance_weight'] = $attendance_data['attendance_weight'];
|
|
|
-
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_edit');
|
|
|
- $this->view->render();
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * It's used for delete attendaces
|
|
|
- * render to attendance_list view
|
|
|
- * @param int attendance id
|
|
|
- */
|
|
|
- public function attendance_delete($attendance_id) {
|
|
|
- $attendance = new Attendance();
|
|
|
- if (!empty($attendance_id)) {
|
|
|
- $affected_rows = $attendance->attendance_delete($attendance_id);
|
|
|
- }
|
|
|
- if ($affected_rows) {
|
|
|
- $message['message_attendance_delete'] = true;
|
|
|
- }
|
|
|
- $this->attendance_list();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Restores an attendance entry and fallback to attendances rendering
|
|
|
- * @param int attendance id
|
|
|
- */
|
|
|
- public function attendance_restore($attendance_id) {
|
|
|
- $attendance = new Attendance();
|
|
|
- if (!empty($attendance_id)) {
|
|
|
- $affected_rows = $attendance->attendance_restore($attendance_id);
|
|
|
- }
|
|
|
- if ($affected_rows) {
|
|
|
- $message['message_attendance_restore'] = true;
|
|
|
- }
|
|
|
- $this->attendance_list();
|
|
|
- }
|
|
|
+ $link_to_gradebook = false;
|
|
|
+ if ( isset($_POST['attendance_qualify_gradebook']) && $_POST['attendance_qualify_gradebook'] == 1 ) {
|
|
|
+ $link_to_gradebook = true;
|
|
|
+ }
|
|
|
+ $last_id = $attendance->attendance_edit($attendance_id,$link_to_gradebook);
|
|
|
+ Security::clear_token();
|
|
|
+
|
|
|
+ $param_gradebook = '';
|
|
|
+ if (isset($_SESSION['gradebook'])) {
|
|
|
+ $param_gradebook = '&gradebook='.Security::remove_XSS($_SESSION['gradebook']);
|
|
|
+ }
|
|
|
+ header('location:index.php?action=attendance_list&'.api_get_cidreq().$param_gradebook);
|
|
|
+ exit;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $data['attendance_id'] = $_POST['attendance_id'];
|
|
|
+ $data['error'] = true;
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_edit');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // default values
|
|
|
+ $attendance_data = $attendance->get_attendance_by_id($attendance_id);
|
|
|
+ $data['attendance_id'] = $attendance_data['id'];
|
|
|
+ $data['title'] = $attendance_data['name'];
|
|
|
+ $data['description'] = $attendance_data['description'];
|
|
|
+ $data['attendance_qualify_title'] = $attendance_data['attendance_qualify_title'];
|
|
|
+ $data['attendance_weight'] = $attendance_data['attendance_weight'];
|
|
|
+
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_edit');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * It's used for delete attendaces
|
|
|
+ * render to attendance_list view
|
|
|
+ * @param int attendance id
|
|
|
+ */
|
|
|
+ public function attendance_delete($attendance_id)
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ if (!empty($attendance_id)) {
|
|
|
+ $affected_rows = $attendance->attendance_delete($attendance_id);
|
|
|
+ }
|
|
|
+ if ($affected_rows) {
|
|
|
+ $message['message_attendance_delete'] = true;
|
|
|
+ }
|
|
|
+ $this->attendance_list();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Restores an attendance entry and fallback to attendances rendering
|
|
|
+ * @param int attendance id
|
|
|
+ */
|
|
|
+ public function attendance_restore($attendance_id)
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ if (!empty($attendance_id)) {
|
|
|
+ $affected_rows = $attendance->attendance_restore($attendance_id);
|
|
|
+ }
|
|
|
+ if ($affected_rows) {
|
|
|
+ $message['message_attendance_restore'] = true;
|
|
|
+ }
|
|
|
+ $this->attendance_list();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* Lock or unlock an attendance
|
|
@@ -194,7 +189,8 @@
|
|
|
* @param int attendance id
|
|
|
* render to attendance_list view
|
|
|
*/
|
|
|
- public function lock_attendance($action, $attendance_id) {
|
|
|
+ public function lock_attendance($action, $attendance_id)
|
|
|
+ {
|
|
|
$attendance = new Attendance();
|
|
|
$attendance_id = intval($attendance_id);
|
|
|
|
|
@@ -204,39 +200,39 @@
|
|
|
$result = $attendance->lock_attendance($attendance_id, false);
|
|
|
}
|
|
|
if ($result) {
|
|
|
- $message['message_locked_attendance'] = true;
|
|
|
+ $message['message_locked_attendance'] = true;
|
|
|
}
|
|
|
$this->attendance_list();
|
|
|
}
|
|
|
|
|
|
- public function export($id, $type = 'pdf') {
|
|
|
+ public function export($id, $type = 'pdf')
|
|
|
+ {
|
|
|
$attendance = new Attendance();
|
|
|
$attendance_id = intval($attendance_id);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * It's used for controlling attendace sheet (list, add),
|
|
|
- * render to attendance_sheet view
|
|
|
- * @param string action
|
|
|
- * @param int attendance id
|
|
|
- */
|
|
|
- public function attendance_sheet($action, $attendance_id, $student_id = 0, $edit = true) {
|
|
|
- $attendance = new Attendance();
|
|
|
- $data = array();
|
|
|
- $data['attendance_id'] = $attendance_id;
|
|
|
- $data['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
|
|
|
+ /**
|
|
|
+ * It's used for controlling attendace sheet (list, add),
|
|
|
+ * render to attendance_sheet view
|
|
|
+ * @param string action
|
|
|
+ * @param int attendance id
|
|
|
+ */
|
|
|
+ public function attendance_sheet($action, $attendance_id, $student_id = 0, $edit = true)
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ $data = array();
|
|
|
+ $data['attendance_id'] = $attendance_id;
|
|
|
+ $data['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
|
|
|
|
|
|
- $filter_type = 'today';
|
|
|
+ $filter_type = 'today';
|
|
|
|
|
|
- if (!empty($_REQUEST['filter'])) {
|
|
|
- $filter_type = $_REQUEST['filter'];
|
|
|
- }
|
|
|
+ if (!empty($_REQUEST['filter'])) {
|
|
|
+ $filter_type = $_REQUEST['filter'];
|
|
|
+ }
|
|
|
|
|
|
if ($edit == true) {
|
|
|
if (api_is_allowed_to_edit(null, true)) {
|
|
|
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
|
|
|
- } else {
|
|
|
-
|
|
|
}
|
|
|
} else {
|
|
|
if (!empty($student_id)) {
|
|
@@ -245,7 +241,9 @@
|
|
|
$user_id = api_get_user_id();
|
|
|
}
|
|
|
|
|
|
- if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api_get_course_id())) {
|
|
|
+ if (api_is_allowed_to_edit(null, true) ||
|
|
|
+ api_is_coach(api_get_session_id(), api_get_course_id())
|
|
|
+ ) {
|
|
|
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
|
|
|
} else {
|
|
|
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id, $user_id);
|
|
@@ -255,63 +253,63 @@
|
|
|
$data['user_id'] = $user_id;
|
|
|
}
|
|
|
|
|
|
- $data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
|
|
|
- $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();
|
|
|
- if (isset($_POST['check_presence'][$cal_id])) {
|
|
|
- $users_present = $_POST['check_presence'][$cal_id];
|
|
|
- }
|
|
|
- $affected_rows = $attendance->attendance_sheet_add($cal_id,$users_present,$attendance_id);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $data['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
|
|
|
- $my_calendar_id = null;
|
|
|
- if (is_numeric($filter_type)) {
|
|
|
- $my_calendar_id = $filter_type;
|
|
|
- $filter_type = 'calendar_id';
|
|
|
- }
|
|
|
- $data['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id, $filter_type, $my_calendar_id);
|
|
|
- $data['attendant_calendar_all'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
- $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
|
|
|
- $data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
|
|
|
- $data['next_attendance_calendar_datetime'] = $attendance->get_next_attendance_calendar_datetime($attendance_id);
|
|
|
- } else {
|
|
|
- $data['attendant_calendar_all'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
- $data['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id, $filter_type);
|
|
|
- }
|
|
|
+ $data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
|
|
|
+ $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();
|
|
|
+ if (isset($_POST['check_presence'][$cal_id])) {
|
|
|
+ $users_present = $_POST['check_presence'][$cal_id];
|
|
|
+ }
|
|
|
+ $attendance->attendance_sheet_add($cal_id,$users_present,$attendance_id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $data['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
|
|
|
+ $my_calendar_id = null;
|
|
|
+ if (is_numeric($filter_type)) {
|
|
|
+ $my_calendar_id = $filter_type;
|
|
|
+ $filter_type = 'calendar_id';
|
|
|
+ }
|
|
|
+ $data['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id, $filter_type, $my_calendar_id);
|
|
|
+ $data['attendant_calendar_all'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
+ $data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
|
|
|
+ $data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
|
|
|
+ $data['next_attendance_calendar_datetime'] = $attendance->get_next_attendance_calendar_datetime($attendance_id);
|
|
|
+ } else {
|
|
|
+ $data['attendant_calendar_all'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
+ $data['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id, $filter_type);
|
|
|
+ }
|
|
|
|
|
|
$data['edit_table'] = intval($edit);
|
|
|
- $data['is_locked_attendance'] = $attendance->is_locked_attendance($attendance_id);
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_sheet');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * It's used for controlling attendace calendar (list, add, edit, delete),
|
|
|
- * render to attendance_calendar view
|
|
|
- * @param string action (optional, by default 'calendar_list')
|
|
|
- * @param int attendance id (optional)
|
|
|
- * @param int calendar id (optional)
|
|
|
- */
|
|
|
- public function attendance_calendar($action = 'calendar_list',$attendance_id = 0, $calendar_id = 0) {
|
|
|
-
|
|
|
- $attendance = new Attendance();
|
|
|
- $calendar_id = intval($calendar_id);
|
|
|
- $data = array();
|
|
|
- $data['attendance_id'] = $attendance_id;
|
|
|
- $attendance_id = intval($attendance_id);
|
|
|
-
|
|
|
- if ($action == 'calendar_add') {
|
|
|
- if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
- if (!isset($_POST['cancel'])) {
|
|
|
+ $data['is_locked_attendance'] = $attendance->is_locked_attendance($attendance_id);
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_sheet');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * It's used for controlling attendance calendar (list, add, edit, delete),
|
|
|
+ * render to attendance_calendar view
|
|
|
+ * @param string $action (optional, by default 'calendar_list')
|
|
|
+ * @param int $attendance_id (optional)
|
|
|
+ * @param int $calendar_id (optional)
|
|
|
+ */
|
|
|
+ public function attendance_calendar($action = 'calendar_list', $attendance_id = 0, $calendar_id = 0)
|
|
|
+ {
|
|
|
+ $attendance = new Attendance();
|
|
|
+ $calendar_id = intval($calendar_id);
|
|
|
+ $data = array();
|
|
|
+ $data['attendance_id'] = $attendance_id;
|
|
|
+ $attendance_id = intval($attendance_id);
|
|
|
+
|
|
|
+ if ($action == 'calendar_add') {
|
|
|
+ if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
+ if (!isset($_POST['cancel'])) {
|
|
|
if (isset($_POST['repeat'])) {
|
|
|
//@todo check this error_logs
|
|
|
$start_datetime = api_strtotime(
|
|
@@ -343,49 +341,49 @@
|
|
|
$datetime = $_POST['date_time'];
|
|
|
$datetimezone = api_get_utc_datetime($datetime);
|
|
|
if (!empty($datetime)) {
|
|
|
- $attendance->set_date_time($datetimezone);
|
|
|
- $affected_rows = $attendance->attendance_calendar_add($attendance_id);
|
|
|
- $action = 'calendar_list';
|
|
|
+ $attendance->set_date_time($datetimezone);
|
|
|
+ $affected_rows = $attendance->attendance_calendar_add($attendance_id);
|
|
|
+ $action = 'calendar_list';
|
|
|
} else {
|
|
|
- $data['error_date'] = true;
|
|
|
- $action = 'calendar_add';
|
|
|
+ $data['error_date'] = true;
|
|
|
+ $action = 'calendar_add';
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- $action = 'calendar_list';
|
|
|
- }
|
|
|
- }
|
|
|
- } else if ($action == 'calendar_edit') {
|
|
|
- $data['calendar_id'] = $calendar_id;
|
|
|
- if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
- if (!isset($_POST['cancel'])) {
|
|
|
- $datetime = $attendance->build_datetime_from_array($_POST['date_time']);
|
|
|
- $datetimezone = api_get_utc_datetime($datetime);
|
|
|
- $attendance->set_date_time($datetimezone);
|
|
|
- $affected_rows = $attendance->attendance_calendar_edit($calendar_id, $attendance_id);
|
|
|
- $data['calendar_id'] = 0;
|
|
|
- $action = 'calendar_list';
|
|
|
- } else {
|
|
|
- $action = 'calendar_list';
|
|
|
- }
|
|
|
- }
|
|
|
- } else if ($action == 'calendar_delete') {
|
|
|
- $affected_rows = $attendance->attendance_calendar_delete($calendar_id, $attendance_id);
|
|
|
- $action = 'calendar_list';
|
|
|
- } else if ($action == 'calendar_all_delete') {
|
|
|
- $affected_rows = $attendance->attendance_calendar_delete(0, $attendance_id, true);
|
|
|
- $action = 'calendar_list';
|
|
|
- }
|
|
|
-
|
|
|
- $data['action'] = $action;
|
|
|
- $data['attendance_calendar'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
+ } else {
|
|
|
+ $action = 'calendar_list';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if ($action == 'calendar_edit') {
|
|
|
+ $data['calendar_id'] = $calendar_id;
|
|
|
+ if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
|
|
|
+ if (!isset($_POST['cancel'])) {
|
|
|
+ $datetime = $attendance->build_datetime_from_array($_POST['date_time']);
|
|
|
+ $datetimezone = api_get_utc_datetime($datetime);
|
|
|
+ $attendance->set_date_time($datetimezone);
|
|
|
+ $affected_rows = $attendance->attendance_calendar_edit($calendar_id, $attendance_id);
|
|
|
+ $data['calendar_id'] = 0;
|
|
|
+ $action = 'calendar_list';
|
|
|
+ } else {
|
|
|
+ $action = 'calendar_list';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if ($action == 'calendar_delete') {
|
|
|
+ $affected_rows = $attendance->attendance_calendar_delete($calendar_id, $attendance_id);
|
|
|
+ $action = 'calendar_list';
|
|
|
+ } else if ($action == 'calendar_all_delete') {
|
|
|
+ $affected_rows = $attendance->attendance_calendar_delete(0, $attendance_id, true);
|
|
|
+ $action = 'calendar_list';
|
|
|
+ }
|
|
|
+
|
|
|
+ $data['action'] = $action;
|
|
|
+ $data['attendance_calendar'] = $attendance->get_attendance_calendar($attendance_id);
|
|
|
$data['is_locked_attendance'] = $attendance->is_locked_attendance($attendance_id);
|
|
|
- // render to the view
|
|
|
- $this->view->set_data($data);
|
|
|
- $this->view->set_layout('layout');
|
|
|
- $this->view->set_template('attendance_calendar');
|
|
|
- $this->view->render();
|
|
|
- }
|
|
|
+ // render to the view
|
|
|
+ $this->view->set_data($data);
|
|
|
+ $this->view->set_layout('layout');
|
|
|
+ $this->view->set_template('attendance_calendar');
|
|
|
+ $this->view->render();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* It's used to print attendance sheet
|
|
@@ -404,9 +402,9 @@
|
|
|
|
|
|
$filter_type = 'today';
|
|
|
|
|
|
- if (!empty($_REQUEST['filter'])) {
|
|
|
- $filter_type = $_REQUEST['filter'];
|
|
|
- }
|
|
|
+ if (!empty($_REQUEST['filter'])) {
|
|
|
+ $filter_type = $_REQUEST['filter'];
|
|
|
+ }
|
|
|
|
|
|
$my_calendar_id = null;
|
|
|
if (is_numeric($filter_type)) {
|
|
@@ -438,7 +436,7 @@
|
|
|
foreach ($teacherInfo as $dados) {
|
|
|
if ($teacherName != null)
|
|
|
$teacherName = $teacherName . " / ";
|
|
|
- $teacherName.= $dados['firstname']." ".$dados['lastname'];
|
|
|
+ $teacherName.= $dados['firstname']." ".$dados['lastname'];
|
|
|
}
|
|
|
|
|
|
// Get data table
|
|
@@ -469,7 +467,7 @@
|
|
|
else
|
|
|
$result[$class_day['id']] = get_lang('UserNotAttendedSymbol');
|
|
|
} else {
|
|
|
- $result[$class_day['id']] = " ";
|
|
|
+ $result[$class_day['id']] = " ";
|
|
|
}
|
|
|
$cols++;
|
|
|
}
|