Adding MyQCM view not functional yet see BT#1631

skala
Julio Montoya 14 years ago
parent 0eef379abd
commit deee7f2735
  1. 2
      main/auth/my_progress.php
  2. 4
      main/inc/ajax/course_home.ajax.php
  3. 50
      main/inc/lib/events.lib.inc.php
  4. 133
      main/session/index.php

@ -359,7 +359,7 @@ if (!empty($course_in_session)) {
while ($exercices = Database::fetch_array($result_exercices)) {
$score = 0;
$weighting = 0;
$exercise_stats = get_all_exercise_event($exercices['id'],$course_info['code'], $session_id);
$exercise_stats = get_all_exercise_results($exercices['id'],$course_info['code'], $session_id);
$attempts = 0;
foreach($exercise_stats as $exercise_stat) {
if ($exercise_stat['exe_user_id'] == $_user['user_id']) {

@ -103,12 +103,11 @@ switch ($action) {
$course_list = SessionManager::get_course_list_by_session_id($session_id);
$count = 0;
foreach ($course_list as $item) {
$list = new LearnpathList(api_get_user_id(),$item['code']);
$flat_list = $list->get_flat_list();
$flat_list = $list->get_flat_list();
$lps[$item['code']] = $flat_list;
foreach($flat_list as $lp_id => $lp_item) {
@ -128,6 +127,7 @@ switch ($action) {
}
}
if($count > 0 && $limit > 0) {
$total_pages = ceil($count/$limit);
} else {

@ -668,11 +668,18 @@ function delete_student_lp_events($user_id, $lp_id, $course, $session_id) {
}
}
function get_all_exercise_event($exercise_id, $course_code, $session_id = 0) {
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$course_code = Database::escape_string($course_code);
/**
* Gets all exercise results (NO Exercises in LPs )from a given exercise id, course, session
* @param int exercise id
* @param string course code
* @param int session id
* @return array with the results
*
*/
function get_all_exercise_results($exercise_id, $course_code, $session_id = 0) {
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$course_code = Database::escape_string($course_code);
$exercise_id = intval($exercise_id);
$session_id = intval($session_id);
@ -692,6 +699,39 @@ function get_all_exercise_event($exercise_id, $course_code, $session_id = 0) {
return $list;
}
/**
* Gets all exercise results (NO Exercises in LPs )from a given exercise id, course, session
* @param int exercise id
* @param string course code
* @param int session id
* @return array with the results
*
*/
function get_all_exercise_results_by_user($user_id, $exercise_id, $course_code, $session_id = 0) {
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
$TBL_TRACK_ATTEMPT = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
$course_code = Database::escape_string($course_code);
$exercise_id = intval($exercise_id);
$session_id = intval($session_id);
$user_id = intval($user_id);
$sql = "SELECT * FROM $TABLETRACK_EXERCICES WHERE status = '' AND exe_cours_id = '$course_code' AND exe_exo_id = $exercise_id AND session_id = $session_id AND orig_lp_id = 0 AND orig_lp_item_id = 0 AND exe_user_id = $user_id ORDER by exe_id";
$res = api_sql_query($sql,__FILE__,__LINE__);
$list = array();
while($row = Database::fetch_array($res,'ASSOC')) {
$list[$row['exe_id']] = $row;
$sql = "SELECT * FROM $TBL_TRACK_ATTEMPT WHERE exe_id = {$row['exe_id']}";
$res_question = api_sql_query($sql,__FILE__,__LINE__);
while($row_q = Database::fetch_array($res_question,'ASSOC')) {
$list[$row['exe_id']]['question_list'][$row_q['question_id']] = $row_q;
}
}
//echo '<pre>'; print_r($list);
return $list;
}
function get_all_exercise_event_from_lp($exercise_id, $course_code, $session_id = 0) {
$TABLETRACK_EXERCICES = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);

@ -17,13 +17,12 @@ api_block_anonymous_users(); // Only users who are logged in can proceed.
$this_section = SECTION_COURSES;
//Tab js
$htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-ui/cupertino/jquery-ui-1.8.7.custom.css" type="text/css">';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-1.4.4.min.js" type="text/javascript" language="javascript"></script>'; //jQuery
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery-ui/cupertino/jquery-ui-1.8.7.custom.min.js" type="text/javascript" language="javascript"></script>';
//Grid js
$htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/css/ui.jqgrid.css" type="text/css">';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript" language="javascript"></script>';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript" language="javascript"></script>';
@ -83,27 +82,91 @@ foreach ($course_list as $item) {
$new_session_list = UserManager::get_personal_session_course_list(api_get_user_id());
echo '<pre>';
//echo '<pre>';
$my_session_list = array();
foreach($new_session_list as $item) {
if (isset($item['id_session'])) {
$my_course_list = UserManager::get_courses_list_by_session(api_get_user_id(),$item['id_session'] );
foreach ($my_course_list as $my_course) {
$course_info = api_get_course_info($my_course['code']);
$exercise_list = get_all_exercises($course_info);
foreach($exercise_list as $exercise_item) {
$exercise = new Exercise($course_info['real_id']);
$exercise->read($exercise_item['id']);
$exercise->exercise;
}
}
$my_session_list[$item['id_session']]['session_name']= $item['session_name'];
$my_session_list[$item['id_session']]['courses']= $my_course_list;
}
}
foreach ($my_session_list as $my_session_id => $data) {
//$my_course_list = $data();
$final_array = array();
if (!empty($new_session_list)) {
foreach($new_session_list as $item) {
$my_session_id = $item['id_session'];
if (isset($my_session_id) && !in_array($my_session_id, $my_session_list)) {
$final_array[$my_session_id]['name'] = $item['session_name'];
$my_course_list = UserManager::get_courses_list_by_session(api_get_user_id(), $my_session_id );
$course = array();
foreach ($my_course_list as $my_course) {
$course_info = api_get_course_info($my_course['code']);
$exercise_list = get_all_exercises($course_info);
//Exercises we skip
/*if (empty($exercise_list)) {
continue;
} */
$exercise_course_list = array();
$course['name'] = $course_info['name'];
if (!empty($exercise_list)) {
foreach($exercise_list as $exercise_item) {
$exercise = new Exercise($course_info['real_id']);
$exercise->read($exercise_item['id']);
$exercise_course_list[$exercise_item['id']] = $exercise;
$user_results = get_all_exercise_results_by_user(api_get_user_id(), $exercise_item['id'], $my_course['code'], $my_session_id);
//print_r($user_results);
$course['exercises'][$exercise_item['id']]['name'] = $exercise->exercise;
$course['exercises'][$exercise_item['id']]['data'] = $user_results;
//print_r($user_results);
}
$final_array[$my_session_id]['data'][$my_course['code']] = $course;
}
}
}
$my_session_list[] = $my_session_id;
}
}
//print_r($final_array); exit;
require_once api_get_path(LIBRARY_PATH).'pear/HTML/Table.php';
$html = '';
foreach($final_array as $session_data) {
$html .=Display::tag('h1',$session_data['name']);
$course_list = $session_data['data'];
foreach ($course_list as $course_data) {
$table = new HTML_Table(array('class' => 'data_table'));
$row = 0;
$column = 0;
$header_names = array(get_lang('Course'),get_lang('Exercise'),get_lang('Attempt'),get_lang('Results'),get_lang('Score'), get_lang('Ranking'));
foreach ($header_names as $item) {
$table->setHeaderContents($row, $column, $item);
$column++;
}
$row = 1;
$column = 0;
$table->setCellContents($row, $column, $course_data['name']);
$column++;
if (!empty($course_data['exercises'])) {
foreach ($course_data['exercises'] as $exercise_data) {
foreach ($exercise_data['data'] as $exercise_result) {
$my_exercise_result = array($exercise_data['name'], $exercise_result['exe_id']);
$column = 1;
foreach ($my_exercise_result as $data) {
$table->setCellContents($row, $column, $data);
//$table->updateCellAttributes($row, $column, 'align="center"');
$column++;
}
$row++;
}
}
}
$html .=$table->toHtml();
}
}
//print_r($my_session_list);
//Exercise list
@ -129,15 +192,15 @@ $extra_params_course['groupingView'] = array('groupField'=>array('course'),
'groupText' => array('<b>Course {0} - {1} Item(s)</b>'));
//Week grid
$url_week = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_course&session_id='.$session_id;
$url_week = api_get_path(WEB_AJAX_PATH).'course_home.ajax.php?a=session_courses_lp_by_week&session_id='.$session_id;
$column_week = array('Week','Date','Course', 'LP');
$column_week_model =array(array('name'=>'week', 'index'=>'week', 'width'=>'120', 'align'=>'right'),
array('name'=>'date', 'index'=>'date', 'width'=>'120', 'align'=>'right'),
array('name'=>'course', 'index'=>'course', 'width'=>'120', 'align'=>'right'),
array('name'=>'lp', 'index'=>'lp', 'width'=>'120','align'=>'right'));
$column_week_model =array(array('name'=>'week', 'index'=>'week', 'width'=>'120', 'align'=>'right'),
array('name'=>'date', 'index'=>'date', 'width'=>'120', 'align'=>'right'),
array('name'=>'course', 'index'=>'course', 'width'=>'120', 'align'=>'right'),
array('name'=>'lp', 'index'=>'lp', 'width'=>'120', 'align'=>'right'));
$extra_params_week['grouping'] = 'true';
$extra_params_week['groupingView'] = array('groupField'=>array('week'),
'groupColumnShow'=>array('false'),
'groupColumnShow'=>'false',
'groupText' => array('<b>Week {0} - {1} Item(s)</b>'));
?>
<br />
@ -149,16 +212,12 @@ $extra_params_week['groupingView'] = array('groupField'=>array('week'),
$(function() {
$( "#tabs" ).tabs();
$( "#sub_tab" ).tabs();
<?php
$( "#sub_tab" ).tabs();
<?php
echo Display::grid_js('list_default', $url, $columns,$column_model);
echo Display::grid_js('list_course', $url_course,$columns,$column_model,$extra_params_course);
echo Display::grid_js('list_week', $url_week, $column_week,$column_week_model, $extra_params_week);
echo Display::grid_js('exercise_list', $exercise_grid_url, $column_week,$column_week_model, $extra_params_week);
?>
echo Display::grid_js('list_week', $url_week, $column_week,$column_week_model, $extra_params_week);
?>
});
</script>
@ -167,7 +226,7 @@ $(function() {
$headers = array(get_lang('LearningPaths'), get_lang('MyQCM'), get_lang('MyResults'));
$sub_header = array(get_lang('AllLearningPaths'), get_lang('PerWeek'), get_lang('ByCourse'));
$tabs = Display::tabs($sub_header, array(Display::grid_html('list_default'), Display::grid_html('list_week'), Display::grid_html('list_course')),'sub_tab');
echo Display::tabs($headers, array($tabs,'bbb','ccc'));
echo Display::tabs($headers, array($tabs, $html,'ccc'));
// Footer
Display :: display_footer();
Loading…
Cancel
Save