Browse Source

Adding user is in course col only in reports see BT#8746

Julio Montoya 10 years ago
parent
commit
6d458b1df5
1 changed files with 62 additions and 49 deletions
  1. 62 49
      main/exercice/exercise_result.class.php

+ 62 - 49
main/exercice/exercise_result.class.php

@@ -53,7 +53,6 @@ class ExerciseResult
 
         $TBL_USER = Database::get_main_table(TABLE_MAIN_USER);
         $TBL_TRACK_EXERCISES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
-        $TBL_TRACK_HOTPOTATOES = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
         $TBL_TRACK_ATTEMPT_RECORDING = Database:: get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING);
 
         $cid = api_get_course_id();
@@ -62,7 +61,6 @@ class ExerciseResult
         $sessionId = api_get_session_id();
         $session_id_and = ' AND te.session_id = ' . $sessionId . ' ';
         $exercise_id = intval($exercise_id);
-        $hotpotato_name = Database::escape_string($hotpotato_name);
 
         if (!empty($exercise_id)) {
             $session_id_and .= " AND exe_exo_id = $exercise_id ";
@@ -93,7 +91,6 @@ class ExerciseResult
                     te.status != 'incomplete' AND
                     te.exe_cours_id='" . Database :: escape_string($cid) . "'  $user_id_and  $session_id_and AND
                     ce.active <>-1";
-
 		} else {
             $user_id_and = ' AND te.exe_user_id = ' . api_get_user_id() . ' ';
 			// get only this user's results
@@ -148,31 +145,38 @@ class ExerciseResult
         $filter_by_not_revised = false;
         $filter_by_revised = false;
 
-		if ($filter) {
-			switch ($filter) {
-				case 1 :
+        if ($filter) {
+            switch ($filter) {
+                case 1 :
                     $filter_by_not_revised = true;
                     break;
-				case 2 :
+                case 2 :
                     $filter_by_revised = true;
                     break;
-				default :
+                default :
                     null;
-			}
-		}
+            }
+        }
+
+        if (empty($sessionId)) {
+            $students = CourseManager::get_user_list_from_course_code($cid);
+        } else {
+            $students = CourseManager::get_user_list_from_course_code($cid, $sessionId);
+        }
+        $studentsUserIdList = array_keys($students);
 
-		// Print the results of tests
+        // Print the results of tests
         $userWithResults = array();
-		if (is_array($results)) {
+        if (is_array($results)) {
             $i = 0;
-			foreach ($results as $result) {
-				$revised = false;
+            foreach ($results as $result) {
+                $revised = false;
 
-				//revised or not
-				$sql_exe = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT_RECORDING
-							WHERE author != '' AND exe_id = ".Database :: escape_string($result['exid'])."
-							LIMIT 1";
-				$query = Database::query($sql_exe);
+                //revised or not
+                $sql_exe = "SELECT exe_id FROM $TBL_TRACK_ATTEMPT_RECORDING
+                            WHERE author != '' AND exe_id = ".Database :: escape_string($result['exid'])."
+                            LIMIT 1";
+                $query = Database::query($sql_exe);
 
                 if (Database:: num_rows($query) > 0) {
                     $revised = true;
@@ -204,6 +208,12 @@ class ExerciseResult
                 $return[$i]['lp_id'] = $result['orig_lp_id'];
                 $return[$i]['lp_name'] = $result['lp_name'];
 
+                if (in_array($result['excruid'], $studentsUserIdList)) {
+                    $return[$i]['is_user_subscribed'] = get_lang('Yes');
+                } else {
+                    $return[$i]['is_user_subscribed'] = get_lang('No');
+                }
+
                 $userWithResults[$result['excruid']] = 1;
                 $i++;
 			}
@@ -212,11 +222,7 @@ class ExerciseResult
         if ($this->includeAllUsers) {
             $latestId = count($return);
             $userWithResults = array_keys($userWithResults);
-            if (empty($sessionId)) {
-                $students = CourseManager::get_user_list_from_course_code($cid);
-            } else {
-                $students = CourseManager::get_user_list_from_course_code($cid, $sessionId);
-            }
+
 
             if (!empty($students)) {
                 foreach ($students as $student) {
@@ -246,6 +252,7 @@ class ExerciseResult
                         $return[$i]['status'] = get_lang('NotAttempted');
                         $return[$i]['lp_id'] = null;
                         $return[$i]['lp_name'] = null;
+                        $return[$i]['is_user_subscribed'] = get_lang('Yes');
 
                         $latestId++;
                     }
@@ -321,6 +328,7 @@ class ExerciseResult
 		$data .= get_lang('Total').';';
         $data .= get_lang('Status').';';
         $data .= get_lang('ToolLearnpath').';';
+        $data .= get_lang('UserIsCurrentlySubscribed').';';
 		$data .= "\n";
 
 		//results
@@ -357,6 +365,7 @@ class ExerciseResult
 			$data .= str_replace("\r\n",'  ',$row['max']).';';
             $data .= str_replace("\r\n",'  ',$row['status']).';';
             $data .= str_replace("\r\n",'  ',$row['lp_name']).';';
+            $data .= str_replace("\r\n",'  ',$row['is_user_subscribed']).';';
 			$data .= "\n";
 		}
 
@@ -422,14 +431,14 @@ class ExerciseResult
 
 		if ($with_column_user) {
             if (api_is_western_name_order()) {
-    			$worksheet->write($line,$column,get_lang('FirstName'));
+    			$worksheet->write($line, $column,get_lang('FirstName'));
     			$column++;
-                $worksheet->write($line,$column,get_lang('LastName'));
+                $worksheet->write($line, $column,get_lang('LastName'));
                 $column++;
             } else {
-                $worksheet->write($line,$column,get_lang('LastName'));
+                $worksheet->write($line, $column,get_lang('LastName'));
                 $column++;
-                $worksheet->write($line,$column,get_lang('FirstName'));
+                $worksheet->write($line, $column,get_lang('FirstName'));
                 $column++;
             }
 
@@ -438,10 +447,10 @@ class ExerciseResult
                 $column++;
             }
 
-		    $worksheet->write($line,$column,get_lang('Email'));
+            $worksheet->write($line, $column, get_lang('Email'));
 		    $column++;
 		}
-	    $worksheet->write($line,$column,get_lang('Groups'));
+        $worksheet->write($line, $column, get_lang('Groups'));
 	    $column++;
 
 		if ($export_user_fields) {
@@ -455,21 +464,23 @@ class ExerciseResult
 			}
 		}
 
-		$worksheet->write($line,$column, get_lang('Title'));
+		$worksheet->write($line, $column, get_lang('Title'));
 		$column++;
-		$worksheet->write($line,$column, get_lang('StartDate'));
+		$worksheet->write($line, $column, get_lang('StartDate'));
         $column++;
-        $worksheet->write($line,$column, get_lang('EndDate'));
+        $worksheet->write($line, $column, get_lang('EndDate'));
         $column++;
-        $worksheet->write($line,$column, get_lang('Duration').' ('.get_lang('MinMinutes').')');
+        $worksheet->write($line, $column, get_lang('Duration').' ('.get_lang('MinMinutes').')');
 		$column++;
-		$worksheet->write($line,$column, get_lang('Score'));
+		$worksheet->write($line, $column, get_lang('Score'));
 		$column++;
-		$worksheet->write($line,$column, get_lang('Total'));
+		$worksheet->write($line, $column, get_lang('Total'));
 		$column++;
-        $worksheet->write($line,$column, get_lang('Status'));
+        $worksheet->write($line, $column, get_lang('Status'));
 		$column++;
-        $worksheet->write($line,$column, get_lang('ToolLearnpath'));
+        $worksheet->write($line, $column, get_lang('ToolLearnpath'));
+        $column++;
+        $worksheet->write($line, $column, get_lang('UserIsCurrentlySubscribed'));
 		$line++;
 
 		foreach ($this->results as $row) {
@@ -511,19 +522,21 @@ class ExerciseResult
 
 			$worksheet->write($line,$column,api_html_entity_decode(strip_tags($row['title']), ENT_QUOTES, $charset));
 			$column++;
-			$worksheet->write($line,$column,$row['start_date']);
+            $worksheet->write($line, $column, $row['start_date']);
             $column++;
-			$worksheet->write($line,$column,$row['end_date']);
+            $worksheet->write($line, $column, $row['end_date']);
             $column++;
-			$worksheet->write($line,$column,$row['duration']);
-			$column++;
-			$worksheet->write($line,$column,$row['result']);
-			$column++;
-			$worksheet->write($line,$column,$row['max']);
-			$column++;
-            $worksheet->write($line,$column,$row['status']);
-			$column++;
-            $worksheet->write($line,$column,$row['lp_name']);
+            $worksheet->write($line, $column, $row['duration']);
+            $column++;
+            $worksheet->write($line, $column, $row['result']);
+            $column++;
+            $worksheet->write($line, $column, $row['max']);
+            $column++;
+            $worksheet->write($line, $column, $row['status']);
+            $column++;
+            $worksheet->write($line, $column, $row['lp_name']);
+            $column++;
+            $worksheet->write($line, $column, $row['is_user_subscribed']);
 			$line++;
 		}
 		//output the results