original_string: public function load_data() {
          global $DB, $USER;
  
          // Note that require_login() is normally called later as a part of
          // portfolio_export_pagesetup() in the portfolio/add.php file. But we
          // load various data depending of capabilities so it makes sense to
          // call it explicitly here, too.
          require_login($this->get('course'), false, $this->cm, false, true);
  
          if (isguestuser()) {
              throw new portfolio_caller_exception('guestsarenotallowed', 'core_error');
          }
  
          $workshoprecord = $DB->get_record('workshop', ['id' => $this->cm->instance], '*', MUST_EXIST);
          $this->workshop = new workshop($workshoprecord, $this->cm, $this->get('course'));
  
          $this->submission = $this->workshop->get_submission_by_id($this->submissionid);
  
          // Is the user exporting her/his own submission?
          $ownsubmission = $this->submission->authorid == $USER->id;
  
          // Does the user have permission to see all submissions (aka is it a teacher)?
          $canviewallsubmissions = has_capability('mod/workshop:viewallsubmissions', $this->workshop->context);
          $canviewallsubmissions = $canviewallsubmissions && $this->workshop->check_group_membership($this->submission->authorid);
  
          // Is the user exporting a submission that she/he has peer-assessed?
          $userassessment = $this->workshop->get_assessment_of_submission_by_user($this->submission->id, $USER->id);
          if ($userassessment) {
              $this->assessments[$userassessment->id] = $userassessment;
              $isreviewer = true;
          }
  
          if (!$ownsubmission and !$canviewallsubmissions and !$isreviewer) {
              throw new portfolio_caller_exception('nopermissions', 'core_error');
          }
  
          // Does the user have permission to see all assessments (aka is it a teacher)?
          $canviewallassessments = has_capability('mod/workshop:viewallassessments', $this->workshop->context);
  
          // Load other assessments eventually if the user can see them.
          if ($canviewallassessments or ($ownsubmission and $this->workshop->assessments_available())) {
              foreach ($this->workshop->get_assessments_of_submission($this->submission->id) as $assessment) {
                  if ($assessment->reviewerid == $USER->id) {
                      // User's own assessment is already loaded.
                      continue;
                  }
                  if (is_null($assessment->grade) and !$canviewallassessments) {
                      // Students do not see peer-assessment that are not graded.
                      continue;
                  }
                  $this->assessments[$assessment->id] = $assessment;
              }
          }
  
          // Prepare embedded and attached files for the export.
          $this->multifiles = [];
  
          $this->add_area_files('submission_content', $this->submission->id);
          $this->add_area_files('submission_attachment', $this->submission->id);
  
          foreach ($this->assessments as $assessment) {
              $this->add_area_files('overallfeedback_content', $assessment->id);
              $this->add_area_files('overallfeedback_attachment', $assessment->id);
          }
  
          $this->add_area_files('instructauthors', 0);
  
          // If there are no files to be exported, we can offer plain HTML file export.
          if (empty($this->multifiles)) {
              $this->add_format(PORTFOLIO_FORMAT_PLAINHTML);
          }
      }
code: public function load_data() {
          global $DB, $USER;
  
          // Note that require_login() is normally called later as a part of
          // portfolio_export_pagesetup() in the portfolio/add.php file. But we
          // load various data depending of capabilities so it makes sense to
          // call it explicitly here, too.
          require_login($this->get('course'), false, $this->cm, false, true);
  
          if (isguestuser()) {
              throw new portfolio_caller_exception('guestsarenotallowed', 'core_error');
          }
  
          $workshoprecord = $DB->get_record('workshop', ['id' => $this->cm->instance], '*', MUST_EXIST);
          $this->workshop = new workshop($workshoprecord, $this->cm, $this->get('course'));
  
          $this->submission = $this->workshop->get_submission_by_id($this->submissionid);
  
          // Is the user exporting her/his own submission?
          $ownsubmission = $this->submission->authorid == $USER->id;
  
          // Does the user have permission to see all submissions (aka is it a teacher)?
          $canviewallsubmissions = has_capability('mod/workshop:viewallsubmissions', $this->workshop->context);
          $canviewallsubmissions = $canviewallsubmissions && $this->workshop->check_group_membership($this->submission->authorid);
  
          // Is the user exporting a submission that she/he has peer-assessed?
          $userassessment = $this->workshop->get_assessment_of_submission_by_user($this->submission->id, $USER->id);
          if ($userassessment) {
              $this->assessments[$userassessment->id] = $userassessment;
              $isreviewer = true;
          }
  
          if (!$ownsubmission and !$canviewallsubmissions and !$isreviewer) {
              throw new portfolio_caller_exception('nopermissions', 'core_error');
          }
  
          // Does the user have permission to see all assessments (aka is it a teacher)?
          $canviewallassessments = has_capability('mod/workshop:viewallassessments', $this->workshop->context);
  
          // Load other assessments eventually if the user can see them.
          if ($canviewallassessments or ($ownsubmission and $this->workshop->assessments_available())) {
              foreach ($this->workshop->get_assessments_of_submission($this->submission->id) as $assessment) {
                  if ($assessment->reviewerid == $USER->id) {
                      // User's own assessment is already loaded.
                      continue;
                  }
                  if (is_null($assessment->grade) and !$canviewallassessments) {
                      // Students do not see peer-assessment that are not graded.
                      continue;
                  }
                  $this->assessments[$assessment->id] = $assessment;
              }
          }
  
          // Prepare embedded and attached files for the export.
          $this->multifiles = [];
  
          $this->add_area_files('submission_content', $this->submission->id);
          $this->add_area_files('submission_attachment', $this->submission->id);
  
          foreach ($this->assessments as $assessment) {
              $this->add_area_files('overallfeedback_content', $assessment->id);
              $this->add_area_files('overallfeedback_attachment', $assessment->id);
          }
  
          $this->add_area_files('instructauthors', 0);
  
          // If there are no files to be exported, we can offer plain HTML file export.
          if (empty($this->multifiles)) {
              $this->add_format(PORTFOLIO_FORMAT_PLAINHTML);
          }
      }
