Merge branch '1.9.x' of github.com:chamilo/chamilo-lms into 1.9.x

1.9.x
Yannick Warnier 12 years ago
commit 13072f0ad2
  1. 2
      main/admin/session_import.php
  2. 86
      main/inc/lib/sessionmanager.lib.php

@ -534,7 +534,7 @@ $form->addElement('radio', 'file_type', array(null, '<a href="example_session.xm
$form->addElement('checkbox', 'overwrite', null, get_lang('IfSessionExistsUpdate')); $form->addElement('checkbox', 'overwrite', null, get_lang('IfSessionExistsUpdate'));
$form->addElement('checkbox', 'delete_users_not_in_list', null, get_lang('DeleteUsersNotInList')); $form->addElement('checkbox', 'delete_users_not_in_list', null, get_lang('DeleteUsersNotInList'));
$form->addElement('checkbox', 'update_course_coaches', null, get_lang('UpdateCourseCoach')); $form->addElement('checkbox', 'update_course_coaches', null, get_lang('CleanAndUpdateCourseCoaches'));
$form->addElement('checkbox', 'sendMail', null, get_lang('SendMailToUsers')); $form->addElement('checkbox', 'sendMail', null, get_lang('SendMailToUsers'));
$form->addElement('button', 'submit', get_lang('ImportSession')); $form->addElement('button', 'submit', get_lang('ImportSession'));

@ -1979,7 +1979,6 @@ class SessionManager
*/ */
public static function set_coach_to_course_session($user_id, $session_id = 0, $course_code = '', $nocoach = false) public static function set_coach_to_course_session($user_id, $session_id = 0, $course_code = '', $nocoach = false)
{ {
// Definition of variables // Definition of variables
$user_id = intval($user_id); $user_id = intval($user_id);
@ -2030,12 +2029,16 @@ class SessionManager
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'"; $sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'";
$rs_check = Database::query($sql); $rs_check = Database::query($sql);
//Then update or insert // Then update or insert.
if (Database::num_rows($rs_check) > 0) { if (Database::num_rows($rs_check) > 0) {
$sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' "; $sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 2
WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
Database::query($sql); Database::query($sql);
if (Database::affected_rows() > 0) return true; if (Database::affected_rows() > 0) {
else return false; return true;
} else {
return false;
}
} else { } else {
$sql = "INSERT INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, status) VALUES('$session_id', '$course_code', '$user_id', 2)"; $sql = "INSERT INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, status) VALUES('$session_id', '$course_code', '$user_id', 2)";
Database::query($sql); Database::query($sql);
@ -2801,7 +2804,6 @@ class SessionManager
$session_counter++; $session_counter++;
} else { } else {
$sessionId = null; $sessionId = null;
if (isset($extraFields) && !empty($extraFields)) { if (isset($extraFields) && !empty($extraFields)) {
$sessionId = self::get_session_id_from_original_id($enreg['extra_'.$extraFieldId], $extraFieldId); $sessionId = self::get_session_id_from_original_id($enreg['extra_'.$extraFieldId], $extraFieldId);
if (empty($sessionId)) { if (empty($sessionId)) {
@ -2812,6 +2814,7 @@ class SessionManager
} else { } else {
$my_session_result = self::get_session_by_name($enreg['SessionName']); $my_session_result = self::get_session_by_name($enreg['SessionName']);
} }
if ($my_session_result === false) { if ($my_session_result === false) {
// Creating a session. // Creating a session.
@ -2829,16 +2832,39 @@ class SessionManager
$my_session_result = SessionManager::get_session_by_name($enreg['SessionName']); $my_session_result = SessionManager::get_session_by_name($enreg['SessionName']);
$session_id = $my_session_result['id']; $session_id = $my_session_result['id'];
if ($debug) { if ($session_id) {
if ($session_id) { if ($session_id) {
foreach ($enreg as $key => $value) { foreach ($enreg as $key => $value) {
if (substr($key, 0, 6) == 'extra_') { //an extra field if (substr($key, 0, 6) == 'extra_') { //an extra field
self::update_session_extra_field_value($session_id, substr($key, 6), $value); self::update_session_extra_field_value($session_id, substr($key, 6), $value);
} }
} }
$logger->addInfo("Sessions - #$session_id created: $session_name"); if ($debug) {
$logger->addInfo("Sessions - #$session_id created: $session_name");
}
} else { } else {
$logger->addError("Sessions - Session NOT created: $session_name"); if ($debug) {
$logger->addError("Sessions - Session NOT created: $session_name");
}
}
// Delete session-user relation only for students
$sql = "DELETE FROM $tbl_session_user
WHERE id_session = '$session_id' AND relation_type <> ".SESSION_RELATION_TYPE_RRHH;
Database::query($sql);
$sql = "DELETE FROM $tbl_session_course WHERE id_session = '$session_id'";
Database::query($sql);
// Delete session-course-user relationships students and coaches.
if ($updateCourseCoaches) {
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status in ('0', '2')";
Database::query($sql);
} else {
// Delete session-course-user relation ships *only* for students.
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status <> 2";
Database::query($sql);
} }
} }
} else { } else {
@ -2872,30 +2898,32 @@ class SessionManager
list($session_id) = Database::fetch_array($row); list($session_id) = Database::fetch_array($row);
} }
foreach ($enreg as $key => $value) { if ($session_id) {
if (substr($key, 0, 6) == 'extra_') { //an extra field
self::update_session_extra_field_value($session_id, substr($key, 6), $value);
}
}
// Delete session-user relation only for students
$sql = "DELETE FROM $tbl_session_user
WHERE id_session = '$session_id' AND relation_type <> ".SESSION_RELATION_TYPE_RRHH;
Database::query($sql);
$sql = "DELETE FROM $tbl_session_course WHERE id_session = '$session_id'"; foreach ($enreg as $key => $value) {
Database::query($sql); if (substr($key, 0, 6) == 'extra_') { //an extra field
self::update_session_extra_field_value($session_id, substr($key, 6), $value);
}
}
// Delete session-course-user relationships students and coaches. // Delete session-user relation only for students
if ($updateCourseCoaches) { $sql = "DELETE FROM $tbl_session_user
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status in ('0', '2')"; WHERE id_session = '$session_id' AND relation_type <> ".SESSION_RELATION_TYPE_RRHH;
Database::query($sql); Database::query($sql);
} else {
// Delete session-course-user relation ships *only* for students. $sql = "DELETE FROM $tbl_session_course WHERE id_session = '$session_id'";
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status <> 2";
Database::query($sql); Database::query($sql);
}
// Delete session-course-user relationships students and coaches.
if ($updateCourseCoaches) {
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status in ('0', '2')";
Database::query($sql);
} else {
// Delete session-course-user relation ships *only* for students.
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status <> 2";
Database::query($sql);
}
}
} }
$session_counter++; $session_counter++;
} }
@ -2994,7 +3022,7 @@ class SessionManager
$savedCoaches = array(); $savedCoaches = array();
// only edit if add_teachers_to_sessions_courses is set. // only edit if add_teachers_to_sessions_courses is set.
if ($addTeachersToSession) { if ($addTeachersToSession) {
// Adding course teachers as course session teachers // Adding course teachers as course session teachers.
$alreadyAddedTeachers = CourseManager::get_teacher_list_from_course_code($course_code); $alreadyAddedTeachers = CourseManager::get_teacher_list_from_course_code($course_code);
if (!empty($alreadyAddedTeachers)) { if (!empty($alreadyAddedTeachers)) {

Loading…
Cancel
Save