original_string: public function proceed() {
          global $CFG, $USER;
  
          if (!$this->prepared) {
              throw new coding_exception('The course has not been prepared.');
          } else if ($this->has_errors()) {
              throw new moodle_exception('Cannot proceed, errors were detected.');
          } else if ($this->processstarted) {
              throw new coding_exception('The process has already been started.');
          }
          $this->processstarted = true;
  
          if ($this->do === self::DO_DELETE) {
              if ($this->delete()) {
                  $this->status('coursedeleted', new lang_string('coursedeleted', 'tool_uploadcourse'));
              } else {
                  $this->error('errorwhiledeletingcourse', new lang_string('errorwhiledeletingcourse', 'tool_uploadcourse'));
              }
              return true;
          } else if ($this->do === self::DO_CREATE) {
              $course = create_course((object) $this->data);
              $this->id = $course->id;
              $this->status('coursecreated', new lang_string('coursecreated', 'tool_uploadcourse'));
          } else if ($this->do === self::DO_UPDATE) {
              $course = (object) $this->data;
              update_course($course);
              $this->id = $course->id;
              $this->status('courseupdated', new lang_string('courseupdated', 'tool_uploadcourse'));
          } else {
              // Strangely the outcome has not been defined, or is unknown!
              throw new coding_exception('Unknown outcome!');
          }
  
          // Restore a course.
          if (!empty($this->restoredata)) {
              $rc = new restore_controller($this->restoredata, $course->id, backup::INTERACTIVE_NO,
                  backup::MODE_IMPORT, $USER->id, backup::TARGET_CURRENT_ADDING);
  
              // Check if the format conversion must happen first.
              if ($rc->get_status() == backup::STATUS_REQUIRE_CONV) {
                  $rc->convert();
              }
              if ($rc->execute_precheck()) {
                  $rc->execute_plan();
                  $this->status('courserestored', new lang_string('courserestored', 'tool_uploadcourse'));
              } else {
                  $this->error('errorwhilerestoringcourse', new lang_string('errorwhilerestoringthecourse', 'tool_uploadcourse'));
              }
              $rc->destroy();
          }
  
          // Proceed with enrolment data.
          $this->process_enrolment_data($course);
  
          // Reset the course.
          if ($this->importoptions['reset'] || $this->options['reset']) {
              if ($this->do === self::DO_UPDATE && $this->can_reset()) {
                  $this->reset($course);
                  $this->status('coursereset', new lang_string('coursereset', 'tool_uploadcourse'));
              }
          }
  
          // Mark context as dirty.
          $context = context_course::instance($course->id);
          $context->mark_dirty();
      }
code: public function proceed() {
          global $CFG, $USER;
  
          if (!$this->prepared) {
              throw new coding_exception('The course has not been prepared.');
          } else if ($this->has_errors()) {
              throw new moodle_exception('Cannot proceed, errors were detected.');
          } else if ($this->processstarted) {
              throw new coding_exception('The process has already been started.');
          }
          $this->processstarted = true;
  
          if ($this->do === self::DO_DELETE) {
              if ($this->delete()) {
                  $this->status('coursedeleted', new lang_string('coursedeleted', 'tool_uploadcourse'));
              } else {
                  $this->error('errorwhiledeletingcourse', new lang_string('errorwhiledeletingcourse', 'tool_uploadcourse'));
              }
              return true;
          } else if ($this->do === self::DO_CREATE) {
              $course = create_course((object) $this->data);
              $this->id = $course->id;
              $this->status('coursecreated', new lang_string('coursecreated', 'tool_uploadcourse'));
          } else if ($this->do === self::DO_UPDATE) {
              $course = (object) $this->data;
              update_course($course);
              $this->id = $course->id;
              $this->status('courseupdated', new lang_string('courseupdated', 'tool_uploadcourse'));
          } else {
              // Strangely the outcome has not been defined, or is unknown!
              throw new coding_exception('Unknown outcome!');
          }
  
          // Restore a course.
          if (!empty($this->restoredata)) {
              $rc = new restore_controller($this->restoredata, $course->id, backup::INTERACTIVE_NO,
                  backup::MODE_IMPORT, $USER->id, backup::TARGET_CURRENT_ADDING);
  
              // Check if the format conversion must happen first.
              if ($rc->get_status() == backup::STATUS_REQUIRE_CONV) {
                  $rc->convert();
              }
              if ($rc->execute_precheck()) {
                  $rc->execute_plan();
                  $this->status('courserestored', new lang_string('courserestored', 'tool_uploadcourse'));
              } else {
                  $this->error('errorwhilerestoringcourse', new lang_string('errorwhilerestoringthecourse', 'tool_uploadcourse'));
              }
              $rc->destroy();
          }
  
          // Proceed with enrolment data.
          $this->process_enrolment_data($course);
  
          // Reset the course.
          if ($this->importoptions['reset'] || $this->options['reset']) {
              if ($this->do === self::DO_UPDATE && $this->can_reset()) {
                  $this->reset($course);
                  $this->status('coursereset', new lang_string('coursereset', 'tool_uploadcourse'));
              }
          }
  
          // Mark context as dirty.
          $context = context_course::instance($course->id);
          $context->mark_dirty();
      }
