소스 검색

Now show exercises in student session detail

Daniel Barreto 11 년 전
부모
커밋
24096a767e
4개의 변경된 파일38개의 추가작업 그리고 26개의 파일을 삭제
  1. 10 10
      main/inc/lib/sessionmanager.lib.php
  2. 23 8
      main/inc/lib/tracking.lib.php
  3. 3 3
      main/mySpace/lp_tracking.php
  4. 2 5
      main/mySpace/myStudents.php

+ 10 - 10
main/inc/lib/sessionmanager.lib.php

@@ -814,7 +814,7 @@ class SessionManager
         $sql_query = vsprintf($sql, $queryVariables);
 
         if (self::$_debug) {
-            error_log($sql_query);
+            error_log(preg_replace('/\s+/', ' ', $sql_query));
         }
         $rs = Database::query($sql_query);
         while ($user = Database::fetch_array($rs)) {
@@ -828,7 +828,7 @@ class SessionManager
         WHERE c_id = %s ";  //AND session_id = %s
         $sql_query = sprintf($sql, $course['real_id']);
         if (self::$_debug) {
-            error_log($sql_query);
+            error_log(preg_replace('/\s+/', ' ', $sql_query));
         }
         $result = Database::query($sql_query);
         $lessons_total = 0;
@@ -870,7 +870,7 @@ class SessionManager
 
         $sql_query = sprintf($sql, $course['real_id'], $sessionId);
         if (self::$_debug) {
-            error_log($sql_query);
+            error_log(preg_replace('/\s+/', ' ', $sql_query));
         }
         $result = Database::query($sql_query);
         $row = Database::fetch_array($result);
@@ -888,7 +888,7 @@ class SessionManager
         }
         $sql_query = sprintf($sql, $course['real_id'], $sessionId);
         if (self::$_debug) {
-            error_log($sql_query);
+            error_log(preg_replace('/\s+/', ' ', $sql_query));
         }
         $result = Database::query($sql_query);
         $row = Database::fetch_array($result);
@@ -925,7 +925,7 @@ class SessionManager
         }
         $sql_query = sprintf($sql, $course['real_id'], $sessionId);
         if (self::$_debug) {
-            error_log($sql_query);
+            error_log(preg_replace('/\s+/', ' ', $sql_query));
         }
         $result = Database::query($sql_query);
         $row = Database::fetch_array($result);
@@ -944,7 +944,7 @@ class SessionManager
             AND access_user_id = %s ";
             $sql_query  = sprintf($sql, $course['code'], $user['id_session'], $user['user_id']);
             if (self::$_debug) {
-                error_log($sql_query);
+                error_log(preg_replace('/\s+/', ' ', $sql_query));
             }
             $result     = Database::query($sql_query);
             $row        = Database::fetch_array($result);
@@ -958,7 +958,7 @@ class SessionManager
 
             //Exercises
             $exercises_progress     = str_replace('%', '', Tracking::get_exercise_student_progress($exercises, $user['user_id'], $course['code'], $user['id_session']));
-            $exercises_done         = ($exercises_progress * $exercises_total) / 100;
+            $exercises_done         = round(($exercises_progress * $exercises_total) / 100);
             $exercises_left         = $exercises_total - $exercises_done;
 
             //Assignments
@@ -978,7 +978,7 @@ class SessionManager
             where c_id = %s and session_id = %s and user_id = %s";
             $sql_query  = sprintf($sql, $course['real_id'], $user['id_session'], $user['user_id']);
             if (self::$_debug) {
-                error_log($sql_query);
+                error_log(preg_replace('/\s+/', ' ', $sql_query));
             }
             $result     = Database::query($sql_query);
             $row        = Database::fetch_array($result);
@@ -993,7 +993,7 @@ class SessionManager
             AND c_id = %s";
             $sql_query  = sprintf($sql, $user['user_id'], $course['code'], $course['real_id']);
             if (self::$_debug) {
-                error_log($sql_query);
+                error_log(preg_replace('/\s+/', ' ', $sql_query));
             }
             $result     = Database::query($sql_query);
             $row        = Database::fetch_array($result);
@@ -1023,7 +1023,7 @@ class SessionManager
             WHERE p.poster_id = %s and f.session_id = %s and p.c_id = %s";
             $sql_query  = sprintf($sql, $user['user_id'], $user['id_session'], $course['real_id']);
             if (self::$_debug) {
-                error_log($sql_query);
+                error_log(preg_replace('/\s+/', ' ', $sql_query));
             }
             $result     = Database::query($sql_query);
             $row        = Database::fetch_array($result);

+ 23 - 8
main/inc/lib/tracking.lib.php

