diff --git a/backup/moodle2/backup_jazzquiz_stepslib.php b/backup/moodle2/backup_jazzquiz_stepslib.php index 8fdf3ec..3eec4dd 100644 --- a/backup/moodle2/backup_jazzquiz_stepslib.php +++ b/backup/moodle2/backup_jazzquiz_stepslib.php @@ -34,7 +34,9 @@ protected function define_structure() { 'timecreated', 'timemodified', 'defaultquestiontime', - 'waitforquestiontime' + 'waitforquestiontime', + 'cfganonymity', + 'cfgallowguests' ]); $questions = new backup_nested_element('questions'); @@ -53,7 +55,9 @@ protected function define_structure() { 'slot', 'currentquestiontime', 'nextstarttime', - 'created' + 'created', + 'anonymity', + 'allowguests' ]); $sessionquestions = new backup_nested_element('sessionquestions'); @@ -74,7 +78,8 @@ protected function define_structure() { 'responded', 'timestart', 'timefinish', - 'timemodified' + 'timemodified', + 'guestsession' ]); $this->add_question_usages($attempt, 'questionengid'); @@ -98,6 +103,13 @@ protected function define_structure() { 'slot' ]); + $attendances = new backup_nested_element('attendances'); + $attendance = new backup_nested_element('attendance', ['id'], [ + 'sessionid', + 'userid', + 'numresponses' + ]); + // Build the tree. $jazzquiz->add_child($questions); $jazzquiz->add_child($sessions); @@ -109,11 +121,13 @@ protected function define_structure() { $session->add_child($attempts); $session->add_child($merges); $session->add_child($votes); + $session->add_child($attendances); $sessionquestions->add_child($sessionquestion); $attempts->add_child($attempt); $merges->add_child($merge); $votes->add_child($vote); + $attendances->add_child($attendance); // Define sources. $jazzquiz->set_source_table('jazzquiz', ['id' => backup::VAR_ACTIVITYID]); @@ -122,6 +136,7 @@ protected function define_structure() { $session->set_source_table('jazzquiz_sessions', ['jazzquizid' => backup::VAR_PARENTID]); $sessionquestion->set_source_table('jazzquiz_session_questions', ['sessionid' => backup::VAR_PARENTID]); $attempt->set_source_table('jazzquiz_attempts', ['sessionid' => backup::VAR_PARENTID]); + $attendance->set_source_table('jazzquiz_attendance', ['sessionid' => backup::VAR_PARENTID]); $merge->set_source_table('jazzquiz_merges', ['sessionid' => backup::VAR_PARENTID]); $vote->set_source_table('jazzquiz_votes', [ 'jazzquizid' => backup::VAR_ACTIVITYID, @@ -131,6 +146,7 @@ protected function define_structure() { // Define id annotations. $attempt->annotate_ids('user', 'userid'); + $attendance->annotate_ids('user', 'userid'); $question->annotate_ids('question', 'questionid'); $sessionquestion->annotate_ids('question', 'questionid'); diff --git a/backup/moodle2/restore_jazzquiz_stepslib.php b/backup/moodle2/restore_jazzquiz_stepslib.php index e4b2a00..a662293 100644 --- a/backup/moodle2/restore_jazzquiz_stepslib.php +++ b/backup/moodle2/restore_jazzquiz_stepslib.php @@ -33,6 +33,7 @@ protected function define_structure() { $paths[] = new restore_path_element('jazzquiz_session_question', '/activity/jazzquiz/sessions/session/sessionquestions/sessionquestion'); $paths[] = new restore_path_element('jazzquiz_merge', '/activity/jazzquiz/sessions/session/merges/merge'); $paths[] = new restore_path_element('jazzquiz_vote', '/activity/jazzquiz/sessions/session/votes/vote'); + $paths[] = new restore_path_element('jazzquiz_attendance', '/activity/jazzquiz/sessions/session/attendances/attendance'); $attempt = new restore_path_element('jazzquiz_attempt', '/activity/jazzquiz/sessions/session/attempts/attempt'); $paths[] = $attempt; $this->add_question_usages($attempt, $paths); @@ -124,6 +125,16 @@ protected function process_jazzquiz_vote($data) { $this->set_mapping('jazzquiz_vote', $oldid, $newitemid); } + protected function process_jazzquiz_attendance($data) { + global $DB; + $data = (object)$data; + $oldid = $data->id; + $data->userid = $this->get_mappingid('user', $data->userid); + $data->sessionid = $this->get_new_parentid('jazzquiz_session'); + $newitemid = $DB->insert_record('jazzquiz_attendance', $data); + $this->set_mapping('jazzquiz_attendance', $oldid, $newitemid); + } + protected function after_execute() { $this->add_related_files('mod_jazzquiz', 'intro', null); } diff --git a/classes/forms/view/start_session.php b/classes/forms/view/start_session.php index c8c914e..a7f6bd2 100755 --- a/classes/forms/view/start_session.php +++ b/classes/forms/view/start_session.php @@ -66,7 +66,7 @@ public function definition() { $mform->createElement('radio', 'anonymity', '', get_string('fully_anonymous', 'jazzquiz'), 2, []), $mform->createElement('radio', 'anonymity', '', get_string('nonanonymous_session', 'jazzquiz'), 3, []) ]; - $mform->addGroup($anonymity,'anonymity', '', ['
', ''], false); + $mform->addGroup($anonymity, 'anonymity', '', ['
', ''], false); $mform->setDefault('anonymity', $jazzquiz->data->cfganonymity); $mform->addElement('checkbox', 'allowguests', '', get_string('allow_guests', 'jazzquiz')); $mform->setDefault('allowguests', $jazzquiz->data->cfgallowguests); diff --git a/lib.php b/lib.php index bdb0cf6..75f85bb 100755 --- a/lib.php +++ b/lib.php @@ -103,6 +103,23 @@ function jazzquiz_cron() { return true; } +/** + * This function extends the settings navigation block for the site. + * + * @param settings_navigation $settings + * @param navigation_node $jazzquiznode + * @return void + */ +function jazzquiz_extend_settings_navigation($settings, $jazzquiznode) { + global $PAGE, $CFG; + + // Require {@link questionlib.php} + // Included here as we only ever want to include this file if we really need to. + require_once($CFG->libdir . '/questionlib.php'); + + question_extend_settings_navigation($jazzquiznode, $PAGE->cm->context)->trim_if_empty(); +} + /** * @param \stdClass|int $course * @param \stdClass $cm diff --git a/version.php b/version.php index 3c5d27e..f65e465 100755 --- a/version.php +++ b/version.php @@ -17,6 +17,7 @@ /** * @package mod_jazzquiz * @author Sebastian S. Gundersen + * @author André Storhaug * @copyright 2014 University of Wisconsin - Madison * @copyright 2019 NTNU * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later @@ -24,9 +25,9 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2019062100; // The current module version (Date: YYYYMMDDXX) +$plugin->version = 2019073000; // The current module version (Date: YYYYMMDDXX) $plugin->requires = 2018051700; // Moodle 3.5 (or above) $plugin->cron = 0; // Period in seconds for cron to run. $plugin->component = 'mod_jazzquiz'; $plugin->maturity = MATURITY_STABLE; -$plugin->release = '0.9.3 (Build: 2019062100)'; +$plugin->release = '1.0.0 (Build: 2019073000)';