Replace course_code with c_id

1.10.x
Julio Montoya 10 years ago
parent 1ca49ab0c2
commit fcd9530854
  1. 4
      main/admin/add_courses_to_session.php
  2. 26
      main/admin/ldap_synchro.php
  3. 15
      main/admin/resume_session.php
  4. 17
      main/admin/session_course_edit.php
  5. 12
      main/admin/session_course_list.php
  6. 15
      main/admin/session_course_user.php
  7. 17
      main/admin/session_course_user_list.php
  8. 54
      main/admin/session_export.php
  9. 31
      main/admin/session_import.php
  10. 4
      main/inc/lib/course.lib.php
  11. 2
      main/inc/lib/urlmanager.lib.php
  12. 4
      src/Chamilo/CoreBundle/Migrations/Schema/v1/Version110.php

@ -118,7 +118,7 @@ if ($ajax_search) {
$sql="SELECT code, title, visual_code, id_session
FROM $tbl_course course
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
ON course.id = session_rel_course.c_id
AND session_rel_course.id_session = ".intval($sessionId)."
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
@ -129,7 +129,7 @@ if ($ajax_search) {
$sql="SELECT code, title, visual_code, id_session
FROM $tbl_course course
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
ON course.id = session_rel_course.c_id
AND session_rel_course.id_session = ".intval($sessionId)."
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.c_id = course.id)
WHERE access_url_id = $access_url_id

@ -124,27 +124,27 @@ foreach($Sessions as $session){
print "> $name_session: ".count($UserAdd).get_lang('Added').' '.get_lang('And').' '.count($UserUpdate).' '.get_lang('Modified')."\n";
}
// Une fois les utilisateurs importer dans la base des utilisateurs, on peux les affecter a<EFBFBD> la session
$result=Database::query("SELECT course_code FROM $tbl_session_rel_course " .
"WHERE id_session='$id_session'");
// Une fois les utilisateurs importer dans la base des utilisateurs, on peux les affecter la session
$result=Database::query("SELECT id, course_code FROM $tbl_session_rel_course WHERE id_session='$id_session'");
$CourseList=array();
while($row=Database::fetch_array($result))
{
$CourseList[]=$row['course_code'];
while($row=Database::fetch_array($result)) {
$CourseList[]= $row['id'];
}
foreach($CourseList as $enreg_course)
{
foreach ($CourseList as $enreg_course) {
// On ajoute la relation entre l'utilisateur et le cours
foreach($UserList as $enreg_user)
{
Database::query("INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user) VALUES('$id_session','$enreg_course','$enreg_user')");
foreach ($UserList as $enreg_user) {
$sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,c_id,id_user)
VALUES('$id_session','$enreg_course','$enreg_user')";
Database::query($sql);
}
$sql = "SELECT COUNT(id_user) as nbUsers " .
"FROM $tbl_session_rel_course_rel_user " .
"WHERE id_session='$id_session' AND course_code='$enreg_course'";
"WHERE id_session='$id_session' AND c_id='$enreg_course'";
$rs = Database::query($sql);
list($nbr_users) = Database::fetch_array($rs);
$sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'";
$sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users
WHERE id_session='$id_session' AND c_id = '$enreg_course'";
Database::query($sql);
}
// On ajoute la relation entre l'utilisateur et la session

@ -290,10 +290,10 @@ if ($session['nbr_courses'] == 0) {
$orderBy = "ORDER BY position";
$sql = "SELECT code,title,visual_code, nbr_users
FROM $tbl_course, $tbl_session_rel_course
$sql = "SELECT c.id, code,title, visual_code, nbr_users
FROM $tbl_course c , $tbl_session_rel_course
WHERE
course_code = code AND
c_id = c.id AND
id_session='$sessionId'
$orderBy";
@ -305,11 +305,12 @@ if ($session['nbr_courses'] == 0) {
//select the number of users
$sql = "SELECT count(*)
FROM $tbl_session_rel_user sru, $tbl_session_rel_course_rel_user srcru
FROM $tbl_session_rel_user sru,
$tbl_session_rel_course_rel_user srcru
WHERE
srcru.id_user = sru.id_user AND
srcru.id_session = sru.id_session AND
srcru.course_code = '".Database::escape_string($course['code'])."' AND
srcru.c_id = '".intval($course['id'])."' AND
sru.relation_type <> ".SESSION_RELATION_TYPE_RRHH." AND
srcru.id_session = '".intval($sessionId)."'";
@ -318,12 +319,12 @@ if ($session['nbr_courses'] == 0) {
// Get coachs of the courses in session
$sql = "SELECT user.lastname,user.firstname,user.username
$sql = "SELECT user.lastname,user.firstname, user.username
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE
session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($sessionId)."' AND
session_rcru.course_code ='".Database::escape_string($course['code'])."' AND
session_rcru.c_id ='".intval($course['id'])."' AND
session_rcru.status=2";
$rs = Database::query($sql);

@ -23,13 +23,18 @@ $tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$course_info = api_get_course_info($_REQUEST['course_code']);
$courseId = $course_info['id'];
$tool_name = $course_info['name'];
$sql = "SELECT s.name, c.title
FROM $tbl_session_course sc,$tbl_session s,$tbl_course c
WHERE
sc.id_session=s.id AND
sc.course_code = c.code AND
sc.id_session='$id_session' AND
sc.c_id ='".intval($courseId)."'";
$result = Database::query($sql);
$result = Database::query("SELECT s.name, c.title FROM $tbl_session_course sc,$tbl_session s,$tbl_course c
WHERE sc.id_session=s.id AND sc.course_code=c.code AND sc
.id_session='$id_session' AND sc.course_code='".Database::escape_string($course_code)."'");
if (!list($session_name,$course_title)=Database::fetch_row($result)) {
if (!list($session_name,$course_title) = Database::fetch_row($result)) {
header('Location: session_course_list.php?id_session='.$id_session);
exit();
}
@ -45,7 +50,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
// get all tutor by course_code in the session
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user
WHERE id_session = '$id_session' AND course_code = '".Database::escape_string($course_code)."' AND status = 2";
WHERE id_session = '$id_session' AND c_id = '".intval($courseId)."' AND status = 2";
$rs_coachs = Database::query($sql);
$coachs_course_session = array();

@ -43,9 +43,9 @@ if ($action == 'delete') {
}
$idChecked = $my_temp;
$idChecked="'".implode("','", $idChecked)."'";
$result = Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND course_code IN($idChecked)");
$result = Database::query("DELETE FROM $tbl_session_rel_course WHERE id_session='$id_session' AND c_id IN($idChecked)");
$nbr_affected_rows=Database::affected_rows($result);
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code IN($idChecked)");
Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND c_id IN($idChecked)");
Database::query("UPDATE $tbl_session SET nbr_courses=nbr_courses-$nbr_affected_rows WHERE id='$id_session'");
}
header('Location: '.api_get_self().'?id_session='.$id_session.'&sort='.$sort);
@ -55,7 +55,9 @@ if ($action == 'delete') {
$limit = 20;
$from = $page * $limit;
$sql = "SELECT code, title, nbr_users FROM $tbl_session_rel_course, $tbl_course WHERE course_code=code AND id_session='$id_session' ORDER BY $sort LIMIT $from,".($limit+1);
$sql = "SELECT code, title, nbr_users FROM $tbl_session_rel_course, $tbl_course
WHERE c_id = id AND id_session='$id_session'
ORDER BY $sort LIMIT $from,".($limit+1);
$result=Database::query($sql);
$Courses=Database::store_result($result);
$tool_name = api_htmlentities($session_name,ENT_QUOTES,$charset).' : '.get_lang('CourseListInSession');
@ -78,12 +80,12 @@ $tableHeader[] = array(get_lang('Actions'));
$tableCourses = array();
foreach($Courses as $key=>$enreg) {
$course = array();
$course[] = '<input type="checkbox" name="idChecked[]" value="'.$enreg['code'].'">';
$course[] = '<input type="checkbox" name="idChecked[]" value="'.$enreg['id'].'">';
$course[] = api_htmlentities($enreg['title'],ENT_QUOTES,$charset);
$course[] = '<a href="session_course_user_list.php?id_session='.$id_session.'&course_code='.$enreg['code'].'">'.$enreg['nbr_users'].' '.get_lang('Users').'</a>';
$course[] = '<a href="'.api_get_path(WEB_COURSE_PATH).$enreg['code'].'/?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('Course')).'</a>
<a href="session_course_edit.php?id_session='.$id_session.'&page=session_course_list.php&course_code='.$enreg['code'].'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>
<a href="'.api_get_self().'?id_session='.$id_session.'&sort='.$sort.'&action=delete&idChecked[]='.$enreg['code'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
<a href="'.api_get_self().'?id_session='.$id_session.'&sort='.$sort.'&action=delete&idChecked[]='.$enreg['id'].'" onclick="javascript:if(!confirm(\''.addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)).'\')) return false;">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
$tableCourses[] = $course;
}
echo '<form method="post" action="'.api_get_self().'">';

@ -59,10 +59,14 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
}
$sql="SELECT distinct code
FROM $tbl_course course LEFT JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code inner join $tbl_session_rel_course_rel_user as srcru
ON (srcru.id_session = session_rel_course.id_session)
WHERE id_user = $id_user and session_rel_course.id_session = $id_session";
FROM $tbl_course course
LEFT JOIN $tbl_session_rel_course session_rel_course
ON course.id = session_rel_course.c_id
INNER JOIN $tbl_session_rel_course_rel_user as srcru
ON (srcru.id_session = session_rel_course.id_session)
WHERE
id_user = $id_user AND
session_rel_course.id_session = $id_session";
$rs = Database::query($sql);
$existingCourses = Database::store_result($rs);
@ -70,7 +74,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
header('Location: session_course_user.php?id_session='.$id_session.'&id_user='.$id_user.'&msg='.get_lang('MaybeYouWantToDeleteThisUserFromSession'));
exit;
}
foreach($CourseList as $enreg_course) {
foreach ($CourseList as $enreg_course) {
$exists = false;
foreach($existingCourses as $existingCourse) {
if($enreg_course == $existingCourse['course_code']) {

@ -22,7 +22,10 @@ if (empty($id_session )) {
api_not_allowed();
}
$course_code = Database::escape_string(trim($_GET['course_code']));
$course_code = Database::escape_string(trim($_GET['course_code']));
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['id'];
$page = isset($_GET['page']) ? intval($_GET['page']) : null;
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
$default_sort = api_sort_by_first_name() ? 'firstname':'lastname';
@ -42,8 +45,8 @@ if (is_array($idChecked)) {
$sql = "SELECT s.name, c.title
FROM $tbl_session_rel_course src
INNER JOIN $tbl_session s ON s.id = src.id_session
INNER JOIN $tbl_course c ON c.code = src.course_code
WHERE src.id_session='$id_session' AND src.course_code='$course_code' ";
INNER JOIN $tbl_course c ON c.id = src.c_id
WHERE src.id_session='$id_session' AND src.c_id='$courseId' ";
$result = Database::query($sql);
if (!list($session_name,$course_title) = Database::fetch_row($result)) {
@ -58,9 +61,13 @@ switch ($action) {
$idChecked = implode(',',$idChecked);
}
if (!empty($idChecked)) {
$result = Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='".$course_code."' AND id_user IN($idChecked)");
$sql = "DELETE FROM $tbl_session_rel_course_rel_user
WHERE id_session='$id_session' AND c_id='".$courseId."' AND id_user IN($idChecked)";
$result = Database::query($sql);
$nbr_affected_rows = Database::affected_rows($result);
Database::query("UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows WHERE id_session='$id_session' AND course_code='".$course_code."'");
$sql = "UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows
WHERE id_session='$id_session' AND c_id='".$courseId."'";
Database::query($sql);
}
header('Location: '.api_get_self().'?id_session='.$id_session.'&course_code='.urlencode($course_code).'&sort='.$sort);
exit();

@ -154,23 +154,26 @@ if ($_POST['formSent']) {
$add .= $users;
//courses
$sql = "SELECT DISTINCT $tbl_course.code
FROM $tbl_course
INNER JOIN $tbl_session_course_user
ON $tbl_course.code = $tbl_session_course_user.course_code
AND $tbl_session_course_user.id_session = '".$row['id']."'";
$sql = "SELECT DISTINCT c.code, sc.id, c_id
FROM $tbl_course c
INNER JOIN $tbl_session_course_user sc
ON c.id = sc.c_id
AND sc.id_session = '".$row['id']."'";
$rsCourses = Database::query($sql);
$courses = '';
while($rowCourses = Database::fetch_array($rsCourses)){
while ($rowCourses = Database::fetch_array($rsCourses)){
// get coachs from a course
$sql = "SELECT u.username
FROM $tbl_session_course_user scu
INNER JOIN $tbl_user u ON u.user_id = scu.id_user
WHERE scu.course_code = '{$rowCourses['code']}'
AND scu.id_session = '".$row['id']."' AND scu.status = 2 ";
INNER JOIN $tbl_user u
ON u.user_id = scu.id_user
WHERE
scu.c_id = '{$rowCourses['c_id']}' AND
scu.id_session = '".$row['id']."' AND
scu.status = 2 ";
$rs_coachs = Database::query($sql);
$coachs = array();
@ -180,11 +183,10 @@ if ($_POST['formSent']) {
$coachs = implode(",",$coachs);
if($cvs){
if ($cvs) {
$courses .= str_replace(';',',',$rowCourses['code']);
$courses .= '['.str_replace(';',',',$coachs).'][';
}
else {
} else {
$courses .= "\t\t<Course>\n";
$courses .= "\t\t\t<CourseCode>$rowCourses[code]</CourseCode>\n";
$courses .= "\t\t\t<Coach>$coachs</Coach>\n";
@ -193,26 +195,34 @@ if ($_POST['formSent']) {
// rel user courses
$sql = "SELECT DISTINCT u.username
FROM $tbl_session_course_user scu
INNER JOIN $tbl_session_user su ON scu.id_user = su.id_user AND scu.id_session = su.id_session AND su.relation_type<>".SESSION_RELATION_TYPE_RRHH."
INNER JOIN $tbl_session_user su
ON
scu.id_user = su.id_user AND
scu.id_session = su.id_session AND
su.relation_type<>".SESSION_RELATION_TYPE_RRHH."
INNER JOIN $tbl_user u
ON scu.id_user = u.user_id
AND scu.course_code='".$rowCourses['code']."'
AND scu.c_id='".$rowCourses['c_id']."'
AND scu.id_session='".$row['id']."'";
$rsUsersCourse = Database::query($sql);
$userscourse = '';
while($rowUsersCourse = Database::fetch_array($rsUsersCourse)){
if($cvs){
while ($rowUsersCourse = Database::fetch_array($rsUsersCourse)){
if ($cvs) {
$userscourse .= str_replace(';',',',$rowUsersCourse['username']).',';
}
else {
} else {
$courses .= "\t\t\t<User>$rowUsersCourse[username]</User>\n";
}
}
if($cvs){
if(!empty($userscourse))
$userscourse = api_substr($userscourse , 0, api_strlen($userscourse)-1);
if ($cvs) {
if (!empty($userscourse)) {
$userscourse = api_substr(
$userscourse,
0,
api_strlen($userscourse) - 1
);
}
$courses .= $userscourse.']|';
}

@ -315,15 +315,15 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
if (CourseManager::course_exists($course_code)) {
// If the course exists we continue.
$course_info = CourseManager::get_course_information($course_code);
$courseId = $course_info['c_id'];
$session_course_relation = SessionManager::relation_session_course_exist($session_id, $course_code);
if (!$session_course_relation) {
$sql_course = "INSERT INTO $tbl_session_course SET
course_code = '$course_code',
c_id = '$courseId',
id_session='$session_id'";
$rs_course = Database::query($sql_course);
$course_info = api_get_course_info($course['code']);
SessionManager::installCourse($id_session, $course_info['real_id']);
SessionManager::installCourse($id_session, $courseId);
}
$course_coaches = explode(',', $node_course->Coach);
@ -335,7 +335,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
if ($coach_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$coach_id',
course_code='$course_code',
c_id = '$courseId',
id_session = '$session_id',
status = 2 ";
$rs_coachs = Database::query($sql);
@ -360,7 +360,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
// Adding to session_rel_user_rel_course table.
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$user_id',
course_code='$course_code',
c_id='$courseId',
id_session = '$session_id'";
$rs_users = Database::query($sql);
$users_in_course_counter++;
@ -368,8 +368,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$error_message .= get_lang('UserDoesNotExist').' : '.$username.'<br />';
}
}
$update_session_course = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
Database::query($update_session_course);
$sql = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE c_id='$courseId'";
Database::query($sql);
$inserted_in_course[$course_code] = $course_info['title'];
}
@ -382,13 +382,15 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
if ($vcourse['code'] == $course_code) {
// Ignore, this has already been inserted.
} else {
$course_info = api_get_course_info($course['code']);
$courseId = $course_info['real_id'];
$sql_course = "INSERT INTO $tbl_session_course SET
course_code = '".$vcourse['code']."',
c_id = '".$courseId."',
id_session='$session_id'";
$rs_course = Database::query($sql_course);
$course_info = api_get_course_info($course['code']);
SessionManager::installCourse($id_session, $course_info['real_id']);
SessionManager::installCourse($id_session, $courseId);
$course_coaches = explode(",",$node_course->Coach);
@ -399,7 +401,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
if ($coach_id !== false) {
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$coach_id',
course_code='{$vcourse['code']}',
c_id = $courseId,
id_session = '$session_id',
status = 2 ";
$rs_coachs = Database::query($sql);
@ -424,7 +426,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
// Adding to session_rel_user_rel_course table.
$sql = "INSERT IGNORE INTO $tbl_session_course_user SET
id_user='$user_id',
course_code='{$vcourse['code']}',
c_id ='$courseId',
id_session = '$session_id'";
$rs_users = Database::query($sql);
$users_in_course_counter++;
@ -432,10 +434,9 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$error_message .= get_lang('UserDoesNotExist').' : '.$username.'<br />';
}
}
$update_session_course = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE course_code='$course_code'";
Database::query($update_session_course);
$sql = "UPDATE $tbl_session_course SET nbr_users='$users_in_course_counter' WHERE c_id='$courseId'";
Database::query($sql);
$inserted_in_course[$course_code] = $course_info['title'];
}
$inserted_in_course[$vcourse['code']] = $vcourse['title'];
}

@ -3270,10 +3270,10 @@ class CourseManager
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sessionId = intval($sessionId);
$user_id = intval($user_id);
$select = "SELECT DISTINCT *, id as real_id ";
$select = "SELECT DISTINCT *, c.id as real_id ";
if ($getCount) {
$select = "SELECT COUNT(DISTINCT id) as count";
$select = "SELECT COUNT(DISTINCT c.id) as count";
}
$whereConditions = null;

@ -368,7 +368,7 @@ class UrlManager
public static function relation_url_course_exist($courseId, $urlId)
{
$table_url_rel_course = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql= "SELECT course_code FROM $table_url_rel_course
$sql= "SELECT c_id FROM $table_url_rel_course
WHERE access_url_id = ".intval($urlId)." AND
c_id = '".intval($courseId)."'";
$result = Database::query($sql);

@ -81,6 +81,7 @@ class Version110 extends AbstractMigration
$this->addSql("ALTER TABLE session MODIFY COLUMN name char(100) NOT NULL DEFAULT ''");
$this->addSql("ALTER TABLE course_rel_user ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE course_field_values ADD COLUMN c_id int default NULL");
$this->addSql("ALTER TABLE session_rel_course_rel_user ADD COLUMN c_id int default NULL");
$this->addSql("UPDATE course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)");
@ -120,7 +121,8 @@ class Version110 extends AbstractMigration
$this->addSql("UPDATE track_e_online SET c_id = (SELECT id FROM course WHERE code = course)");
$this->addSql("UPDATE track_e_attempt SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE course_field_values SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE session_rel_course_rel_user SET c_id = (SELECT id FROM course WHERE code = course_code)");
$this->addSql("UPDATE session_rel_course SET c_id = (SELECT id FROM course WHERE code = course_code)");
//$this->addSql("UPDATE settings_current SET selected_value = '1.10.0.35' WHERE variable = 'chamilo_database_version'");

Loading…
Cancel
Save