course_edit.php page has an option to add/remove teachers in all course session coaches.

1.9.x
Julio Montoya 12 years ago
parent fc02e40582
commit e39ec8cb08
  1. 15
      main/admin/course_edit.php
  2. 30
      main/inc/lib/course.lib.php
  3. 20
      main/inc/lib/sessionmanager.lib.php

@ -121,13 +121,15 @@ $element_template = <<<EOT
EOT;
$renderer = $form->defaultRenderer();
$renderer -> setElementTemplate($element_template, 'group');
$form -> addGroup($group,'group',get_lang('CourseTeachers'),'</td><td width="80" align="center">'.
$renderer->setElementTemplate($element_template, 'group');
$form->addGroup($group,'group',get_lang('CourseTeachers'),'</td><td width="80" align="center">'.
'<input class="arrowr" style="width:30px;height:30px;padding-right:12px" type="button" onclick="moveItem(document.getElementById(\'platform_teachers\'), document.getElementById(\'course_teachers\'))" ><br><br>' .
'<input class="arrowl" style="width:30px;height:30px;padding-left:13px" type="button" onclick="moveItem(document.getElementById(\'course_teachers\'), document.getElementById(\'platform_teachers\'))" ></td><td>');
$form->addElement('checkbox', 'add_teachers_to_sessions', array(null, null, get_lang('TeachersWillBeAddedAsCoachInAllCourseSessions')));
$categories_select = $form->addElement('select', 'category_code', get_lang('CourseFaculty'), $categories , array('style'=>'width:350px','id'=>'category_code_id', 'class'=>'chzn-select'));
$categories_select->addOption('-','');
$categories_select->addOption('-', '');
CourseManager::select_and_sort_categories($categories_select);
$form->add_textfield('department_name', get_lang('CourseDepartment'), false,array ('size' => '60'));
@ -215,7 +217,9 @@ if ($form->validate()) {
$extras[substr($key,6)] = $value;
}
if (substr($key,0,7)=='_extra_') {
if(!array_key_exists(substr($key,7), $extras)) $extras[substr($key,7)] = $value;
if (!array_key_exists(substr($key,7), $extras)) {
$extras[substr($key,7)] = $value;
}
}
}
@ -260,7 +264,8 @@ if ($form->validate()) {
}
}
CourseManager::updateTeachers($course_code, $teachers);
CourseManager::updateTeachers($course_code, $teachers, $course['add_teachers_to_sessions']);
$sql = "INSERT IGNORE INTO ".$course_user_table . " SET
course_code = '".Database::escape_string($course_code). "',

@ -3964,8 +3964,15 @@ class CourseManager {
return $options;
}
function updateTeachers($course_code, $teachers)
/**
* @param string $course_code
* @param array $teachers
* @param bool $editTeacherInSessions
* @return bool
*/
public static function updateTeachers($course_code, $teachers, $editTeacherInSessions = false)
{
if (empty($teachers)) {
return false;
}
@ -3982,6 +3989,7 @@ class CourseManager {
$cond.= " AND user_id <> '".$key."'";
}
}
$sql = 'DELETE FROM '.$course_user_table.' WHERE course_code="'.Database::escape_string($course_code).'" AND status="1"'.$cond;
Database::query($sql);
@ -4007,5 +4015,25 @@ class CourseManager {
Database::query($sql);
}
}
if ($editTeacherInSessions) {
$sessions = SessionManager::get_session_by_course($course_code);
if (!empty($sessions)) {
foreach ($sessions as $session) {
$alreadyAddedTeachers = SessionManager::getCoachByCourseSession($session['id'], $course_code);
foreach ($teachers as $userId) {
SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code);
}
$teachersToDelete = array_diff($alreadyAddedTeachers, $teachers);
if (!empty($teachersToDelete)) {
foreach ($teachersToDelete as $userId) {
SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code, true);
}
}
}
}
}
}
}

@ -1278,7 +1278,7 @@ class SessionManager
* @param bool - optional, if is true the user don't be a coach now, otherwise it'll assign a coach
* @return bool true if there are affected rows, otherwise false
*/
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
$user_id = intval($user_id);
@ -2160,4 +2160,22 @@ class SessionManager
'session_counter' => $session_counter
);
}
public static function getCoachByCourseSession($sessionId, $courseCode)
{
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sessionId = intval($sessionId);
$courseCode = Database::escape_string($courseCode);
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$sessionId' AND course_code = '$courseCode' AND status = 2";
$rs_coachs = Database::query($sql);
$coachs_course_session = array();
if (Database::num_rows($rs_coachs) > 0){
while ($row_coachs = Database::fetch_row($rs_coachs)) {
$coachs_course_session[] = $row_coachs[0];
}
}
return $coachs_course_session;
}
}

Loading…
Cancel
Save