diff --git a/main/exercice/exercice.php b/main/exercice/exercice.php
index 52d2c28ec6..4fc10324ea 100644
--- a/main/exercice/exercice.php
+++ b/main/exercice/exercice.php
@@ -1,4 +1,4 @@
-1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
@@ -1002,7 +1002,7 @@ if ($_configuration['tracking_enabled'] AND ($show == 'result') )
$user_id_and = ' AND te.exe_user_id = ' . Database::escape_string ( api_get_user_id() ).' ';
$sql="SELECT CONCAT(lastname,' ',firstname) as users,ce.title, te.exe_result ,
- te.exe_weighting, UNIX_TIMESTAMP(te.exe_date),te.exe_id,email,UNIX_TIMESTAMP(te.start_date),steps_counter,user_id
+ te.exe_weighting, UNIX_TIMESTAMP(te.exe_date),te.exe_id,email,UNIX_TIMESTAMP(te.start_date),steps_counter,user_id,te.exe_duration
FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user
WHERE te.exe_exo_id = ce.id AND te.status != 'incomplete' AND user_id=te.exe_user_id AND te.exe_cours_id='".Database::escape_string($_cid)."'
AND user.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
@@ -1016,7 +1016,7 @@ if ($_configuration['tracking_enabled'] AND ($show == 'result') )
}
- $results=getManyResultsXCol($sql,10);
+ $results=getManyResultsXCol($sql,11);
$hpresults=getManyResultsXCol($hpsql,5);
$NoTestRes = 0;
@@ -1063,6 +1063,7 @@ if ($_configuration['tracking_enabled'] AND ($show == 'result') )
$test = $results[$i][1];
$dt = strftime($dateTimeFormatLong,$results[$i][4]);
$res = $results[$i][2];
+ $duration = intval($results[$i][11]);
echo '
';
echo '| '.$add_start_date.format_locale_date('%b %d, %Y %H:%M',$results[$i][4]).' | ';//get_lang('dateTimeFormatLong')
+ echo ''.sprintf(get_lang('DurationFormat'), $duration).' | ';
echo ''.round(($res/($results[$i][3]!=0?$results[$i][3]:1))*100).'% ('.$res.' / '.$results[$i][3].') | ';
echo ''.(($is_allowedToEdit||$is_tutor)?
"".
diff --git a/main/exercice/exercice_submit.php b/main/exercice/exercice_submit.php
index 163b496d59..2baf75f5b7 100644
--- a/main/exercice/exercice_submit.php
+++ b/main/exercice/exercice_submit.php
@@ -1,4 +1,4 @@
-0) {
+ $answer = Database::result($res,0,"id");
+ exercise_attempt($questionScore,$answer,$quesId,$exeId,0);
+ }
+ } else {
exercise_attempt($questionScore,$answer,$quesId,$exeId,0);
}
}
@@ -1079,117 +1077,110 @@ $exerciseTitle=api_parse_tex($exerciseTitle);
==============================================================================
*/
-if($_configuration['tracking_enabled'])
-{
+if($_configuration['tracking_enabled']) {
// Updates the empty exercise
$safe_lp_id = $learnpath_id==''?0:(int)$learnpath_id;
$safe_lp_item_id = $learnpath_item_id==''?0:(int)$learnpath_item_id;
- update_event_exercice($exeId, $objExercise->selectId(),$totalScore,$totalWeighting,api_get_session_id(),$safe_lp_id,$safe_lp_item_id);
+ $quizDuration = (!empty($_SESSION['quizStartTime']) ? time() - $_SESSION['quizStartTime'] : 0);
+ update_event_exercice($exeId, $objExercise->selectId(),$totalScore,$totalWeighting,api_get_session_id(),$safe_lp_id,$safe_lp_item_id,$quizDuration);
}
-if($objExercise->results_disabled)
-{
+if($objExercise->results_disabled) {
ob_end_clean();
Display :: display_normal_message(get_lang('ExerciseFinished').' '.get_lang('Back').'',false);
}
-if ($origin != 'learnpath')
-{
+if ($origin != 'learnpath') {
//we are not in learnpath tool
Display::display_footer();
-}else{
+} else {
//record the results in the learning path, using the SCORM interface (API)
echo ''."\n";
echo ' |