From 5e5daa95469d4cd27fbbcee1d1ca9fafeafa160c Mon Sep 17 00:00:00 2001 From: Julian Prud'homme Date: Fri, 30 Mar 2007 15:33:42 +0200 Subject: [PATCH] [svn r11812] fix a bug when calculating the progress (avoid 4/3 completed items for example) --- main/newscorm/learnpath.class.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/main/newscorm/learnpath.class.php b/main/newscorm/learnpath.class.php index 37178ac397..9f5b161917 100644 --- a/main/newscorm/learnpath.class.php +++ b/main/newscorm/learnpath.class.php @@ -2238,11 +2238,19 @@ class learnpath { $res = api_sql_query($sql); $row = Database::fetch_array($res); $total = $row[0]; - $tbl = Database::get_course_table('lp_item_view', $course_db); + $tbl_item_view = Database::get_course_table('lp_item_view', $course_db); + $tbl_item = Database::get_course_table('lp_item', $course_db); + //$sql = "SELECT count(distinct(lp_item_id)) FROM $tbl WHERE lp_view_id = ".$view_id." AND status IN ('passed','completed','succeeded')"; //trying as also counting browsed and failed items - $sql = "SELECT count(distinct(lp_item_id)) FROM $tbl WHERE lp_view_id = ".$view_id." AND status IN ('passed','completed','succeeded','browsed','failed')"; - $res = api_sql_query($sql); + $sql = "SELECT count(distinct(lp_item_id)) + FROM $tbl_item_view as item_view + INNER JOIN $tbl_item as item + ON item.id = item_view.lp_item_id + AND item_type NOT IN('dokeos_chapter','chapter','dir') + WHERE lp_view_id = ".$view_id." + AND status IN ('passed','completed','succeeded','browsed','failed')"; + $res = api_sql_query($sql, __FILE__, __LINE__); $row = Database::fetch_array($res); $completed = $row[0]; if($mode == 'abs'){