@@ -441,14 +441,23 @@ class Tracking
 
     /**
      * Get count student's exercise COMPLETED attempts
-     * @param    int     Student id
-     * @param    string    Course code
-     * @param    int        Exercise id
-     * @param    int        Learning path id (optional), for showing attempts inside a learning path $lp_id and $lp_item_id params are required.
-     * @param    int        Learning path item id (optional), for showing attempts inside a learning path $lp_id and $lp_item_id params are required.
+     * @param $student_id
+     * @param $course_code
+     * @param $exercise_id
+     * @param int $lp_id
+     * @param int $lp_item_id
+     * @param int $session_id
+     * @param int $find_all_lp  0 = just LP specified
+     *                          1 = LP specified or whitout LP,
+     *                          2 = all rows
+     * @internal param \Student $int id
+     * @internal param \Course $string code
+     * @internal param \Exercise $int id
+     * @internal param \Learning $int path id (optional), for showing attempts inside a learning path $lp_id and $lp_item_id params are required.
+     * @internal param \Learning $int path item id (optional), for showing attempts inside a learning path $lp_id and $lp_item_id params are required.
      * @return  int     count of attempts
      */
-    public static function count_student_exercise_attempts($student_id, $course_code, $exercise_id, $lp_id = 0, $lp_item_id = 0, $session_id = 0) {
+    public static function count_student_exercise_attempts($student_id, $course_code, $exercise_id, $lp_id = 0, $lp_item_id = 0, $session_id = 0, $find_all_lp = 0) {
     	$course_code = Database::escape_string($course_code);
     	$student_id  = intval($student_id);
     	$exercise_id = intval($exercise_id);
@@ -465,11 +474,17 @@ class Tracking
                 WHERE  ex.exe_cours_id = '$course_code'
                 AND ex.exe_exo_id = $exercise_id
                 AND status = ''
-                AND orig_lp_id = $lp_id
-                AND orig_lp_item_id = $lp_item_id
                 AND exe_user_id= $student_id
                 AND session_id = $session_id ";
 
+        if ($find_all_lp == 1) {
+            $sql .= "AND (orig_lp_id = $lp_id OR orig_lp_id = 0)
+                AND (orig_lp_item_id = $lp_item_id OR orig_lp_item_id = 0)";
+        } elseif ($find_all_lp == 0) {
+            $sql .= "AND orig_lp_id = $lp_id
+                AND orig_lp_item_id = $lp_item_id";
+        }
+
     	$rs = Database::query($sql);
     	$row = Database::fetch_row($rs);
     	$count_attempts = $row[0];

+ 3 - 3
main/mySpace/lp_tracking.php

@@ -89,7 +89,7 @@ $table_title = ($session_name? Display::return_icon('session.png', get_lang('Ses
                 Display::return_icon('user.png', get_lang('User'), array(), ICON_SIZE_SMALL).' '.$name;
 echo Display::page_header($table_title);
 echo Display::page_subheader('<h3>'.Display::return_icon('learnpath.png', get_lang('ToolLearnpath'), array(), ICON_SIZE_SMALL).' '.$lp_title.'</h3>');
- 
+
 //Needed in newscorm/lp_stats.php
 $list = learnpath :: get_flat_ordered_items_list($lp_id, 0, $course_info['real_id']);
 
@@ -101,8 +101,8 @@ if ($export_csv) {
 	ob_start();
 	require_once  api_get_path(SYS_CODE_PATH).'newscorm/lp_stats.php';
 	$tracking_content = ob_get_contents();
-	ob_end_clean();    
+	ob_end_clean();
 	echo api_utf8_decode($tracking_content, $charset);
-    
+
 }
 Display :: display_footer();

+ 2 - 5
main/mySpace/myStudents.php

@@ -875,7 +875,6 @@ if (empty($_GET['details'])) {
 		$t_quiz = Database :: get_course_table(TABLE_QUIZ_TEST);
 		$sql_exercices = "SELECT quiz.title, id FROM " . $t_quiz . " AS quiz
 						  WHERE quiz.c_id =  ".$info_course['real_id']." AND
-						  		active='1' AND
 								(quiz.session_id = $session_id OR quiz.session_id = 0)
 							ORDER BY quiz.title ASC ";
 
@@ -885,7 +884,7 @@ if (empty($_GET['details'])) {
 			while ($exercices = Database :: fetch_array($result_exercices)) {
 				$exercise_id = intval($exercices['id']);
 
-				$count_attempts   = Tracking::count_student_exercise_attempts($student_id, $course_code, $exercise_id, 0, 0, $session_id);
+				$count_attempts   = Tracking::count_student_exercise_attempts($student_id, $course_code, $exercise_id, 0, 0, $session_id, 2);
 				$score_percentage = Tracking::get_avg_student_exercise_score($student_id, $course_code, $exercise_id, $session_id);
 
 				$csv_content[] = array (
@@ -917,9 +916,7 @@ if (empty($_GET['details'])) {
 				                            exe_user_id     ="'.$student_id.'" AND
 				                            exe_cours_id    ="'.$course_code.'" AND
                                             session_id      ="'.$session_id.'" AND
-				                            status          = "" AND
-				                            orig_lp_id      = 0 AND
-				                            orig_lp_item_id = 0
+				                            status          = ""
 				                            ORDER BY exe_date DESC LIMIT 1';
 				$result_last_attempt = Database::query($sql_last_attempt);
 				if (Database :: num_rows($result_last_attempt) > 0) {