|
|
|
|
@ -14,20 +14,20 @@ $this_section = "session_my_space"; |
|
|
|
|
$is_allowedToTrack = $is_courseAdmin || $is_platformAdmin || $is_session_general_coach || $is_sessionAdmin; |
|
|
|
|
|
|
|
|
|
if (!$is_allowedToTrack) { |
|
|
|
|
Display::display_header(null); |
|
|
|
|
api_not_allowed(); |
|
|
|
|
Display::display_footer(); |
|
|
|
|
Display::display_header(null); |
|
|
|
|
api_not_allowed(); |
|
|
|
|
Display::display_footer(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$export_to_xls = false; |
|
|
|
|
if (isset($_GET['export'])) { |
|
|
|
|
$export_to_xls = true; |
|
|
|
|
$export_to_xls = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (api_is_platform_admin()) { |
|
|
|
|
$global = true; |
|
|
|
|
$global = true; |
|
|
|
|
} else { |
|
|
|
|
$global = false; |
|
|
|
|
$global = false; |
|
|
|
|
} |
|
|
|
|
$global = true; |
|
|
|
|
|
|
|
|
|
@ -38,21 +38,21 @@ $course_select_list[0] = get_lang('None'); |
|
|
|
|
$htmlHeadXtra[] = ' |
|
|
|
|
<script type="text/javascript"> |
|
|
|
|
function load_courses() { |
|
|
|
|
document.search_simple.submit(); |
|
|
|
|
document.search_simple.submit(); |
|
|
|
|
} |
|
|
|
|
</script>'; |
|
|
|
|
|
|
|
|
|
$session_id = isset($_REQUEST['session_id']) ? intval($_REQUEST['session_id']) : null; |
|
|
|
|
|
|
|
|
|
if (empty($session_id)) { |
|
|
|
|
$temp_course_list = CourseManager::get_courses_list(); |
|
|
|
|
$temp_course_list = CourseManager::get_courses_list(); |
|
|
|
|
} else { |
|
|
|
|
$temp_course_list = SessionManager::get_course_list_by_session_id($session_id); |
|
|
|
|
$temp_course_list = SessionManager::get_course_list_by_session_id($session_id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach ($temp_course_list as $temp_course_item) { |
|
|
|
|
$course_item = api_get_course_info($temp_course_item['code']); |
|
|
|
|
$course_select_list[$temp_course_item['code']] = $course_item['title']; |
|
|
|
|
foreach ($temp_course_list as $temp_course_item) { |
|
|
|
|
$course_item = api_get_course_info($temp_course_item['code']); |
|
|
|
|
$course_select_list[$temp_course_item['code']] = $course_item['title']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Get session list |
|
|
|
|
@ -95,132 +95,132 @@ $form->setDefaults(array('course_code'=>(string) $course_code)); |
|
|
|
|
$course_info = api_get_course_info($course_code); |
|
|
|
|
|
|
|
|
|
if (!empty($course_info)) { |
|
|
|
|
$list = new LearnpathList('', $course_code); |
|
|
|
|
$lp_list = $list->get_flat_list(); |
|
|
|
|
$list = new LearnpathList('', $course_code); |
|
|
|
|
$lp_list = $list->get_flat_list(); |
|
|
|
|
|
|
|
|
|
$main_question_list = array(); |
|
|
|
|
$main_question_list = array(); |
|
|
|
|
|
|
|
|
|
foreach ($lp_list as $lp_id => $lp) { |
|
|
|
|
foreach ($lp_list as $lp_id => $lp) { |
|
|
|
|
$exercise_list = Event::get_all_exercises_from_lp( |
|
|
|
|
$lp_id, |
|
|
|
|
$course_info['real_id'] |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
foreach ($exercise_list as $exercise) { |
|
|
|
|
$my_exercise = new Exercise($course_info['real_id']); |
|
|
|
|
$my_exercise->read($exercise['path']); |
|
|
|
|
$question_list = $my_exercise->selectQuestionList(); |
|
|
|
|
|
|
|
|
|
$exercise_stats = Event::get_all_exercise_event_from_lp( |
|
|
|
|
$exercise['path'], |
|
|
|
|
$course_info['real_id'], |
|
|
|
|
$session_id |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
foreach ($question_list as $question_id) { |
|
|
|
|
$question_data = Question::read($question_id); |
|
|
|
|
$main_question_list[$question_id] = $question_data; |
|
|
|
|
$quantity_exercises = 0; |
|
|
|
|
$question_result = 0; |
|
|
|
|
|
|
|
|
|
foreach ($exercise_stats as $stats) { |
|
|
|
|
if (!empty($stats['question_list'])) { |
|
|
|
|
foreach ($stats['question_list'] as $my_question_stat) { |
|
|
|
|
if ($question_id == $my_question_stat['question_id']) { |
|
|
|
|
$question_result = $question_result + $my_question_stat['marks']; |
|
|
|
|
$quantity_exercises++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($quantity_exercises)) { |
|
|
|
|
// Score % average |
|
|
|
|
$main_question_list[$question_id]->results = ($question_result / ($quantity_exercises)); |
|
|
|
|
} else { |
|
|
|
|
$main_question_list[$question_id]->results = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$main_question_list[$question_id]->quantity = $quantity_exercises; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
foreach ($exercise_list as $exercise) { |
|
|
|
|
$my_exercise = new Exercise($course_info['real_id']); |
|
|
|
|
$my_exercise->read($exercise['path']); |
|
|
|
|
$question_list = $my_exercise->selectQuestionList(); |
|
|
|
|
|
|
|
|
|
$exercise_stats = Event::get_all_exercise_event_from_lp( |
|
|
|
|
$exercise['path'], |
|
|
|
|
$course_info['real_id'], |
|
|
|
|
$session_id |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
foreach ($question_list as $question_id) { |
|
|
|
|
$question_data = Question::read($question_id); |
|
|
|
|
$main_question_list[$question_id] = $question_data; |
|
|
|
|
$quantity_exercises = 0; |
|
|
|
|
$question_result = 0; |
|
|
|
|
|
|
|
|
|
foreach ($exercise_stats as $stats) { |
|
|
|
|
if (!empty($stats['question_list'])) { |
|
|
|
|
foreach ($stats['question_list'] as $my_question_stat) { |
|
|
|
|
if ($question_id == $my_question_stat['question_id']) { |
|
|
|
|
$question_result = $question_result + $my_question_stat['marks']; |
|
|
|
|
$quantity_exercises++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($quantity_exercises)) { |
|
|
|
|
// Score % average |
|
|
|
|
$main_question_list[$question_id]->results = ($question_result / ($quantity_exercises)); |
|
|
|
|
} else { |
|
|
|
|
$main_question_list[$question_id]->results = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$main_question_list[$question_id]->quantity = $quantity_exercises; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!$export_to_xls) { |
|
|
|
|
Display::display_header(get_lang("MySpace")); |
|
|
|
|
echo '<div class="actions">'; |
|
|
|
|
if ($global) { |
|
|
|
|
echo MySpace::getTopMenu(); |
|
|
|
|
} else { |
|
|
|
|
echo '<div style="float:left; clear:left"> |
|
|
|
|
<a href="courseLog.php?'.api_get_cidreq().'&studentlist=true">'. |
|
|
|
|
Display::display_header(get_lang("MySpace")); |
|
|
|
|
echo '<div class="actions">'; |
|
|
|
|
if ($global) { |
|
|
|
|
echo MySpace::getTopMenu(); |
|
|
|
|
} else { |
|
|
|
|
echo '<div style="float:left; clear:left"> |
|
|
|
|
<a href="courseLog.php?'.api_get_cidreq().'&studentlist=true">'. |
|
|
|
|
get_lang('StudentsTracking').'</a> | |
|
|
|
|
<a href="courseLog.php?'.api_get_cidreq().'&studentlist=false">'. |
|
|
|
|
<a href="courseLog.php?'.api_get_cidreq().'&studentlist=false">'. |
|
|
|
|
get_lang('CourseTracking').'</a> '; |
|
|
|
|
echo '</div>'; |
|
|
|
|
} |
|
|
|
|
echo '</div>'; |
|
|
|
|
echo '</div>'; |
|
|
|
|
} |
|
|
|
|
echo '</div>'; |
|
|
|
|
|
|
|
|
|
if (api_is_platform_admin()) { |
|
|
|
|
echo MySpace::getAdminActions(); |
|
|
|
|
} |
|
|
|
|
echo '<br />'; |
|
|
|
|
echo '<h2>'.get_lang('LPQuestionListResults').'</h2>'; |
|
|
|
|
if (api_is_platform_admin()) { |
|
|
|
|
echo MySpace::getAdminActions(); |
|
|
|
|
} |
|
|
|
|
echo '<br />'; |
|
|
|
|
echo '<h2>'.get_lang('LPQuestionListResults').'</h2>'; |
|
|
|
|
|
|
|
|
|
$form->display(); |
|
|
|
|
$form->display(); |
|
|
|
|
|
|
|
|
|
if (empty($course_code)) { |
|
|
|
|
echo Display::return_message(get_lang('PleaseSelectACourse'), 'warning'); |
|
|
|
|
} |
|
|
|
|
if (empty($course_code)) { |
|
|
|
|
echo Display::return_message(get_lang('PleaseSelectACourse'), 'warning'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$course_average = array(); |
|
|
|
|
$counter = 0; |
|
|
|
|
|
|
|
|
|
if (!empty($main_question_list) && is_array($main_question_list)) { |
|
|
|
|
$html_result .= '<table class="data_table">'; |
|
|
|
|
$html_result .= '<tr><th>'.get_lang('Question'). |
|
|
|
|
$html_result .= '<table class="data_table">'; |
|
|
|
|
$html_result .= '<tr><th>'.get_lang('Question'). |
|
|
|
|
Display::return_icon('info3.gif', get_lang('QuestionsAreTakenFromLPExercises'), array('align' => 'absmiddle', 'hspace' => '3px')).'</th>'; |
|
|
|
|
$html_result .= '<th>'.$course_info['visual_code'].' '.get_lang('AverageScore').Display::return_icon('info3.gif', get_lang('AllStudentsAttemptsAreConsidered'), array('align' => 'absmiddle', 'hspace' => '3px')).' </th>'; |
|
|
|
|
$html_result .= '<th>'.get_lang('Quantity').'</th>'; |
|
|
|
|
|
|
|
|
|
foreach ($main_question_list as $question) { |
|
|
|
|
$total_student = 0; |
|
|
|
|
$counter++; |
|
|
|
|
$s_css_class = 'row_even'; |
|
|
|
|
if ($counter % 2 == 0) { |
|
|
|
|
$s_css_class = 'row_odd'; |
|
|
|
|
} |
|
|
|
|
$html_result .= "<tr class='$s_css_class'> |
|
|
|
|
<td >"; |
|
|
|
|
$question_title = trim($question->question); |
|
|
|
|
if (empty($question_title)) { |
|
|
|
|
$html_result .= get_lang('Untitled').' '.get_lang('Question').' #'.$question->id; |
|
|
|
|
} else { |
|
|
|
|
$html_result .= $question->question; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
$html_result .= "<td>"; |
|
|
|
|
$html_result .= round($question->results, 2).' / '.$question->weighting; |
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
|
|
|
|
|
$html_result .= "<td>"; |
|
|
|
|
$html_result .= $question->quantity; |
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html_result .= "</tr>"; |
|
|
|
|
$html_result .= '</table>'; |
|
|
|
|
$html_result .= '<th>'.$course_info['visual_code'].' '.get_lang('AverageScore').Display::return_icon('info3.gif', get_lang('AllStudentsAttemptsAreConsidered'), array('align' => 'absmiddle', 'hspace' => '3px')).' </th>'; |
|
|
|
|
$html_result .= '<th>'.get_lang('Quantity').'</th>'; |
|
|
|
|
|
|
|
|
|
foreach ($main_question_list as $question) { |
|
|
|
|
$total_student = 0; |
|
|
|
|
$counter++; |
|
|
|
|
$s_css_class = 'row_even'; |
|
|
|
|
if ($counter % 2 == 0) { |
|
|
|
|
$s_css_class = 'row_odd'; |
|
|
|
|
} |
|
|
|
|
$html_result .= "<tr class='$s_css_class'> |
|
|
|
|
<td >"; |
|
|
|
|
$question_title = trim($question->question); |
|
|
|
|
if (empty($question_title)) { |
|
|
|
|
$html_result .= get_lang('Untitled').' '.get_lang('Question').' #'.$question->id; |
|
|
|
|
} else { |
|
|
|
|
$html_result .= $question->question; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
$html_result .= "<td>"; |
|
|
|
|
$html_result .= round($question->results, 2).' / '.$question->weighting; |
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
|
|
|
|
|
$html_result .= "<td>"; |
|
|
|
|
$html_result .= $question->quantity; |
|
|
|
|
$html_result .= "</td>"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$html_result .= "</tr>"; |
|
|
|
|
$html_result .= '</table>'; |
|
|
|
|
} else { |
|
|
|
|
if (!empty($course_code)) { |
|
|
|
|
echo Display::return_message(get_lang('NoResults'), 'warning'); |
|
|
|
|
} |
|
|
|
|
if (!empty($course_code)) { |
|
|
|
|
echo Display::return_message(get_lang('NoResults'), 'warning'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!$export_to_xls) { |
|
|
|
|
echo $html_result; |
|
|
|
|
echo $html_result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Display::display_footer(); |
|
|
|
|
|