$PAGE->set_context($context); $PAGE->set_pagelayout('standard'); $PAGE->set_title(get_string('ins_pluginname', 'local_metadata')); $heading = sprintf(get_string('instructor_heading', 'local_metadata'), $course->shortname, $course->fullname); $PAGE->set_heading($heading); // Create urls $general_url = create_insview_url('general', $courseId); $assessment_url = create_insview_url('assessment', $courseId); $session_url = create_insview_url('session', $courseId); $syllabus_url = create_insview_url('syllabus', $courseId); $session_url->param('page', $session_page); $PAGE->set_url($session_url); $PAGE->requires->css('/local/metadata/insview_style.css'); $PAGE->requires->css('/local/metadata/session_element_style.css'); // Create form $sessions = get_table_data_for_course('coursesession'); $session_form = new session_form($session_url, array('sessions' => $sessions)); // Case where they cancelled the form. Just redirect to it, to reset values if ($session_form->is_cancelled()) { redirect($session_url); } // Submitted the data if ($data = $session_form->get_data()) { if ($session_form->sessions_were_uploaded()) { $session_form->upload_sessions(); } else { $session_form->save_data($data); } $session_page += $session_form->get_page_change(); $session_url->param('page', $session_page); redirect($session_url);
$PAGE->set_context($context); $PAGE->set_pagelayout('standard'); $PAGE->set_title(get_string('ins_pluginname', 'local_metadata')); $heading = sprintf(get_string('instructor_heading', 'local_metadata'), $course->shortname, $course->fullname); $PAGE->set_heading($heading); // Create urls $general_url = create_insview_url('general', $courseId); $assessment_url = create_insview_url('assessment', $courseId); $session_url = create_insview_url('session', $courseId); $syllabus_url = create_insview_url('syllabus', $courseId); $assessment_url->param('page', $assessment_page); $PAGE->set_url($assessment_url); $PAGE->requires->css('/local/metadata/insview_style.css'); $PAGE->requires->css('/local/metadata/assessment_element_style.css'); // Create forms $assessments = get_table_data_for_course('courseassessment'); $assessment_form = new assessment_form($assessment_url, array('assessments' => $assessments)); // Case where they cancelled the form. Just redirect to it, to reset values if ($assessment_form->is_cancelled()) { redirect($assessment_url); } // Submitted the data if ($data = $assessment_form->get_data()) { if ($assessment_form->rubrik_was_uploaded()) { $index = 'gradingDescription_uploaded[0]'; $assessment_form->upload_rubrik($index); } if ($assessment_form->assessments_were_uploaded()) { $assessment_form->upload_assessments(); } $assessment_form->save_assessment_list($data);
/** * Will set up a repeating template, with elements for each piece of required data * * Does not set defaults for the elements. * * @param int $numSessions number of Sessions that have been created for the course */ private function add_session_repeat_template($numSessions) { global $DB; $mform = $this->_form; $repeatoptions = array(); $repeatarray = array(); $repeatarray[] = $mform->createElement('header', 'sessionheader'); $repeatarray[] = $mform->createElement('text', 'sessiontitle', get_string('session_title', 'local_metadata')); $repeatarray[] = $mform->createElement('text', 'sessionguestteacher', get_string('session_guest_teacher', 'local_metadata')); $repeatarray[] = $mform->createElement('select', 'sessiontype', get_string('session_type', 'local_metadata'), get_session_types()); $repeatarray[] = $mform->createElement('select', 'sessionlength', get_string('session_length', 'local_metadata'), get_session_lengths()); $repeatarray[] = $mform->createElement('date_selector', 'sessiondate', get_string('session_date', 'local_metadata')); $strategies = get_teaching_strategies(); $teachingStrategyEl = $mform->createElement('select', 'sessionteachingstrategy', get_string('session_teaching_strategy', 'local_metadata'), $strategies, array('size' => count($strategies))); $teachingStrategyEl->setMultiple(true); $repeatarray[] = $teachingStrategyEl; // Set up the select for learning objectives // Will separate them based on type // Then, everytime need to deal with them, will also deal with them separated by type $learningObjectives = get_course_learning_objectives(); $learningObjectivesList = array(); foreach ($learningObjectives as $learningObjective) { $learningObjectivesList[$learningObjective->objectivetype][$learningObjective->id] = $learningObjective->objectivename; } $learningObjectiveTypes = get_learning_objective_types(); foreach ($learningObjectiveTypes as $learningObjectiveType) { $options = array(); if (array_key_exists($learningObjectiveType, $learningObjectivesList)) { $options = $learningObjectivesList[$learningObjectiveType]; } $learningObjectivesEl = $mform->createElement('select', 'learning_objective_' . $learningObjectiveType, get_string('learning_objective_' . $learningObjectiveType, 'local_metadata'), $options); $learningObjectivesEl->setMultiple(true); $repeatarray[] = $learningObjectivesEl; $repeatoptions['learning_objective_' . $learningObjectiveType]['helpbutton'] = array('multi_select_help', 'local_metadata'); } // Set up the select for assessments $assessments = get_table_data_for_course('courseassessment'); $assessmentsList = array(); foreach ($assessments as $assessment) { $assessmentsList[$assessment->id] = $assessment->assessmentname; } $assessmentsEl = $mform->createElement('select', 'assessments', get_string('related_assessments', 'local_metadata'), $assessmentsList); $assessmentsEl->setMultiple(true); $repeatarray[] = $assessmentsEl; $this->setup_topic_options($mform, $repeatarray, $repeatoptions); $repeatarray[] = $mform->createElement('submit', 'delete_session', get_string('deletesession', 'local_metadata')); $this->add_recurring_element_nosubmit_button($mform, 'delete_session'); // Add needed hidden elements // Stores the id for each element $repeatarray[] = $mform->createElement('hidden', 'coursesession_id', -1); $repeatarray[] = $mform->createElement('hidden', 'was_deleted', false); $repeatoptions['sessionheader']['default'] = get_string('new_session_header', 'local_metadata'); // Moodle complains if some elements aren't given a type $repeatoptions['sessiontitle']['type'] = PARAM_TEXT; $repeatoptions['sessionguestteacher']['type'] = PARAM_TEXT; $repeatoptions['all_topics_text_array']['type'] = PARAM_TEXT; $repeatoptions['new_topic']['type'] = PARAM_TEXT; $repeatoptions['coursesession_id']['type'] = PARAM_INT; $repeatoptions['was_deleted']['type'] = PARAM_RAW; $repeatoptions['sessionteachingstrategy']['helpbutton'] = array('session_teaching_strategy', 'local_metadata'); // Add the repeating elements to the form $this->repeat_elements($repeatarray, $numSessions, $repeatoptions, 'sessions_list', 'sessions_list_add_element', 1, get_string('add_session', 'local_metadata')); }
/** * Edit the number of course session or assessment. * @param string $course_format either 'session' or 'assessment' * @param integer $new_course_format_number a new number of session or assessment * @return void */ private function edit_course_format($course_format, $new_course_format_number) { global $DB, $CFG, $USER; //Declare them if you need them global $course, $courseId; $current_course_format = $DB->count_records($course_format, array('courseid' => $courseId)); if ($new_course_format_number > $current_course_format) { // insert new record $new_add = $new_course_format_number - $current_course_format; for ($i = 0; $i < $new_add; $i++) { $this->insert_number_of_course_format($course_format); } } else { // delete the latest record $number_deleted = $current_course_format - $new_course_format_number; for ($i = 0; $i < $number_deleted; $i++) { $exist_sessions = get_table_data_for_course($course_format); $delete_session = $DB->delete_records($course_format, array('id' => end($exist_sessions)->id)); } } }