function student_profile_get_grade_percentages_for_student

6.x student_profile.module student_profile_get_grade_percentages_for_student($student)

Returns an array where we show the percentage of grades that the student has, compared to the whole. For example: 50% A's, 10% B's, and so on.

For convenience, we will also include the courses in an array so it can be displayed if desired.

1 call to student_profile_get_grade_percentages_for_student()

File

modules/student_profile/student_profile.module, line 45

Code

function student_profile_get_grade_percentages_for_student($student) {
  $rtn = array();

  // Init some defaults...
  $rtn ['grade_counts']['D']['count'] = 0;
  $rtn ['grade_counts']['F']['count'] = 0;
  $rtn ['grade_counts']['W']['count'] = 0;
  $rtn ['grade_counts']['A']['count'] = 0;
  $rtn ['grade_counts']['B']['count'] = 0;
  $rtn ['grade_counts']['C']['count'] = 0;

  $total_courses = count($student->list_courses_taken->array_list);
  if ($total_courses == 0) {
    return $rtn;
  }

  foreach ($student->list_courses_taken->array_list as $course) {
    $grade = $course->grade;

    if (!isset($rtn ['grade_counts'][$grade]['count'])) {
      $rtn ['grade_counts'][$grade]['count'] = 0;
    }

    $rtn ['grade_counts'][$grade]['count'];

    ++$rtn ['grade_counts'][$grade]['courses'][] = $course;




  }

  foreach ($rtn ['grade_counts'] as $grade => $val) {
    $count = $rtn ['grade_counts'][$grade]['count'];
    $percent = round(($count / $total_courses) * 100, 1);
    $rtn ['grade_counts'][$grade]['percent'] = $percent;

    $html = "";
    if ($count > 0) {
      foreach ($val ['courses'] as $course) {
        $html .= "<div class='grade-perc-course-row'>$course->subject_id $course->course_num $course->grade ($course->term_id)</div>";
      }
    }
    $rtn ['grade_counts'][$grade]['courses_html'] = $html;

  }

  return $rtn;
}