| @@ 2764-2794 (lines=31) @@ | ||
| 2761 | * @param int session id |
|
| 2762 | * @return float Best average score |
|
| 2763 | */ |
|
| 2764 | public static function get_best_average_score_by_exercise( |
|
| 2765 | $exercise_id, |
|
| 2766 | $courseId, |
|
| 2767 | $session_id, |
|
| 2768 | $user_count |
|
| 2769 | ) { |
|
| 2770 | $user_results = Event::get_best_exercise_results_by_user( |
|
| 2771 | $exercise_id, |
|
| 2772 | $courseId, |
|
| 2773 | $session_id |
|
| 2774 | ); |
|
| 2775 | $avg_score = 0; |
|
| 2776 | if (!empty($user_results)) { |
|
| 2777 | foreach ($user_results as $result) { |
|
| 2778 | if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) { |
|
| 2779 | $score = $result['exe_result'] / $result['exe_weighting']; |
|
| 2780 | $avg_score += $score; |
|
| 2781 | } |
|
| 2782 | } |
|
| 2783 | //We asume that all exe_weighting |
|
| 2784 | //$avg_score = show_score( $avg_score / count($user_results) , $result['exe_weighting']); |
|
| 2785 | //$avg_score = ($avg_score / count($user_results)); |
|
| 2786 | if (!empty($user_count)) { |
|
| 2787 | $avg_score = float_format($avg_score / $user_count, 1) * 100; |
|
| 2788 | } else { |
|
| 2789 | $avg_score = 0; |
|
| 2790 | } |
|
| 2791 | } |
|
| 2792 | ||
| 2793 | return $avg_score; |
|
| 2794 | } |
|
| 2795 | ||
| 2796 | /** |
|
| 2797 | * @param string $course_code |
|
| @@ 1928-1950 (lines=23) @@ | ||
| 1925 | * @param int $session_id |
|
| 1926 | * @return string |
|
| 1927 | */ |
|
| 1928 | public static function get_exercise_student_average_best_attempt($exercise_list, $user_id, $courseId, $session_id) |
|
| 1929 | { |
|
| 1930 | $result = 0; |
|
| 1931 | if (!empty($exercise_list)) { |
|
| 1932 | foreach ($exercise_list as $exercise_data) { |
|
| 1933 | $exercise_id = $exercise_data['id']; |
|
| 1934 | $best_attempt = Event::get_best_attempt_exercise_results_per_user( |
|
| 1935 | $user_id, |
|
| 1936 | $exercise_id, |
|
| 1937 | $courseId, |
|
| 1938 | $session_id |
|
| 1939 | ); |
|
| 1940 | ||
| 1941 | if (!empty($best_attempt) && !empty($best_attempt['exe_weighting'])) { |
|
| 1942 | $result += $best_attempt['exe_result']/$best_attempt['exe_weighting']; |
|
| 1943 | } |
|
| 1944 | } |
|
| 1945 | $result = $result / count($exercise_list); |
|
| 1946 | $result = round($result, 2) * 100; |
|
| 1947 | } |
|
| 1948 | ||
| 1949 | return $result.'%'; |
|
| 1950 | } |
|
| 1951 | ||
| 1952 | /** |
|
| 1953 | * get teacher progress by course and session |
|