original_string: public function get_user_grades_for_gradebook($userid) {
          global $DB, $CFG;
          $grades = array();
          $assignmentid = $this->get_instance()->id;
  
          $adminconfig = $this->get_admin_config();
          $gradebookpluginname = $adminconfig->feedback_plugin_for_gradebook;
          $gradebookplugin = null;
  
          // Find the gradebook plugin.
          foreach ($this->feedbackplugins as $plugin) {
              if ($plugin->is_enabled() && $plugin->is_visible()) {
                  if (('assignfeedback_' . $plugin->get_type()) == $gradebookpluginname) {
                      $gradebookplugin = $plugin;
                  }
              }
          }
          if ($userid) {
              $where = ' WHERE u.id = :userid ';
          } else {
              $where = ' WHERE u.id != :userid ';
          }
  
          // When the gradebook asks us for grades - only return the last attempt for each user.
          $params = array('assignid1'=>$assignmentid,
                          'assignid2'=>$assignmentid,
                          'userid'=>$userid);
          $graderesults = $DB->get_recordset_sql('SELECT
                                                      u.id as userid,
                                                      s.timemodified as datesubmitted,
                                                      g.grade as rawgrade,
                                                      g.timemodified as dategraded,
                                                      g.grader as usermodified
                                                  FROM {user} u
                                                  LEFT JOIN {assign_submission} s
                                                      ON u.id = s.userid and s.assignment = :assignid1 AND
                                                      s.latest = 1
                                                  JOIN {assign_grades} g
                                                      ON u.id = g.userid and g.assignment = :assignid2 AND
                                                      g.attemptnumber = s.attemptnumber' .
                                                  $where, $params);
  
          foreach ($graderesults as $result) {
              $gradingstatus = $this->get_grading_status($result->userid);
              if (!$this->get_instance()->markingworkflow || $gradingstatus == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                  $gradebookgrade = clone $result;
                  // Now get the feedback.
                  if ($gradebookplugin) {
                      $grade = $this->get_user_grade($result->userid, false);
                      if ($grade) {
                          $gradebookgrade->feedback = $gradebookplugin->text_for_gradebook($grade);
                          $gradebookgrade->feedbackformat = $gradebookplugin->format_for_gradebook($grade);
                          $gradebookgrade->feedbackfiles = $gradebookplugin->files_for_gradebook($grade);
                      }
                  }
                  $grades[$gradebookgrade->userid] = $gradebookgrade;
              }
          }
  
          $graderesults->close();
          return $grades;
      }
code: public function get_user_grades_for_gradebook($userid) {
          global $DB, $CFG;
          $grades = array();
          $assignmentid = $this->get_instance()->id;
  
          $adminconfig = $this->get_admin_config();
          $gradebookpluginname = $adminconfig->feedback_plugin_for_gradebook;
          $gradebookplugin = null;
  
          // Find the gradebook plugin.
          foreach ($this->feedbackplugins as $plugin) {
              if ($plugin->is_enabled() && $plugin->is_visible()) {
                  if (('assignfeedback_' . $plugin->get_type()) == $gradebookpluginname) {
                      $gradebookplugin = $plugin;
                  }
              }
          }
          if ($userid) {
              $where = ' WHERE u.id = :userid ';
          } else {
              $where = ' WHERE u.id != :userid ';
          }
  
          // When the gradebook asks us for grades - only return the last attempt for each user.
          $params = array('assignid1'=>$assignmentid,
                          'assignid2'=>$assignmentid,
                          'userid'=>$userid);
          $graderesults = $DB->get_recordset_sql('SELECT
                                                      u.id as userid,
                                                      s.timemodified as datesubmitted,
                                                      g.grade as rawgrade,
                                                      g.timemodified as dategraded,
                                                      g.grader as usermodified
                                                  FROM {user} u
                                                  LEFT JOIN {assign_submission} s
                                                      ON u.id = s.userid and s.assignment = :assignid1 AND
                                                      s.latest = 1
                                                  JOIN {assign_grades} g
                                                      ON u.id = g.userid and g.assignment = :assignid2 AND
                                                      g.attemptnumber = s.attemptnumber' .
                                                  $where, $params);
  
          foreach ($graderesults as $result) {
              $gradingstatus = $this->get_grading_status($result->userid);
              if (!$this->get_instance()->markingworkflow || $gradingstatus == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                  $gradebookgrade = clone $result;
                  // Now get the feedback.
                  if ($gradebookplugin) {
                      $grade = $this->get_user_grade($result->userid, false);
                      if ($grade) {
                          $gradebookgrade->feedback = $gradebookplugin->text_for_gradebook($grade);
                          $gradebookgrade->feedbackformat = $gradebookplugin->format_for_gradebook($grade);
                          $gradebookgrade->feedbackfiles = $gradebookplugin->files_for_gradebook($grade);
                      }
                  }
                  $grades[$gradebookgrade->userid] = $gradebookgrade;
              }
          }
  
          $graderesults->close();
          return $grades;
      }
