original_string: protected function process_set_batch_marking_workflow_state() {
          global $CFG, $DB;
  
          // Include batch marking workflow form.
          require_once($CFG->dirroot . '/mod/assign/batchsetmarkingworkflowstateform.php');
  
          $formparams = array(
              'userscount' => 0,  // This form is never re-displayed, so we don't need to
              'usershtml' => '',  // initialise these parameters with real information.
              'markingworkflowstates' => $this->get_marking_workflow_states_for_current_user()
          );
  
          $mform = new mod_assign_batch_set_marking_workflow_state_form(null, $formparams);
  
          if ($mform->is_cancelled()) {
              return true;
          }
  
          if ($formdata = $mform->get_data()) {
              $useridlist = explode(',', $formdata->selectedusers);
              $state = $formdata->markingworkflowstate;
  
              foreach ($useridlist as $userid) {
                  $flags = $this->get_user_flags($userid, true);
  
                  $flags->workflowstate = $state;
  
                  // Clear the mailed flag if notification is requested, the student hasn't been
                  // notified previously, the student can access the assignment, and the state
                  // is "Released".
                  $modinfo = get_fast_modinfo($this->course, $userid);
                  $cm = $modinfo->get_cm($this->get_course_module()->id);
                  if ($formdata->sendstudentnotifications && $cm->uservisible &&
                          $state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                      $flags->mailed = 0;
                  }
  
                  $gradingdisabled = $this->grading_disabled($userid);
  
                  // Will not apply update if user does not have permission to assign this workflow state.
                  if (!$gradingdisabled && $this->update_user_flags($flags)) {
                      if ($state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                          // Update Gradebook.
                          $assign = clone $this->get_instance();
                          $assign->cmidnumber = $this->get_course_module()->idnumber;
                          // Set assign gradebook feedback plugin status.
                          $assign->gradefeedbackenabled = $this->is_gradebook_feedback_enabled();
                          assign_update_grades($assign, $userid);
                      }
  
                      $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
                      \mod_assign\event\workflow_state_updated::create_from_user($this, $user, $state)->trigger();
                  }
              }
          }
      }
code: protected function process_set_batch_marking_workflow_state() {
          global $CFG, $DB;
  
          // Include batch marking workflow form.
          require_once($CFG->dirroot . '/mod/assign/batchsetmarkingworkflowstateform.php');
  
          $formparams = array(
              'userscount' => 0,  // This form is never re-displayed, so we don't need to
              'usershtml' => '',  // initialise these parameters with real information.
              'markingworkflowstates' => $this->get_marking_workflow_states_for_current_user()
          );
  
          $mform = new mod_assign_batch_set_marking_workflow_state_form(null, $formparams);
  
          if ($mform->is_cancelled()) {
              return true;
          }
  
          if ($formdata = $mform->get_data()) {
              $useridlist = explode(',', $formdata->selectedusers);
              $state = $formdata->markingworkflowstate;
  
              foreach ($useridlist as $userid) {
                  $flags = $this->get_user_flags($userid, true);
  
                  $flags->workflowstate = $state;
  
                  // Clear the mailed flag if notification is requested, the student hasn't been
                  // notified previously, the student can access the assignment, and the state
                  // is "Released".
                  $modinfo = get_fast_modinfo($this->course, $userid);
                  $cm = $modinfo->get_cm($this->get_course_module()->id);
                  if ($formdata->sendstudentnotifications && $cm->uservisible &&
                          $state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                      $flags->mailed = 0;
                  }
  
                  $gradingdisabled = $this->grading_disabled($userid);
  
                  // Will not apply update if user does not have permission to assign this workflow state.
                  if (!$gradingdisabled && $this->update_user_flags($flags)) {
                      if ($state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
                          // Update Gradebook.
                          $assign = clone $this->get_instance();
                          $assign->cmidnumber = $this->get_course_module()->idnumber;
                          // Set assign gradebook feedback plugin status.
                          $assign->gradefeedbackenabled = $this->is_gradebook_feedback_enabled();
                          assign_update_grades($assign, $userid);
                      }
  
                      $user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
                      \mod_assign\event\workflow_state_updated::create_from_user($this, $user, $state)->trigger();
                  }
              }
          }
      }
code_tokens: protected function process_set_batch_marking_workflow_state ( ) { global $ CFG , $ DB ; // Include batch marking workflow form. require_once ( $ CFG -> dirroot . '/mod/assign/batchsetmarkingworkflowstateform.php' ) ; $ formparams = array ( 'userscount' => 0 , // This form is never re-displayed, so we don't need to 'usershtml' => '' , // initialise these parameters with real information. 'markingworkflowstates' => $ this -> get_marking_workflow_states_for_current_user ( ) ) ; $ mform = new mod_assign_batch_set_marking_workflow_state_form ( null , $ formparams ) ; if ( $ mform -> is_cancelled ( ) ) { return true ; } if ( $ formdata = $ mform -> get_data ( ) ) { $ useridlist = explode ( ',' , $ formdata -> selectedusers ) ; $ state = $ formdata -> markingworkflowstate ; foreach ( $ useridlist as $ userid ) { $ flags = $ this -> get_user_flags ( $ userid , true ) ; $ flags -> workflowstate = $ state ; // Clear the mailed flag if notification is requested, the student hasn't been // notified previously, the student can access the assignment, and the state // is "Released". $ modinfo = get_fast_modinfo ( $ this -> course , $ userid ) ; $ cm = $ modinfo -> get_cm ( $ this -> get_course_module ( ) -> id ) ; if ( $ formdata -> sendstudentnotifications && $ cm -> uservisible && $ state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED ) { $ flags -> mailed = 0 ; } $ gradingdisabled = $ this -> grading_disabled ( $ userid ) ; // Will not apply update if user does not have permission to assign this workflow state. if ( ! $ gradingdisabled && $ this -> update_user_flags ( $ flags ) ) { if ( $ state == ASSIGN_MARKING_WORKFLOW_STATE_RELEASED ) { // Update Gradebook. $ assign = clone $ this -> get_instance ( ) ; $ assign -> cmidnumber = $ this -> get_course_module ( ) -> idnumber ; // Set assign gradebook feedback plugin status. $ assign -> gradefeedbackenabled = $ this -> is_gradebook_feedback_enabled ( ) ; assign_update_grades ( $ assign , $ userid ) ; } $ user = $ DB -> get_record ( 'user' , array ( 'id' => $ userid ) , '*' , MUST_EXIST ) ; \ mod_assign \ event \ workflow_state_updated :: create_from_user ( $ this , $ user , $ state ) -> trigger ( ) ; } } } }
docstring: Set the workflow state for multiple users
  
  @return void
docstring_tokens: Set the workflow state for multiple users