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); }
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); }
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])); }
/** * 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); }
/** * 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); }
} $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'));
} 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);
$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);