Code Duplication    Length = 23-31 lines in 2 locations

main/inc/lib/tracking.lib.php 1 location

@@ 2107-2129 (lines=23) @@
2104
     * @param int $session_id
2105
     * @return string
2106
     */
2107
    public static function get_exercise_student_average_best_attempt($exercise_list, $user_id, $courseId, $session_id)
2108
    {
2109
        $result = 0;
2110
        if (!empty($exercise_list)) {
2111
            foreach ($exercise_list as $exercise_data) {
2112
                $exercise_id = $exercise_data['id'];
2113
                $best_attempt = Event::get_best_attempt_exercise_results_per_user(
2114
                    $user_id,
2115
                    $exercise_id,
2116
                    $courseId,
2117
                    $session_id
2118
                );
2119
2120
                if (!empty($best_attempt) && !empty($best_attempt['exe_weighting'])) {
2121
                    $result += $best_attempt['exe_result'] / $best_attempt['exe_weighting'];
2122
                }
2123
            }
2124
            $result = $result / count($exercise_list);
2125
            $result = round($result, 2) * 100;
2126
        }
2127
2128
        return $result.'%';
2129
    }
2130
2131
    /**
2132
     * get teacher progress by course and session

main/inc/lib/exercise.lib.php 1 location

@@ 2976-3006 (lines=31) @@
2973
     * @param    int        session id
2974
     * @return    float    Best average score
2975
     */
2976
    public static function get_best_average_score_by_exercise(
2977
        $exercise_id,
2978
        $courseId,
2979
        $session_id,
2980
        $user_count
2981
    )
2982
    {
2983
        $user_results = Event::get_best_exercise_results_by_user(
2984
            $exercise_id,
2985
            $courseId,
2986
            $session_id
2987
        );
2988
        $avg_score = 0;
2989
        if (!empty($user_results)) {
2990
            foreach ($user_results as $result) {
2991
                if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) {
2992
                    $score = $result['exe_result'] / $result['exe_weighting'];
2993
                    $avg_score += $score;
2994
                }
2995
            }
2996
            //We asumme that all exe_weighting
2997
            //$avg_score = show_score( $avg_score / count($user_results) , $result['exe_weighting']);
2998
            //$avg_score = ($avg_score / count($user_results));
2999
            if (!empty($user_count)) {
3000
                $avg_score = float_format($avg_score / $user_count, 1) * 100;
3001
            } else {
3002
                $avg_score = 0;
3003
            }
3004
        }
3005
3006
        return $avg_score;
3007
    }
3008
3009
    /**