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)';