More fixes in attendance lib improving UI for user attendance results

skala
Julio Montoya 13 years ago
parent 1d3c732d78
commit 6f9605dc2d
  1. 4
      main/attendance/attendance_sheet.php
  2. 52
      main/inc/lib/attendance.lib.php
  3. 3
      main/inc/lib/gradebook.lib.php
  4. 20
      tests/migrate/migration.custom.class.php

@ -201,8 +201,8 @@ if (api_is_allowed_to_edit(null, true) || api_is_coach(api_get_session_id(), api
<td><span title="<?php echo $username ?>"><?php echo $data['lastname'] ?></span></td>
<td><?php echo $data['firstname'] ?></td>
<td>
<div class="attendance-faults-bar" style="background-color:<?php echo (!empty($data['result_color_bar'])?$data['result_color_bar']:'none') ?>">
<?php echo $data['attendance_result'] ?>
<div class="attendance-faults-bar">
<?php echo Display::label($data['attendance_result'], $data['result_color_bar']); ?>
</div>
</td>
</tr>

@ -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;
}

@ -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;
}

@ -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');
}

Loading…
Cancel
Save