Code Duplication    Length = 23-31 lines in 2 locations

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

@@ 2221-2243 (lines=23) @@
2218
     * @param int $session_id
2219
     * @return string
2220
     */
2221
    public static function get_exercise_student_average_best_attempt(
2222
        $exercise_list,
2223
        $user_id,
2224
        $courseId,
2225
        $session_id
2226
    ) {
2227
        $result = 0;
2228
        if (!empty($exercise_list)) {
2229
            foreach ($exercise_list as $exercise_data) {
2230
                $exercise_id = $exercise_data['id'];
2231
                $best_attempt = Event::get_best_attempt_exercise_results_per_user(
2232
                    $user_id,
2233
                    $exercise_id,
2234
                    $courseId,
2235
                    $session_id
2236
                );
2237
2238
                if (!empty($best_attempt) && !empty($best_attempt['exe_weighting'])) {
2239
                    $result += $best_attempt['exe_result'] / $best_attempt['exe_weighting'];
2240
                }
2241
            }
2242
            $result = $result / count($exercise_list);
2243
            $result = round($result, 2) * 100;
2244
        }
2245
2246
        return $result.'%';

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

@@ 3056-3086 (lines=31) @@
3053
     * @param    int        session id
3054
     * @return    float    Best average score
3055
     */
3056
    public static function get_best_average_score_by_exercise(
3057
        $exercise_id,
3058
        $courseId,
3059
        $session_id,
3060
        $user_count
3061
    )
3062
    {
3063
        $user_results = Event::get_best_exercise_results_by_user(
3064
            $exercise_id,
3065
            $courseId,
3066
            $session_id
3067
        );
3068
        $avg_score = 0;
3069
        if (!empty($user_results)) {
3070
            foreach ($user_results as $result) {
3071
                if (!empty($result['exe_weighting']) && intval($result['exe_weighting']) != 0) {
3072
                    $score = $result['exe_result'] / $result['exe_weighting'];
3073
                    $avg_score += $score;
3074
                }
3075
            }
3076
            //We asumme that all exe_weighting
3077
            //$avg_score = show_score( $avg_score / count($user_results) , $result['exe_weighting']);
3078
            //$avg_score = ($avg_score / count($user_results));
3079
            if (!empty($user_count)) {
3080
                $avg_score = float_format($avg_score / $user_count, 1) * 100;
3081
            } else {
3082
                $avg_score = 0;
3083
            }
3084
        }
3085
3086
        return $avg_score;
3087
    }
3088
3089
    /**