if (empty($action)) {
    $action = $_REQUEST['action'];
}
$id = intval($_REQUEST['id']);
//exe id
if (empty($id)) {
    api_not_allowed(true);
}
if (api_is_course_session_coach(api_get_user_id(), api_get_course_id(), api_get_session_id())) {
    if (!api_coach_can_edit_view_results(api_get_course_id(), api_get_session_id())) {
        api_not_allowed(true);
    }
}
$is_allowedToEdit = api_is_allowed_to_edit(null, true) || $is_courseTutor || api_is_session_admin() || api_is_drh();
//Getting results from the exe_id. This variable also contain all the information about the exercise
$track_exercise_info = get_exercise_track_exercise_info($id);
//No track info
if (empty($track_exercise_info)) {
    api_not_allowed(true);
}
$exercise_id = $track_exercise_info['id'];
$exercise_date = $track_exercise_info['start_date'];
$student_id = $track_exercise_info['exe_user_id'];
$learnpath_id = $track_exercise_info['orig_lp_id'];
$learnpath_item_id = $track_exercise_info['orig_lp_item_id'];
$lp_item_view_id = $track_exercise_info['orig_lp_item_view_id'];
$current_user_id = api_get_user_id();
$locked = api_resource_is_locked_by_gradebook($exercise_id, LINK_EXERCISE);
if (empty($objExercise)) {
    $objExercise = new Exercise();
    $objExercise->read($exercise_id);
 /**
  * Returns the exercise result
  * @param 	int		attempt id
  * @return 	float 	exercise result
  */
 public function get_exercise_result($exe_id)
 {
     $result = array();
     $track_exercise_info = get_exercise_track_exercise_info($exe_id);
     if (!empty($track_exercise_info)) {
         $totalScore = 0;
         $objExercise = new Exercise();
         $objExercise->read($track_exercise_info['exe_exo_id']);
         if (!empty($track_exercise_info['data_tracking'])) {
             $question_list = explode(',', $track_exercise_info['data_tracking']);
         }
         foreach ($question_list as $questionId) {
             $question_result = $objExercise->manage_answer($exe_id, $questionId, '', 'exercise_show', array(), false, true, false, $objExercise->selectPropagateNeg());
             $totalScore += $question_result['score'];
         }
         if ($objExercise->selectPropagateNeg() == 0 && $totalScore < 0) {
             $totalScore = 0;
         }
         $result = array('score' => $totalScore, 'weight' => $track_exercise_info['exe_weighting']);
     }
     return $result;
 }