Fix user course category see BT#10342

1.9.x
Julio 10 years ago
parent 476c6fd1e4
commit febcb9fcdc
  1. 12
      main/cron/import_csv.php
  2. 28
      main/inc/lib/sessionmanager.lib.php

@ -150,7 +150,7 @@ class ImportCsv
'subscribe-static', 'subscribe-static',
'unsubscribe-static' 'unsubscribe-static'
); );
$teacherBackup = array();
foreach ($sections as $section) { foreach ($sections as $section) {
$this->logger->addInfo("-- Import $section --"); $this->logger->addInfo("-- Import $section --");
@ -162,10 +162,14 @@ class ImportCsv
echo 'File: '.$file.PHP_EOL; echo 'File: '.$file.PHP_EOL;
$this->logger->addInfo("Reading file: $file"); $this->logger->addInfo("Reading file: $file");
if ($method == 'importSessions') {
$this->$method($file, true, $teacherBackup);
} else {
$this->$method($file, true); $this->$method($file, true);
} }
} }
} }
}
$sections = array( $sections = array(
'students-static', 'students-static',
@ -1237,8 +1241,9 @@ class ImportCsv
/** /**
* @param string $file * @param string $file
* @param bool $moveFile * @param bool $moveFile
* @param array $teacherBackup
*/ */
private function importSessions($file, $moveFile = true) private function importSessions($file, $moveFile = true, &$teacherBackup = array())
{ {
$avoid = null; $avoid = null;
if (isset($this->conditions['importSessions']) && if (isset($this->conditions['importSessions']) &&
@ -1262,7 +1267,8 @@ class ImportCsv
true, // sessionWithCoursesModifier true, // sessionWithCoursesModifier
true, //$addOriginalCourseTeachersAsCourseSessionCoaches true, //$addOriginalCourseTeachersAsCourseSessionCoaches
true, //$removeAllTeachersFromCourse true, //$removeAllTeachersFromCourse
1 // $showDescription 1, // $showDescription,
$teacherBackup
); );
if (!empty($result['error_message'])) { if (!empty($result['error_message'])) {

@ -2068,7 +2068,7 @@ class SessionManager
FROM $tbl_session_rel_user FROM $tbl_session_rel_user
WHERE WHERE
id_session = $sessionId AND id_session = $sessionId AND
relation_type<>" . SESSION_RELATION_TYPE_RRHH . ""; relation_type<>" . SESSION_RELATION_TYPE_RRHH;
$result = Database::query($sql); $result = Database::query($sql);
$user_list = Database::store_result($result); $user_list = Database::store_result($result);
@ -3781,7 +3781,8 @@ class SessionManager
$sessionWithCoursesModifier = false, $sessionWithCoursesModifier = false,
$addOriginalCourseTeachersAsCourseSessionCoaches = true, $addOriginalCourseTeachersAsCourseSessionCoaches = true,
$removeAllTeachersFromCourse = true, $removeAllTeachersFromCourse = true,
$showDescription = null $showDescription = null,
&$teacherBackupList = array()
) { ) {
$content = file($file); $content = file($file);
@ -4259,7 +4260,6 @@ class SessionManager
$teacherToAdd = null; $teacherToAdd = null;
// Only one coach is added. // Only one coach is added.
if ($onlyAddFirstCoachOrTeacher == true) { if ($onlyAddFirstCoachOrTeacher == true) {
foreach ($course_coaches as $course_coach) { foreach ($course_coaches as $course_coach) {
$coach_id = UserManager::get_user_id_from_username($course_coach); $coach_id = UserManager::get_user_id_from_username($course_coach);
if ($coach_id !== false) { if ($coach_id !== false) {
@ -4307,10 +4307,19 @@ class SessionManager
if (!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) {
if (!in_array($teacher['user_id'], $teacherToAdd)) { if (!in_array($teacher['user_id'], $teacherToAdd)) {
$sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE
user_id = ".$teacher['user_id']." AND
course_code = '".$course_code."'
";
$result = Database::query($sql);
$userCourseData = Database::fetch_array($result, 'ASSOC');
$teacherBackupList[$teacher['user_id']][$course_code] = $userCourseData;
CourseManager::unsubscribe_user( CourseManager::unsubscribe_user(
$teacher['user_id'], $teacher['user_id'],
$course_code $course_code
@ -4320,10 +4329,19 @@ class SessionManager
} }
foreach ($teacherToAdd as $teacherId) { foreach ($teacherToAdd as $teacherId) {
$userCourseCategory = '';
if (isset($teacherBackupList[$teacherId]) &&
isset($teacherBackupList[$teacherId][$course_code])
) {
$courseUserData = $teacherBackupList[$teacherId][$course_code];
$userCourseCategory = $courseUserData['user_course_cat'];
}
CourseManager::subscribe_user( CourseManager::subscribe_user(
$teacherId, $teacherId,
$course_code, $course_code,
COURSEMANAGER COURSEMANAGER,
0,
$userCourseCategory
); );
} }
} }

Loading…
Cancel
Save