code_tokens: public function get_user_grades_for_gradebook ( $ userid ) { global $ DB , $ CFG ; $ grades = array ( ) ; $ assignmentid = $ this -> get_instance ( ) -> id ; $ adminconfig = $ this -> get_admin_config ( ) ; $ gradebookpluginname = $ adminconfig -> feedback_plugin_for_gradebook ; $ gradebookplugin = null ; // Find the gradebook plugin. foreach ( $ this -> feedbackplugins as $ plugin ) { if ( $ plugin -> is_enabled ( ) && $ plugin -> is_visible ( ) ) { if ( ( 'assignfeedback_' . $ plugin -> get_type ( ) ) == $ gradebookpluginname ) { $ gradebookplugin = $ plugin ; } } } if ( $ userid ) { $ where = ' WHERE u.id = :userid ' ; } else { $ where = ' WHERE u.id != :userid ' ; } // When the gradebook asks us for grades - only return the last attempt for each user. $ params = array ( 'assignid1' => $ assignmentid , 'assignid2' => $ assignmentid , 'userid' => $ userid ) ; $ graderesults = $ DB -> get_recordset_sql ( 'SELECT
                                                      u.id as userid,
                                                      s.timemodified as datesubmitted,
                                                      g.grade as rawgrade,
                                                      g.timemodified as dategraded,
                                                      g.grader as usermodified
                                                  FROM {user} u
                                                  LEFT JOIN {assign_submission} s
                                                      ON u.id = s.userid and s.assignment = :assignid1 AND
                                                      s.latest = 1
                                                  JOIN {assign_grades} g
                                                      ON u.id = g.userid and g.assignment = :assignid2 AND
                                                      g.attemptnumber = s.attemptnumber' . $ where , $ params ) ; foreach ( $ graderesults as $ result ) { $ gradingstatus = $ this -> get_grading_status ( $ result -> userid ) ; if ( ! $ this -> get_instance ( ) -> markingworkflow || $ gradingstatus == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED ) { $ gradebookgrade = clone $ result ; // Now get the feedback. if ( $ gradebookplugin ) { $ grade = $ this -> get_user_grade ( $ result -> userid , false ) ; if ( $ grade ) { $ gradebookgrade -> feedback = $ gradebookplugin -> text_for_gradebook ( $ grade ) ; $ gradebookgrade -> feedbackformat = $ gradebookplugin -> format_for_gradebook ( $ grade ) ; $ gradebookgrade -> feedbackfiles = $ gradebookplugin -> files_for_gradebook ( $ grade ) ; } } $ grades [ $ gradebookgrade -> userid ] = $ gradebookgrade ; } } $ graderesults -> close ( ) ; return $ grades ; }
docstring: Get an upto date list of user grades and feedback for the gradebook.
  
  @param int $userid int or 0 for all users
  @return array of grade data formated for the gradebook api
  The data required by the gradebook api is userid,
  rawgrade,
  feedback,
  feedbackformat,
  usermodified,
  dategraded,
  datesubmitted
docstring_tokens: Get an upto date list of user grades and feedback for the gradebook .