|
|
|
@ -53,7 +53,6 @@ class ExerciseResult |
|
|
|
|
|
|
|
|
|
$TBL_USER = Database::get_main_table(TABLE_MAIN_USER); |
|
|
|
|
$TBL_TRACK_EXERCISES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCICES); |
|
|
|
|
$TBL_TRACK_HOTPOTATOES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES); |
|
|
|
|
$TBL_TRACK_ATTEMPT_RECORDING = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING); |
|
|
|
|
|
|
|
|
|
$cid = api_get_course_id(); |
|
|
|
@ -62,7 +61,6 @@ class ExerciseResult |
|
|
|
|
$sessionId = api_get_session_id(); |
|
|
|
|
$session_id_and = ' AND te.session_id = ' . $sessionId . ' '; |
|
|
|
|
$exercise_id = intval($exercise_id); |
|
|
|
|
$hotpotato_name = Database::escape_string($hotpotato_name); |
|
|
|
|
|
|
|
|
|
if (!empty($exercise_id)) { |
|
|
|
|
$session_id_and .= " AND exe_exo_id = $exercise_id "; |
|
|
|
@ -93,7 +91,6 @@ class ExerciseResult |
|
|
|
|
te.status != 'incomplete' AND |
|
|
|
|
te.exe_cours_id='" . Database :: escape_string($cid) . "' $user_id_and $session_id_and AND |
|
|
|
|
ce.active <>-1"; |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
$user_id_and = ' AND te.exe_user_id = ' . api_get_user_id() . ' '; |
|
|
|
|
// get only this user's results |
|
|
|
@ -148,31 +145,38 @@ class ExerciseResult |
|
|
|
|
$filter_by_not_revised = false; |
|
|
|
|
$filter_by_revised = false; |
|
|
|
|
|
|
|
|
|
if ($filter) { |
|
|
|
|
switch ($filter) { |
|
|
|
|
case 1 : |
|
|
|
|
if ($filter) { |
|
|
|
|
switch ($filter) { |
|
|
|
|
case 1 : |
|
|
|
|
$filter_by_not_revised = true; |
|
|
|
|
break; |
|
|
|
|
case 2 : |
|
|
|
|
case 2 : |
|
|
|
|
$filter_by_revised = true; |
|
|
|
|
break; |
|
|
|
|
default : |
|
|
|
|
default : |
|
|
|
|
null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (empty($sessionId)) { |
|
|
|
|
$students = CourseManager::get_user_list_from_course_code($cid); |
|
|
|
|
} else { |
|
|
|
|
$students = CourseManager::get_user_list_from_course_code($cid, $sessionId); |
|
|
|
|
} |
|
|
|
|
$studentsUserIdList = array_keys($students); |
|
|
|
|
|
|
|
|
|
// Print the results of tests |
|
|
|
|
// Print the results of tests |
|
|
|
|
$userWithResults = array(); |
|
|
|
|
if (is_array($results)) { |
|
|
|
|
if (is_array($results)) { |
|
|
|
|
$i = 0; |
|
|
|
|
foreach ($results as $result) { |
|
|
|
|
$revised = false; |
|
|
|
|
foreach ($results as $result) { |
|
|
|
|
$revised = false; |
|
|
|
|
|
|
|
|
|
//revised or not |
|
|
|
|
$sql_exe = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT_RECORDING |
|
|
|
|
WHERE author != '' AND exe_id = ".Database :: escape_string($result['exid'])." |
|
|
|
|
LIMIT 1"; |
|
|
|
|
$query = Database::query($sql_exe); |
|
|
|
|
//revised or not |
|
|
|
|
$sql_exe = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT_RECORDING |
|
|
|
|
WHERE author != '' AND exe_id = ".Database :: escape_string($result['exid'])." |
|
|
|
|
LIMIT 1"; |
|
|
|
|
$query = Database::query($sql_exe); |
|
|
|
|
|
|
|
|
|
if (Database:: num_rows($query) > 0) { |
|
|
|
|
$revised = true; |
|
|
|
@ -204,6 +208,12 @@ class ExerciseResult |
|
|
|
|
$return[$i]['lp_id'] = $result['orig_lp_id']; |
|
|
|
|
$return[$i]['lp_name'] = $result['lp_name']; |
|
|
|
|
|
|
|
|
|
if (in_array($result['excruid'], $studentsUserIdList)) { |
|
|
|
|
$return[$i]['is_user_subscribed'] = get_lang('Yes'); |
|
|
|
|
} else { |
|
|
|
|
$return[$i]['is_user_subscribed'] = get_lang('No'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$userWithResults[$result['excruid']] = 1; |
|
|
|
|
$i++; |
|
|
|
|
} |
|
|
|
@ -212,11 +222,7 @@ class ExerciseResult |
|
|
|
|
if ($this->includeAllUsers) { |
|
|
|
|
$latestId = count($return); |
|
|
|
|
$userWithResults = array_keys($userWithResults); |
|
|
|
|
if (empty($sessionId)) { |
|
|
|
|
$students = CourseManager::get_user_list_from_course_code($cid); |
|
|
|
|
} else { |
|
|
|
|
$students = CourseManager::get_user_list_from_course_code($cid, $sessionId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!empty($students)) { |
|
|
|
|
foreach ($students as $student) { |
|
|
|
@ -246,6 +252,7 @@ class ExerciseResult |
|
|
|
|
$return[$i]['status'] = get_lang('NotAttempted'); |
|
|
|
|
$return[$i]['lp_id'] = null; |
|
|
|
|
$return[$i]['lp_name'] = null; |
|
|
|
|
$return[$i]['is_user_subscribed'] = get_lang('Yes'); |
|
|
|
|
|
|
|
|
|
$latestId++; |
|
|
|
|
} |
|
|
|
@ -321,6 +328,7 @@ class ExerciseResult |
|
|
|
|
$data .= get_lang('Total').';'; |
|
|
|
|
$data .= get_lang('Status').';'; |
|
|
|
|
$data .= get_lang('ToolLearnpath').';'; |
|
|
|
|
$data .= get_lang('UserIsCurrentlySubscribed').';'; |
|
|
|
|
$data .= "\n"; |
|
|
|
|
|
|
|
|
|
//results |
|
|
|
@ -357,6 +365,7 @@ class ExerciseResult |
|
|
|
|
$data .= str_replace("\r\n",' ',$row['max']).';'; |
|
|
|
|
$data .= str_replace("\r\n",' ',$row['status']).';'; |
|
|
|
|
$data .= str_replace("\r\n",' ',$row['lp_name']).';'; |
|
|
|
|
$data .= str_replace("\r\n",' ',$row['is_user_subscribed']).';'; |
|
|
|
|
$data .= "\n"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -422,14 +431,14 @@ class ExerciseResult |
|
|
|
|
|
|
|
|
|
if ($with_column_user) { |
|
|
|
|
if (api_is_western_name_order()) { |
|
|
|
|
$worksheet->write($line,$column,get_lang('FirstName')); |
|
|
|
|
$worksheet->write($line, $column,get_lang('FirstName')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,get_lang('LastName')); |
|
|
|
|
$worksheet->write($line, $column,get_lang('LastName')); |
|
|
|
|
$column++; |
|
|
|
|
} else { |
|
|
|
|
$worksheet->write($line,$column,get_lang('LastName')); |
|
|
|
|
$worksheet->write($line, $column,get_lang('LastName')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,get_lang('FirstName')); |
|
|
|
|
$worksheet->write($line, $column,get_lang('FirstName')); |
|
|
|
|
$column++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -438,10 +447,10 @@ class ExerciseResult |
|
|
|
|
$column++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$worksheet->write($line,$column,get_lang('Email')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Email')); |
|
|
|
|
$column++; |
|
|
|
|
} |
|
|
|
|
$worksheet->write($line,$column,get_lang('Groups')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Groups')); |
|
|
|
|
$column++; |
|
|
|
|
|
|
|
|
|
if ($export_user_fields) { |
|
|
|
@ -455,21 +464,23 @@ class ExerciseResult |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$worksheet->write($line,$column, get_lang('Title')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Title')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('StartDate')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('StartDate')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('EndDate')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('EndDate')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('Duration').' ('.get_lang('MinMinutes').')'); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Duration').' ('.get_lang('MinMinutes').')'); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('Score')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Score')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('Total')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Total')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('Status')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('Status')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column, get_lang('ToolLearnpath')); |
|
|
|
|
$worksheet->write($line, $column, get_lang('ToolLearnpath')); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, get_lang('UserIsCurrentlySubscribed')); |
|
|
|
|
$line++; |
|
|
|
|
|
|
|
|
|
foreach ($this->results as $row) { |
|
|
|
@ -511,19 +522,21 @@ class ExerciseResult |
|
|
|
|
|
|
|
|
|
$worksheet->write($line,$column,api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset)); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['start_date']); |
|
|
|
|
$worksheet->write($line, $column, $row['start_date']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['end_date']); |
|
|
|
|
$worksheet->write($line, $column, $row['end_date']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['duration']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['result']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['max']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['status']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line,$column,$row['lp_name']); |
|
|
|
|
$worksheet->write($line, $column, $row['duration']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, $row['result']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, $row['max']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, $row['status']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, $row['lp_name']); |
|
|
|
|
$column++; |
|
|
|
|
$worksheet->write($line, $column, $row['is_user_subscribed']); |
|
|
|
|
$line++; |
|
|
|
|
} |
|
|
|
|
//output the results |
|
|
|
|