From 6f9605dc2d59fbfbf848e855fb6573b16732f417 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 26 Oct 2012 14:39:31 +0200 Subject: [PATCH] More fixes in attendance lib improving UI for user attendance results --- main/attendance/attendance_sheet.php | 4 +- main/inc/lib/attendance.lib.php | 52 +++++++++++++----------- main/inc/lib/gradebook.lib.php | 3 +- tests/migrate/migration.custom.class.php | 20 ++++----- 4 files changed, 41 insertions(+), 38 deletions(-) diff --git a/main/attendance/attendance_sheet.php b/main/attendance/attendance_sheet.php index 243befe41b..82346fc7b3 100644 --- a/main/attendance/attendance_sheet.php +++ b/main/attendance/attendance_sheet.php @@ -201,8 +201,8 @@ if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api -
- +
+
diff --git a/main/inc/lib/attendance.lib.php b/main/inc/lib/attendance.lib.php index 3566d3eceb..fb2c605c28 100644 --- a/main/inc/lib/attendance.lib.php +++ b/main/inc/lib/attendance.lib.php @@ -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'] = "".$attendance['name'].""; + } + + if ($attendance['locked'] == 1) { if (api_is_allowed_to_edit(null, true)) { //Link to edit $attendance['name'] = ''.$attendance['name'].''.$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; } diff --git a/main/inc/lib/gradebook.lib.php b/main/inc/lib/gradebook.lib.php index f597d8f90b..d1e28aed32 100644 --- a/main/inc/lib/gradebook.lib.php +++ b/main/inc/lib/gradebook.lib.php @@ -54,8 +54,7 @@ class Gradebook extends Model { foreach($gradebooks as &$gradebook) { if (empty($gradebook['name'])) { $gradebook['name'] = $gradebook['course_code']; - } - //$gradebook['name'] = $gradebook['course_code'] .' > '.$gradebook['name']; + } } return $gradebooks; } diff --git a/tests/migrate/migration.custom.class.php b/tests/migrate/migration.custom.class.php index 57c57558df..a1aef22e00 100644 --- a/tests/migrate/migration.custom.class.php +++ b/tests/migrate/migration.custom.class.php @@ -363,7 +363,7 @@ class MigrationCustom { static function create_attendance($data) { error_log('create_attendance'); $session_id = $data['session_id']; - $user_id = $data['user_id']; + $user_id = $data['user_id']; if (!empty($session_id) && !empty($user_id)) { $attendance = new Attendance(); @@ -381,8 +381,7 @@ class MigrationCustom { $attendance->set_course_int_id($course_info['real_id']); $attendance->set_session_id($session_id); - $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id); - + $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id); if (empty($attendance_list)) { $attendance->set_name('Asistencia'); $attendance->set_description(''); @@ -397,23 +396,22 @@ class MigrationCustom { $attendance_data = current($attendance_list); $attendance_id = $attendance_data['id']; } - + if ($attendance_id) { //Attendance date exists? - $cal_info = $attendance->get_attendance_calendar_data_by_date($attendance_id, $data['fecha']); - + $cal_info = $attendance->get_attendance_calendar_data_by_date($attendance_id, $data['fecha']); if ($cal_info && isset($cal_info['id'])) { $cal_id = $cal_info['id']; } else { //Creating the attendance date $attendance->set_date_time($data['fecha']); - $cal_id = $attendance->attendance_calendar_add($attendance_id, true); - } - + $cal_id = $attendance->attendance_calendar_add($attendance_id, true); + error_log("Creating attendance calendar $cal_id"); + } //Adding presence for the user (by default everybody is present) $users_present = array($user_id); - $attendance->attendance_sheet_add($cal_id, $users_present, $attendance_id, false); - exit; + $attendance->attendance_sheet_add($cal_id, $users_present, $attendance_id, false, false); + error_log("Adding calendar to user: $user_id to calendar: $cal_id"); } else { error_log('No attendance_id created'); }