|
@@ -68,7 +68,8 @@ class Attendance
|
|
|
$condition_session = api_get_session_condition($session_id);
|
|
|
|
|
|
// Get attendance data
|
|
|
- $sql = "SELECT id, name, attendance_qualify_max FROM $tbl_attendance
|
|
|
+ $sql = "SELECT id, name, attendance_qualify_max
|
|
|
+ FROM $tbl_attendance
|
|
|
WHERE c_id = $course_id AND active = 1 $condition_session ";
|
|
|
$rs = Database::query($sql);
|
|
|
if (Database::num_rows($rs) > 0) {
|
|
@@ -144,8 +145,11 @@ class Attendance
|
|
|
$session_star = api_get_session_image(api_get_session_id(), $user_info['status']);
|
|
|
}
|
|
|
|
|
|
- if ($attendance['locked'] == 1) {
|
|
|
+ if ($attendance['active'] == 0) {
|
|
|
$attendance['name'] = "<del>".$attendance['name']."</del>";
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($attendance['locked'] == 1) {
|
|
|
if (api_is_allowed_to_edit(null, true)) {
|
|
|
//Link to edit
|
|
|
$attendance['name'] = '<a href="index.php?'.api_get_cidreq().'&action=attendance_sheet_list&attendance_id='.$id.$param_gradebook.$student_param.'">'.$attendance['name'].'</a>'.$session_star;
|
|
@@ -283,7 +287,7 @@ class Attendance
|
|
|
// add link to gradebook
|
|
|
if ($link_to_gradebook && !empty($this->category_id)) {
|
|
|
$description = '';
|
|
|
- $link_info = is_resource_in_course_gradebook($course_code,7,$last_id,$session_id);
|
|
|
+ $link_info = is_resource_in_course_gradebook($course_code, 7, $last_id, $session_id);
|
|
|
$link_id = $link_info['id'];
|
|
|
if (!$link_info) {
|
|
|
add_resource_to_course_gradebook($this->category_id, $course_code, 7, $last_id, $title_gradebook,$weight_calification,$value_calification,$description,1,$session_id);
|
|
@@ -443,10 +447,11 @@ class Attendance
|
|
|
$current_session_id = $this->get_session_id();
|
|
|
|
|
|
if (!empty($current_session_id)) {
|
|
|
- $a_course_users = CourseManager :: get_user_list_from_course_code($current_course_id, $current_session_id,'','lastname');
|
|
|
+ $a_course_users = CourseManager :: get_user_list_from_course_code($current_course_id, $current_session_id,'', 'lastname');
|
|
|
} else {
|
|
|
$a_course_users = CourseManager :: get_user_list_from_course_code($current_course_id, 0, '','lastname');
|
|
|
}
|
|
|
+
|
|
|
// get registered users inside current course
|
|
|
$a_users = array();
|
|
|
foreach ($a_course_users as $key =>$user_data) {
|
|
@@ -457,7 +462,7 @@ class Attendance
|
|
|
$user_status_in_session = null;
|
|
|
$user_status_in_course = null;
|
|
|
|
|
|
- if (api_get_session_id()) {
|
|
|
+ if ($current_session_id) {
|
|
|
$user_status_in_session = SessionManager::get_user_status_in_course_session($uid, $current_course_id, $current_session_id);
|
|
|
} else {
|
|
|
$user_status_in_course = CourseManager::get_user_in_course_status($uid, $current_course_id);
|
|
@@ -496,13 +501,13 @@ class Attendance
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * add attendaces sheet inside table
|
|
|
+ * Add attendaces sheet inside table
|
|
|
* @param int attendance calendar id
|
|
|
* @param array present users during current class (array with user_ids)
|
|
|
* @param int attendance id
|
|
|
* @return int affected rows
|
|
|
*/
|
|
|
- public function attendance_sheet_add($calendar_id, $users_present, $attendance_id, $save_user_absents = true) {
|
|
|
+ public function attendance_sheet_add($calendar_id, $users_present, $attendance_id, $save_user_absents = true, $done_attendance = true) {
|
|
|
$tbl_attendance_sheet = Database::get_course_table(TABLE_ATTENDANCE_SHEET);
|
|
|
$tbl_attendance_calendar= Database::get_course_table(TABLE_ATTENDANCE_CALENDAR);
|
|
|
|
|
@@ -568,12 +573,14 @@ class Attendance
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if ($done_attendance) {
|
|
|
+ // update done_attendance inside attendance calendar table
|
|
|
+ $sql = "UPDATE $tbl_attendance_calendar SET done_attendance = 1 WHERE c_id = $course_id AND id = '$calendar_id'";
|
|
|
+ Database::query($sql);
|
|
|
+ }
|
|
|
|
|
|
- // update done_attendance inside attendance calendar table
|
|
|
- $sql = "UPDATE $tbl_attendance_calendar SET done_attendance = 1 WHERE c_id = $course_id AND id = '$calendar_id'";
|
|
|
- Database::query($sql);
|
|
|
-
|
|
|
- // Save user's results
|
|
|
+ // Save user's results
|
|
|
$this->update_users_results($user_ids, $attendance_id);
|
|
|
|
|
|
if ($affected_rows) {
|
|
@@ -712,8 +719,7 @@ class Attendance
|
|
|
$user_id = intval($user_id);
|
|
|
$attendance_id = intval($attendance_id);
|
|
|
$results = array();
|
|
|
- $attendance_data = $this->get_attendance_by_id($attendance_id);
|
|
|
-
|
|
|
+ $attendance_data = $this->get_attendance_by_id($attendance_id);
|
|
|
$calendar_count = $this->get_number_of_attendance_calendar($attendance_id);
|
|
|
|
|
|
$total_done_attendance = $attendance_data['attendance_qualify_max'];
|
|
@@ -724,22 +730,22 @@ class Attendance
|
|
|
//$total_done_attendance = $calendar_count;
|
|
|
|
|
|
// calculate results
|
|
|
- $faults = $total_done_attendance - $attendance_user_score;
|
|
|
-
|
|
|
+ $faults = $total_done_attendance - $attendance_user_score;
|
|
|
$faults = $faults > 0 ? $faults:0;
|
|
|
$faults_porcent = $calendar_count > 0 ?round(($faults*100)/$calendar_count,0):0;
|
|
|
$results['faults'] = $faults;
|
|
|
$results['total'] = $calendar_count;
|
|
|
$results['faults_porcent'] = $faults_porcent;
|
|
|
- $color_bar = '';
|
|
|
-
|
|
|
+
|
|
|
+ $color_bar = 'success';
|
|
|
if ($faults_porcent > 25 ) {
|
|
|
- $color_bar = '#F11';
|
|
|
- } else if ($faults_porcent > 10) {
|
|
|
- $color_bar = '#F90';
|
|
|
- }
|
|
|
+ $color_bar = 'important';
|
|
|
+ } elseif ($faults_porcent > 10) {
|
|
|
+ $color_bar = 'warning';
|
|
|
+ } elseif ($faults_porcent > 1) {
|
|
|
+ $color_bar = 'info';
|
|
|
+ }
|
|
|
$results['color_bar'] = $color_bar;
|
|
|
-
|
|
|
return $results;
|
|
|
}
|
|
|
|