Пример #1
0
 public function execute()
 {
     global $DB;
     if (!($this->course = $DB->get_record('course', array('id' => $this->arguments[0])))) {
         print_error("invalidcourseid");
     }
     require_login($this->course);
     $defaults = $this->loadDefaults();
     $defaults->id = $this->course->id;
     $status = reset_course_userdata($defaults);
     print_r($status);
 }
Пример #2
0
 public function execute()
 {
     global $DB;
     if (!($this->course = $DB->get_record('course', array('id' => $this->arguments[0])))) {
         print_error("invalidcourseid");
     }
     require_login($this->course);
     $defaults = $this->loadDefaults();
     $defaults->id = $this->course->id;
     $options = $this->expandedOptions;
     if ($options['settings']) {
         $settings = explode(' ', $options['settings']);
         foreach ($settings as $setting) {
             $keyvalue = explode('=', $setting);
             if (count($keyvalue) != 2) {
                 cli_error("Error when parsing setting {$setting}");
             }
             $key = $keyvalue[0];
             $value = $keyvalue[1];
             if (strpos($value, ',') !== FALSE) {
                 $value = explode(',', $value);
                 foreach ($value as $k => $v) {
                     if (!trim($v)) {
                         unset($value[$k]);
                     }
                 }
             }
             $defaults->{$key} = $value;
         }
     }
     if ($options['no-action']) {
         $this->print_settings($defaults);
         exit(0);
     }
     $status = reset_course_userdata($defaults);
     print_r($status);
 }
Пример #3
0
 public function test_hook_course_reset_competency_ratings()
 {
     $this->resetAfterTest();
     $dg = $this->getDataGenerator();
     $ccg = $dg->get_plugin_generator('core_competency');
     $u1 = $dg->create_user();
     $framework = $ccg->create_framework();
     $comp1 = $ccg->create_competency(['competencyframeworkid' => $framework->get_id()]);
     $comp2 = $ccg->create_competency(['competencyframeworkid' => $framework->get_id()]);
     $c1 = $dg->create_course();
     $cc1a = $ccg->create_course_competency(['competencyid' => $comp1->get_id(), 'courseid' => $c1->id]);
     $cc1b = $ccg->create_course_competency(['competencyid' => $comp2->get_id(), 'courseid' => $c1->id]);
     $assign1a = $dg->create_module('assign', ['course' => $c1]);
     $assign1b = $dg->create_module('assign', ['course' => $c1]);
     $cmc1a = $ccg->create_course_module_competency(['competencyid' => $comp1->get_id(), 'cmid' => $assign1a->cmid]);
     $cmc1b = $ccg->create_course_module_competency(['competencyid' => $comp1->get_id(), 'cmid' => $assign1b->cmid]);
     $ucc1a = $ccg->create_user_competency_course(['competencyid' => $comp1->get_id(), 'courseid' => $c1->id, 'userid' => $u1->id]);
     $ucc1b = $ccg->create_user_competency_course(['competencyid' => $comp2->get_id(), 'courseid' => $c1->id, 'userid' => $u1->id]);
     $c2 = $dg->create_course();
     $cc2a = $ccg->create_course_competency(['competencyid' => $comp1->get_id(), 'courseid' => $c2->id]);
     $cc2b = $ccg->create_course_competency(['competencyid' => $comp2->get_id(), 'courseid' => $c2->id]);
     $assign2a = $dg->create_module('assign', ['course' => $c2]);
     $assign2b = $dg->create_module('assign', ['course' => $c2]);
     $cmc2a = $ccg->create_course_module_competency(['competencyid' => $comp1->get_id(), 'cmid' => $assign2a->cmid]);
     $cmc2b = $ccg->create_course_module_competency(['competencyid' => $comp1->get_id(), 'cmid' => $assign2b->cmid]);
     $ucc2a = $ccg->create_user_competency_course(['competencyid' => $comp1->get_id(), 'courseid' => $c2->id, 'userid' => $u1->id]);
     $ucc2b = $ccg->create_user_competency_course(['competencyid' => $comp2->get_id(), 'courseid' => $c2->id, 'userid' => $u1->id]);
     reset_course_userdata((object) ['id' => $c1->id, 'reset_competency_ratings' => true]);
     $this->assertEquals(2, course_competency::count_records(['courseid' => $c1->id]));
     $this->assertEquals(2, course_competency::count_records(['courseid' => $c2->id]));
     $this->assertEquals(1, course_module_competency::count_records(['cmid' => $assign1a->cmid]));
     $this->assertEquals(1, course_module_competency::count_records(['cmid' => $assign1b->cmid]));
     $this->assertEquals(1, course_module_competency::count_records(['cmid' => $assign2a->cmid]));
     $this->assertEquals(1, course_module_competency::count_records(['cmid' => $assign2b->cmid]));
     $this->assertEquals(0, user_competency_course::count_records(['courseid' => $c1->id, 'userid' => $u1->id]));
     $this->assertEquals(2, user_competency_course::count_records(['courseid' => $c2->id, 'userid' => $u1->id]));
 }
