More validations see BT#6449

1.9.x
Julio Montoya 11 years ago
parent ca95db4103
commit d76b350909
  1. 32
      main/inc/lib/sessionmanager.lib.php

@ -3536,7 +3536,6 @@ class SessionManager
$session_id = $my_session_result['id']; $session_id = $my_session_result['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);
@ -3628,7 +3627,6 @@ class SessionManager
} }
$sessionList[] = $session_id; $sessionList[] = $session_id;
$users = explode('|', $enreg['Users']); $users = explode('|', $enreg['Users']);
// Adding the relationship "Session - User" for students // Adding the relationship "Session - User" for students
@ -3675,7 +3673,7 @@ class SessionManager
// See BT#6449 // See BT#6449
$onlyAddFirstCoachOrTeacher = false; $onlyAddFirstCoachOrTeacher = false;
$removeAllTeachersFromCourse = false; $removeAllTeachersFromCourse = true;
if ($sessionWithCoursesModifier) { if ($sessionWithCoursesModifier) {
if (count($courses) >= 2) { if (count($courses) >= 2) {
@ -3683,7 +3681,7 @@ class SessionManager
$onlyAddFirstCoachOrTeacher = true; $onlyAddFirstCoachOrTeacher = true;
// Remove all teachers from course. // Remove all teachers from course.
$removeAllTeachersFromCourse = true; $removeAllTeachersFromCourse = false;
} }
} }
@ -3790,16 +3788,28 @@ class SessionManager
SessionManager::updateCoaches($session_id, $course_code, array($teacherToAdd), true); SessionManager::updateCoaches($session_id, $course_code, array($teacherToAdd), true);
} }
} }
// See BT#6449#note-195
if ($removeAllTeachersFromCourse) {
$teacherToAdd = null;
foreach ($course_coaches as $course_coach) {
$coach_id = UserManager::get_user_id_from_username(
$course_coach
);
if ($coach_id !== false) {
$teacherToAdd[] = $coach_id;
}
}
if ($removeAllTeachersFromCourse && !empty($teacherToAdd)) { if (!empty($teacherToAdd)) {
// Deleting all course teachers and adding the only coach as teacher. // Deleting all course teachers and adding the only coach as teacher.
$teacherList = CourseManager::get_teacher_list_from_course_code($course_code); $teacherList = CourseManager::get_teacher_list_from_course_code($course_code);
if (!empty($teacherList)) { if (!empty($teacherList)) {
foreach ($teacherList as $teacher) { foreach ($teacherList as $teacher) {
CourseManager::unsubscribe_user($teacher['user_id'], $course_code); CourseManager::unsubscribe_user($teacher['user_id'], $course_code);
}
} }
CourseManager::subscribe_user($teacherToAdd, $course_code, COURSEMANAGER);
} }
CourseManager::subscribe_user($teacherToAdd, $course_code, COURSEMANAGER);
} }
// Continue default behaviour. // Continue default behaviour.

Loading…
Cancel
Save