original_string: protected function update_team_submission(stdClass $submission, $userid, $updatetime) {
          global $DB;
  
          if ($updatetime) {
              $submission->timemodified = time();
          }
  
          // First update the submission for the current user.
          $mysubmission = $this->get_user_submission($userid, true, $submission->attemptnumber);
          $mysubmission->status = $submission->status;
  
          $this->update_submission($mysubmission, 0, $updatetime, false);
  
          // Now check the team settings to see if this assignment qualifies as submitted or draft.
          $team = $this->get_submission_group_members($submission->groupid, true);
  
          $allsubmitted = true;
          $anysubmitted = false;
          $result = true;
          if ($submission->status != ASSIGN_SUBMISSION_STATUS_REOPENED) {
              foreach ($team as $member) {
                  $membersubmission = $this->get_user_submission($member->id, false, $submission->attemptnumber);
  
                  // If no submission found for team member and member is active then everyone has not submitted.
                  if (!$membersubmission || $membersubmission->status != ASSIGN_SUBMISSION_STATUS_SUBMITTED
                          && ($this->is_active_user($member->id))) {
                      $allsubmitted = false;
                      if ($anysubmitted) {
                          break;
                      }
                  } else {
                      $anysubmitted = true;
                  }
              }
              if ($this->get_instance()->requireallteammemberssubmit) {
                  if ($allsubmitted) {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
                  } else {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
                  }
                  $result = $DB->update_record('assign_submission', $submission);
              } else {
                  if ($anysubmitted) {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
                  } else {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
                  }
                  $result = $DB->update_record('assign_submission', $submission);
              }
          } else {
              // Set the group submission to reopened.
              foreach ($team as $member) {
                  $membersubmission = $this->get_user_submission($member->id, true, $submission->attemptnumber);
                  $membersubmission->status = ASSIGN_SUBMISSION_STATUS_REOPENED;
                  $result = $DB->update_record('assign_submission', $membersubmission) && $result;
              }
              $result = $DB->update_record('assign_submission', $submission) && $result;
          }
  
          $this->gradebook_item_update($submission);
          return $result;
      }
code: protected function update_team_submission(stdClass $submission, $userid, $updatetime) {
          global $DB;
  
          if ($updatetime) {
              $submission->timemodified = time();
          }
  
          // First update the submission for the current user.
          $mysubmission = $this->get_user_submission($userid, true, $submission->attemptnumber);
          $mysubmission->status = $submission->status;
  
          $this->update_submission($mysubmission, 0, $updatetime, false);
  
          // Now check the team settings to see if this assignment qualifies as submitted or draft.
          $team = $this->get_submission_group_members($submission->groupid, true);
  
          $allsubmitted = true;
          $anysubmitted = false;
          $result = true;
          if ($submission->status != ASSIGN_SUBMISSION_STATUS_REOPENED) {
              foreach ($team as $member) {
                  $membersubmission = $this->get_user_submission($member->id, false, $submission->attemptnumber);
  
                  // If no submission found for team member and member is active then everyone has not submitted.
                  if (!$membersubmission || $membersubmission->status != ASSIGN_SUBMISSION_STATUS_SUBMITTED
                          && ($this->is_active_user($member->id))) {
                      $allsubmitted = false;
                      if ($anysubmitted) {
                          break;
                      }
                  } else {
                      $anysubmitted = true;
                  }
              }
              if ($this->get_instance()->requireallteammemberssubmit) {
                  if ($allsubmitted) {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
                  } else {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
                  }
                  $result = $DB->update_record('assign_submission', $submission);
              } else {
                  if ($anysubmitted) {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
                  } else {
                      $submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
                  }
                  $result = $DB->update_record('assign_submission', $submission);
              }
          } else {
              // Set the group submission to reopened.
              foreach ($team as $member) {
                  $membersubmission = $this->get_user_submission($member->id, true, $submission->attemptnumber);
                  $membersubmission->status = ASSIGN_SUBMISSION_STATUS_REOPENED;
                  $result = $DB->update_record('assign_submission', $membersubmission) && $result;
              }
              $result = $DB->update_record('assign_submission', $submission) && $result;
          }
  
          $this->gradebook_item_update($submission);
          return $result;
      }
code_tokens: protected function update_team_submission ( stdClass $ submission , $ userid , $ updatetime ) { global $ DB ; if ( $ updatetime ) { $ submission -> timemodified = time ( ) ; } // First update the submission for the current user. $ mysubmission = $ this -> get_user_submission ( $ userid , true , $ submission -> attemptnumber ) ; $ mysubmission -> status = $ submission -> status ; $ this -> update_submission ( $ mysubmission , 0 , $ updatetime , false ) ; // Now check the team settings to see if this assignment qualifies as submitted or draft. $ team = $ this -> get_submission_group_members ( $ submission -> groupid , true ) ; $ allsubmitted = true ; $ anysubmitted = false ; $ result = true ; if ( $ submission -> status != ASSIGN_SUBMISSION_STATUS_REOPENED ) { foreach ( $ team as $ member ) { $ membersubmission = $ this -> get_user_submission ( $ member -> id , false , $ submission -> attemptnumber ) ; // If no submission found for team member and member is active then everyone has not submitted. if ( ! $ membersubmission || $ membersubmission -> status != ASSIGN_SUBMISSION_STATUS_SUBMITTED && ( $ this -> is_active_user ( $ member -> id ) ) ) { $ allsubmitted = false ; if ( $ anysubmitted ) { break ; } } else { $ anysubmitted = true ; } } if ( $ this -> get_instance ( ) -> requireallteammemberssubmit ) { if ( $ allsubmitted ) { $ submission -> status = ASSIGN_SUBMISSION_STATUS_SUBMITTED ; } else { $ submission -> status = ASSIGN_SUBMISSION_STATUS_DRAFT ; } $ result = $ DB -> update_record ( 'assign_submission' , $ submission ) ; } else { if ( $ anysubmitted ) { $ submission -> status = ASSIGN_SUBMISSION_STATUS_SUBMITTED ; } else { $ submission -> status = ASSIGN_SUBMISSION_STATUS_DRAFT ; } $ result = $ DB -> update_record ( 'assign_submission' , $ submission ) ; } } else { // Set the group submission to reopened. foreach ( $ team as $ member ) { $ membersubmission = $ this -> get_user_submission ( $ member -> id , true , $ submission -> attemptnumber ) ; $ membersubmission -> status = ASSIGN_SUBMISSION_STATUS_REOPENED ; $ result = $ DB -> update_record ( 'assign_submission' , $ membersubmission ) && $ result ; } $ result = $ DB -> update_record ( 'assign_submission' , $ submission ) && $ result ; } $ this -> gradebook_item_update ( $ submission ) ; return $ result ; }
docstring: Update team submission.
  
  @param stdClass $submission
  @param int $userid
  @param bool $updatetime
  @return bool
docstring_tokens: Update team submission .