failed status was not handled correctly by Chamilo

skala
Arnaud Ligot 14 years ago
parent b7e06cacd6
commit bfc2b3d32e
  1. 6
      main/newscorm/learnpathItem.class.php
  2. 2
      main/newscorm/lp_ajax_save_item.php

@ -1131,7 +1131,7 @@ class learnpathItem {
* @return bool True if the item is done ('completed','passed','succeeded'), false otherwise
*/
function is_done(){
if ($this->status_is(array('completed', 'passed', 'succeeded'))) {
if ($this->status_is(array('completed', 'passed', 'succeeded', 'failed'))) {
if (self::debug > 2) { error_log('New LP - In learnpath::is_done() - Item '.$this->get_id().' is complete', 0); }
return true;
}else{
@ -2161,7 +2161,7 @@ class learnpathItem {
$this->last_scorm_session_time = $total_sec;
}
//Step 3 update db only if status != completed, passed, browsed or seriousgamemode not activated
$case_completed=array('completed','passed','browsed'); //TODO COMPLETE
$case_completed=array('completed','passed','browsed','failed'); //TODO COMPLETE
if ($this->seriousgame_mode!=1 || !in_array($row['status'], $case_completed)){
$update_view_sql='UPDATE '.$item_view_table." SET total_time =$total_time".' WHERE lp_item_id="'.$this->db_id.'" AND lp_view_id="'.$this->view_id.'" AND view_count="'.$this->attempt_id.'" ;';
$result=Database::query($update_view_sql);
@ -2381,7 +2381,7 @@ class learnpathItem {
} else {
$my_type_lp = learnpath::get_type_static($this->lp_id);
// This is a array containing values finished
$case_completed = array('completed', 'passed', 'browsed');
$case_completed = array('completed', 'passed', 'browsed', 'failed');
//is not multiple attempts
if ($this->seriousgame_mode==1 && $this->type=='sco') {

@ -140,7 +140,7 @@ function save_item($lp_id, $user_id, $view_id, $item_id, $score = -1, $max = -1,
return $return;
}
$mystatus_in_db = $mylpi->get_status(true);
if ($mystatus_in_db != 'completed' && $mystatus_in_db != 'passed' && $mystatus_in_db != 'browsed') {
if ($mystatus_in_db != 'completed' && $mystatus_in_db != 'passed' && $mystatus_in_db != 'browsed' && $mystatus_in_db != 'failed') {
$mystatus_in_memory = $mylpi->get_status(false);
if ($mystatus_in_memory != $mystatus_in_db) {
$mystatus = $mystatus_in_memory;

Loading…
Cancel
Save