code_tokens: public function proceed ( ) { global $ CFG , $ USER ; if ( ! $ this -> prepared ) { throw new coding_exception ( 'The course has not been prepared.' ) ; } else if ( $ this -> has_errors ( ) ) { throw new moodle_exception ( 'Cannot proceed, errors were detected.' ) ; } else if ( $ this -> processstarted ) { throw new coding_exception ( 'The process has already been started.' ) ; } $ this -> processstarted = true ; if ( $ this -> do === self :: DO_DELETE ) { if ( $ this -> delete ( ) ) { $ this -> status ( 'coursedeleted' , new lang_string ( 'coursedeleted' , 'tool_uploadcourse' ) ) ; } else { $ this -> error ( 'errorwhiledeletingcourse' , new lang_string ( 'errorwhiledeletingcourse' , 'tool_uploadcourse' ) ) ; } return true ; } else if ( $ this -> do === self :: DO_CREATE ) { $ course = create_course ( ( object ) $ this -> data ) ; $ this -> id = $ course -> id ; $ this -> status ( 'coursecreated' , new lang_string ( 'coursecreated' , 'tool_uploadcourse' ) ) ; } else if ( $ this -> do === self :: DO_UPDATE ) { $ course = ( object ) $ this -> data ; update_course ( $ course ) ; $ this -> id = $ course -> id ; $ this -> status ( 'courseupdated' , new lang_string ( 'courseupdated' , 'tool_uploadcourse' ) ) ; } else { // Strangely the outcome has not been defined, or is unknown! throw new coding_exception ( 'Unknown outcome!' ) ; } // Restore a course. if ( ! empty ( $ this -> restoredata ) ) { $ rc = new restore_controller ( $ this -> restoredata , $ course -> id , backup :: INTERACTIVE_NO , backup :: MODE_IMPORT , $ USER -> id , backup :: TARGET_CURRENT_ADDING ) ; // Check if the format conversion must happen first. if ( $ rc -> get_status ( ) == backup :: STATUS_REQUIRE_CONV ) { $ rc -> convert ( ) ; } if ( $ rc -> execute_precheck ( ) ) { $ rc -> execute_plan ( ) ; $ this -> status ( 'courserestored' , new lang_string ( 'courserestored' , 'tool_uploadcourse' ) ) ; } else { $ this -> error ( 'errorwhilerestoringcourse' , new lang_string ( 'errorwhilerestoringthecourse' , 'tool_uploadcourse' ) ) ; } $ rc -> destroy ( ) ; } // Proceed with enrolment data. $ this -> process_enrolment_data ( $ course ) ; // Reset the course. if ( $ this -> importoptions [ 'reset' ] || $ this -> options [ 'reset' ] ) { if ( $ this -> do === self :: DO_UPDATE && $ this -> can_reset ( ) ) { $ this -> reset ( $ course ) ; $ this -> status ( 'coursereset' , new lang_string ( 'coursereset' , 'tool_uploadcourse' ) ) ; } } // Mark context as dirty. $ context = context_course :: instance ( $ course -> id ) ; $ context -> mark_dirty ( ) ; }
docstring: Proceed with the import of the course.
  
  @return void
docstring_tokens: Proceed with the import of the course .