Пример #4
0
 /**
  * Reset the current course.
  *
  * This does not reset any of the content of the activities.
  *
  * @param stdClass $course the course object of the course to reset.
  * @return array status array of array component, item, error.
  */
 protected function reset($course)
 {
     global $DB;
     $resetdata = new stdClass();
     $resetdata->id = $course->id;
     $resetdata->reset_start_date = time();
     $resetdata->reset_events = true;
     $resetdata->reset_notes = true;
     $resetdata->delete_blog_associations = true;
     $resetdata->reset_completion = true;
     $resetdata->reset_roles_overrides = true;
     $resetdata->reset_roles_local = true;
     $resetdata->reset_groups_members = true;
     $resetdata->reset_groups_remove = true;
     $resetdata->reset_groupings_members = true;
     $resetdata->reset_groupings_remove = true;
     $resetdata->reset_gradebook_items = true;
     $resetdata->reset_gradebook_grades = true;
     $resetdata->reset_comments = true;
     if (empty($course->startdate)) {
         $course->startdate = $DB->get_field_select('course', 'startdate', 'id = :id', array('id' => $course->id));
     }
     $resetdata->reset_start_date_old = $course->startdate;
     // Add roles.
     $roles = tool_uploadcourse_helper::get_role_ids();
     $resetdata->unenrol_users = array_values($roles);
     $resetdata->unenrol_users[] = 0;
     // Enrolled without role.
     return reset_course_userdata($resetdata);
 }
Пример #5
0
 /**
  * test_course_dates_reset
  *
  * @dataProvider course_dates_reset_provider
  * @param int $startdate
  * @param int $enddate
  * @param int $resetstartdate
  * @param int $resetenddate
  * @param int $resultingstartdate
  * @param int $resultingenddate
  */
 public function test_course_dates_reset($startdate, $enddate, $resetstartdate, $resetenddate, $resultingstartdate, $resultingenddate)
 {
     global $DB;
     $this->resetAfterTest(true);
     $this->setTimezone('UTC');
     $record = array('startdate' => $startdate, 'enddate' => $enddate);
     $originalcourse = $this->getDataGenerator()->create_course($record);
     $resetdata = new stdClass();
     $resetdata->id = $originalcourse->id;
     $resetdata->reset_start_date_old = $originalcourse->startdate;
     $resetdata->reset_start_date = $resetstartdate;
     $resetdata->reset_end_date = $resetenddate;
     $resetdata->reset_end_date_old = $record['enddate'];
     reset_course_userdata($resetdata);
     $course = $DB->get_record('course', array('id' => $originalcourse->id));
     $this->assertEquals($resultingstartdate, $course->startdate);
     $this->assertEquals($resultingenddate, $course->enddate);
 }
Пример #6
0
 }
 $data->reset_comments = true;
 // Forum
 $data->reset_forum_all = true;
 // Assignment
 $data->reset_assign_submissions = true;
 // Chat
 $data->reset_chat = true;
 // Choice
 $data->reset_choice = true;
 // Quiz
 $data->reset_quiz_attempts = true;
 // Survey
 $data->reset_survey_answers = true;
 // Now we actually reset the data
 $statusicon = reset_course_userdata($data);
 echo " reset... ";
 $i++;
 $error = false;
 foreach ($statusicon as $key => $return) {
     if (!empty($return['error'])) {
         $error = true;
         echo "ERROR! " . $return['error'];
         echo "\n";
     }
 }
 if ($error) {
     continue;
 }
 $enrol = enrol_get_plugin('guest');
 $instance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'guest'));
Пример #7
0
} else {
    if ($data = $mform->get_data()) {
        // no magic quotes
        if (isset($data->selectdefault)) {
            $_POST = array();
            $mform = new course_reset_form();
            $mform->load_defaults();
        } else {
            if (isset($data->deselectall)) {
                $_POST = array();
                $mform = new course_reset_form();
            } else {
                echo $OUTPUT->header();
                echo $OUTPUT->heading($strresetcourse);
                $data->reset_start_date_old = $course->startdate;
                $status = reset_course_userdata($data);
                $data = array();
                foreach ($status as $item) {
                    $line = array();
                    $line[] = $item['component'];
                    $line[] = $item['item'];
                    $line[] = $item['error'] === false ? get_string('ok') : '<div class="notifyproblem">' . $item['error'] . '</div>';
                    $data[] = $line;
                }
                $table = new html_table();
                $table->head = array(get_string('resetcomponent'), get_string('resettask'), get_string('resetstatus'));
                $table->size = array('20%', '40%', '40%');
                $table->align = array('left', 'left', 'left');
                $table->width = '80%';
                $table->data = $data;
                echo html_writer::table($table);
Пример #8
0
$id = required_param('id', PARAM_INT);
if (!($course = get_record('course', 'id', $id))) {
    error("Course is misconfigured");
}
require_login($course->id);
require_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $course->id));
$strreset = get_string('reset');
$strresetcourse = get_string('resetcourse');
$strremove = get_string('remove');
print_header($course->fullname . ': ' . $strresetcourse, $course->fullname . ': ' . $strresetcourse, '<a href="view.php?id=' . $course->id . '">' . $course->shortname . '</a> -> ' . $strresetcourse);
print_simple_box_start();
print_heading($strresetcourse);
/// If we have data, then process it.
if ($data = data_submitted() and confirm_sesskey()) {
    $data->courseid = $course->id;
    reset_course_userdata($data, true);
    if (!empty($data->reset_start_date)) {
        if (set_field('course', 'startdate', make_timestamp($data->startyear, $data->startmonth, $data->startday), 'id', $course->id)) {
            notify(get_string('datechanged'), 'notifysuccess');
        }
    }
    print_continue('view.php?id=' . $course->id);
    // Back to course page
    print_simple_box_end();
    print_footer($course);
    exit;
}
/// Print forms so the user can make choices about what to delete
print_simple_box(get_string('resetinfo'), 'center', '60%');
echo '<form id="reset" action="reset.php" method="POST">';
print_heading(get_string('course'), 'left', 3);