/** * For the current assessment, will populate the learning objectives, related assessments, and topics from the database * * Stolen from assessment_form * * @param int $mform Form that will be added to * @param string $index Index that must be used to access form elements for the current assessment * @param object $assessment The database tuple for the current assessment * */ function setup_data_from_database_for_assessment($mform, $index, $assessment) { global $DB; // Load the learning objectives for the assessment // Template for this was found in \mod\glossary\edit.php if ($learningObjectivesArr = $DB->get_records_menu("assessmentobjectives", array('assessmentid' => $assessment->id), '', 'id, objectiveid')) { $learningObjectiveTypes = get_learning_objective_types(); foreach ($learningObjectiveTypes as $learningObjectiveType) { $mform->setDefault('learning_objective_' . $learningObjectiveType . $index, array_values($learningObjectivesArr)); } } }
/** * This function is used for deleting a session, and interacting with topics. * Both displaying and editing the topic list * */ function definition_after_data() { parent::definition_after_data(); $mform = $this->_form; $numRepeated = $mform->getElementValue('sessions_list'); // Go through each session, and delete elements for ones that should be deleted for ($key = 0; $key < $numRepeated; ++$key) { $index = '[' . $key . ']'; $deleted = $mform->getSubmitValue('delete_session' . $index); // If a button is pressed, then doing $mform->getSubmitValue(buttonId) will return a non-null vaue // However, if other buttons are subsequently pressed, then $mform->getSubmitValue(buttonId) will return null // So use the element 'was_deleted' for that repeated element to store if has been deleted if ($deleted or $mform->getElementValue('was_deleted' . $index) == true) { // If deleted, just remove the visual elements // Will not save to the database until the user presses submit $mform->removeElement('sessionheader' . $index); $mform->removeElement('sessiontitle' . $index); $mform->removeElement('sessionteachingstrategy' . $index); $mform->removeElement('sessionguestteacher' . $index); $mform->removeElement('sessiontype' . $index); $mform->removeElement('sessionlength' . $index); $mform->removeElement('sessiondate' . $index); $learningObjectiveTypes = get_learning_objective_types(); foreach ($learningObjectiveTypes as $learningObjectiveType) { $mform->removeElement('learning_objective_' . $learningObjectiveType . $index); } $mform->removeElement('assessments' . $index); $mform->removeElement('manage_topics_group' . $index); $mform->removeElement('add_topic_group' . $index); $mform->removeElement('delete_session' . $index); $mform->getElement('was_deleted' . $index)->setValue(true); } else { $this->update_topics($mform, $index); // New element, so expand header by default if ($mform->getElement('coursesession_id' . $index)->getValue() == -1) { $mform->setExpanded('sessionheader' . $index); } } } // navigate to the newest added element if (isset($_POST['sessions_list_add_element'])) { redirect_to_anchor('session', 'id_sessions_list_add_element', -700); } }