code_tokens: public function load_data ( ) { global $ DB , $ USER ; // Note that require_login() is normally called later as a part of // portfolio_export_pagesetup() in the portfolio/add.php file. But we // load various data depending of capabilities so it makes sense to // call it explicitly here, too. require_login ( $ this -> get ( 'course' ) , false , $ this -> cm , false , true ) ; if ( isguestuser ( ) ) { throw new portfolio_caller_exception ( 'guestsarenotallowed' , 'core_error' ) ; } $ workshoprecord = $ DB -> get_record ( 'workshop' , [ 'id' => $ this -> cm -> instance ] , '*' , MUST_EXIST ) ; $ this -> workshop = new workshop ( $ workshoprecord , $ this -> cm , $ this -> get ( 'course' ) ) ; $ this -> submission = $ this -> workshop -> get_submission_by_id ( $ this -> submissionid ) ; // Is the user exporting her/his own submission? $ ownsubmission = $ this -> submission -> authorid == $ USER -> id ; // Does the user have permission to see all submissions (aka is it a teacher)? $ canviewallsubmissions = has_capability ( 'mod/workshop:viewallsubmissions' , $ this -> workshop -> context ) ; $ canviewallsubmissions = $ canviewallsubmissions && $ this -> workshop -> check_group_membership ( $ this -> submission -> authorid ) ; // Is the user exporting a submission that she/he has peer-assessed? $ userassessment = $ this -> workshop -> get_assessment_of_submission_by_user ( $ this -> submission -> id , $ USER -> id ) ; if ( $ userassessment ) { $ this -> assessments [ $ userassessment -> id ] = $ userassessment ; $ isreviewer = true ; } if ( ! $ ownsubmission and ! $ canviewallsubmissions and ! $ isreviewer ) { throw new portfolio_caller_exception ( 'nopermissions' , 'core_error' ) ; } // Does the user have permission to see all assessments (aka is it a teacher)? $ canviewallassessments = has_capability ( 'mod/workshop:viewallassessments' , $ this -> workshop -> context ) ; // Load other assessments eventually if the user can see them. if ( $ canviewallassessments or ( $ ownsubmission and $ this -> workshop -> assessments_available ( ) ) ) { foreach ( $ this -> workshop -> get_assessments_of_submission ( $ this -> submission -> id ) as $ assessment ) { if ( $ assessment -> reviewerid == $ USER -> id ) { // User's own assessment is already loaded. continue ; } if ( is_null ( $ assessment -> grade ) and ! $ canviewallassessments ) { // Students do not see peer-assessment that are not graded. continue ; } $ this -> assessments [ $ assessment -> id ] = $ assessment ; } } // Prepare embedded and attached files for the export. $ this -> multifiles = [ ] ; $ this -> add_area_files ( 'submission_content' , $ this -> submission -> id ) ; $ this -> add_area_files ( 'submission_attachment' , $ this -> submission -> id ) ; foreach ( $ this -> assessments as $ assessment ) { $ this -> add_area_files ( 'overallfeedback_content' , $ assessment -> id ) ; $ this -> add_area_files ( 'overallfeedback_attachment' , $ assessment -> id ) ; } $ this -> add_area_files ( 'instructauthors' , 0 ) ; // If there are no files to be exported, we can offer plain HTML file export. if ( empty ( $ this -> multifiles ) ) { $ this -> add_format ( PORTFOLIO_FORMAT_PLAINHTML ) ; } }
docstring: Load data required for the export.
docstring_tokens: Load data required for the export .