Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ jobs:
fail-fast: false
matrix:
include:
- php: '8.4'
moodle-branch: 'MOODLE_500_STABLE'
database: 'pgsql'
- php: '8.3'
moodle-branch: 'MOODLE_405_STABLE'
moodle-branch: 'MOODLE_500_STABLE'
database: 'mariadb'
- php: '8.2'
moodle-branch: 'MOODLE_405_STABLE'
moodle-branch: 'MOODLE_500_STABLE'
database: 'pgsql'
- php: '8.1'
moodle-branch: 'MOODLE_404_STABLE'
database: 'mariadb'

steps:
- name: Checkout
Expand Down Expand Up @@ -72,6 +72,7 @@ jobs:
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
IGNORE_PATHS: 'templates/local/mobile'
PHPDOCCHECKER_IGNORE_PATHS: /^vendor/
CODECHECKER_IGNORE_NAMES: 'mobiledump.txt'

- name: PHP Lint
if: ${{ always() }}
Expand All @@ -84,11 +85,11 @@ jobs:

- name: Moodle Code Checker
if: ${{ always() }}
run: moodle-plugin-ci codechecker || true
run: moodle-plugin-ci codechecker

- name: Moodle PHPDoc Checker
if: ${{ always() }}
run: moodle-plugin-ci phpdoc || true
run: moodle-plugin-ci phpdoc

- name: Validating
if: ${{ always() }}
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
28 changes: 14 additions & 14 deletions backup/moodle1/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,22 @@ class moodle1_mod_questionnaire_handler extends moodle1_mod_handler {
* @return array of convert_path instances
*/
public function get_paths() {
return array(
return [
new convert_path(
'questionnaire', '/MOODLE_BACKUP/COURSE/MODULES/MOD/QUESTIONNAIRE',
array(
'renamefields' => array(
[
'renamefields' => [
'summary' => 'intro',
),
'newfields' => array(
],
'newfields' => [
'introformat' => 0,
),
)
],
]
),
new convert_path('survey', '/MOODLE_BACKUP/COURSE/MODULES/MOD/QUESTIONNAIRE/SURVEY'),
new convert_path('question', '/MOODLE_BACKUP/COURSE/MODULES/MOD/QUESTIONNAIRE/SURVEY/QUESTION'),
new convert_path('question_choice', '/MOODLE_BACKUP/COURSE/MODULES/MOD/QUESTIONNAIRE/SURVEY/QUESTION/QUESTION_CHOICE'),
);
];
}

/**
Expand All @@ -74,9 +74,9 @@ public function process_questionnaire($data) {

// We now have all information needed to start writing into the file.
$this->open_xml_writer("activities/questionnaire_{$moduleid}/questionnaire.xml");
$this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $moduleid,
'modulename' => 'questionnaire', 'contextid' => $contextid));
$this->xmlwriter->begin_tag('questionnaire', array('id' => $instanceid));
$this->xmlwriter->begin_tag('activity', ['id' => $instanceid, 'moduleid' => $moduleid,
'modulename' => 'questionnaire', 'contextid' => $contextid, ]);
$this->xmlwriter->begin_tag('questionnaire', ['id' => $instanceid]);

unset($data['id']); // We already write it as attribute, do not repeat it as child element.
foreach ($data as $field => $value) {
Expand All @@ -101,7 +101,7 @@ public function on_questionnaire_end() {
* @param array $data
*/
public function process_survey($data) {
$this->xmlwriter->begin_tag('survey', array('id' => $data['id']));
$this->xmlwriter->begin_tag('survey', ['id' => $data['id']]);
unset($data['id']); // We already write it as attribute, do not repeat it as child element.
foreach ($data as $field => $value) {
$this->xmlwriter->full_tag($field, $value);
Expand All @@ -124,7 +124,7 @@ public function on_survey_end() {
*/
public function process_question($data) {

$this->xmlwriter->begin_tag('question', array('id' => $data['id']));
$this->xmlwriter->begin_tag('question', ['id' => $data['id']]);

unset($data['id']); // We already write it as attribute, do not repeat it as child element.
foreach ($data as $field => $value) {
Expand All @@ -148,6 +148,6 @@ public function on_question_end() {
* @param array $data
*/
public function process_question_choice($data) {
$this->write_xml('quest_choice', $data, array('/question_choice/id'));
$this->write_xml('quest_choice', $data, ['/question_choice/id']);
}
}
86 changes: 43 additions & 43 deletions backup/moodle2/backup_questionnaire_stepslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,78 +36,78 @@ protected function define_structure() {
$userinfo = $this->get_setting_value('userinfo');

// Define each element separated.
$questionnaire = new backup_nested_element('questionnaire', array('id'), array(
$questionnaire = new backup_nested_element('questionnaire', ['id'], [
'course', 'name', 'intro', 'introformat', 'qtype',
'respondenttype', 'resp_eligible', 'resp_view', 'notifications', 'opendate',
'closedate', 'resume', 'navigate', 'grade', 'sid', 'timemodified', 'completionsubmit', 'autonum', 'removeafter'));
'closedate', 'resume', 'navigate', 'grade', 'sid', 'timemodified', 'completionsubmit', 'autonum', 'removeafter', ]);

$surveys = new backup_nested_element('surveys');

$survey = new backup_nested_element('survey', array('id'), array(
$survey = new backup_nested_element('survey', ['id'], [
'name', 'courseid', 'realm', 'status', 'title', 'email', 'subtitle',
'info', 'theme', 'thanks_page', 'thank_head', 'thank_body', 'feedbacksections',
'feedbacknotes', 'feedbackscores', 'chart_type'));
'feedbacknotes', 'feedbackscores', 'chart_type', ]);

$questions = new backup_nested_element('questions');

$question = new backup_nested_element('question', array('id'), array('surveyid', 'name', 'type_id', 'result_id',
'length', 'precise', 'position', 'content', 'required', 'deleted', 'extradata'));
$question = new backup_nested_element('question', ['id'], ['surveyid', 'name', 'type_id', 'result_id',
'length', 'precise', 'position', 'content', 'required', 'deleted', 'extradata', ]);

$questchoices = new backup_nested_element('quest_choices');

$questchoice = new backup_nested_element('quest_choice', array('id'), array('question_id', 'content', 'value'));
$questchoice = new backup_nested_element('quest_choice', ['id'], ['question_id', 'content', 'value']);

$questdependencies = new backup_nested_element('quest_dependencies');

$questdependency = new backup_nested_element('quest_dependency', array('id'), array(
'dependquestionid', 'dependchoiceid', 'dependlogic', 'questionid', 'surveyid', 'dependandor'));
$questdependency = new backup_nested_element('quest_dependency', ['id'], [
'dependquestionid', 'dependchoiceid', 'dependlogic', 'questionid', 'surveyid', 'dependandor', ]);

$fbsections = new backup_nested_element('fb_sections');

$fbsection = new backup_nested_element('fb_section', array('id'), array(
'surveyid', 'section', 'scorecalculation', 'sectionlabel', 'sectionheading', 'sectionheadingformat'));
$fbsection = new backup_nested_element('fb_section', ['id'], [
'surveyid', 'section', 'scorecalculation', 'sectionlabel', 'sectionheading', 'sectionheadingformat', ]);

$feedbacks = new backup_nested_element('feedbacks');

$feedback = new backup_nested_element('feedback', array('id'), array(
'sectionid', 'feedbacklabel', 'feedbacktext', 'feedbacktextformat', 'minscore', 'maxscore'));
$feedback = new backup_nested_element('feedback', ['id'], [
'sectionid', 'feedbacklabel', 'feedbacktext', 'feedbacktextformat', 'minscore', 'maxscore', ]);

$responses = new backup_nested_element('responses');

$response = new backup_nested_element('response', array('id'), array(
'questionnaireid', 'submitted', 'complete', 'grade', 'userid'));
$response = new backup_nested_element('response', ['id'], [
'questionnaireid', 'submitted', 'complete', 'grade', 'userid', ]);

$responsebools = new backup_nested_element('response_bools');

$responsebool = new backup_nested_element('response_bool', array('id'), array('response_id', 'question_id', 'choice_id'));
$responsebool = new backup_nested_element('response_bool', ['id'], ['response_id', 'question_id', 'choice_id']);

$responsedates = new backup_nested_element('response_dates');

$responsedate = new backup_nested_element('response_date', array('id'), array('response_id', 'question_id', 'response'));
$responsedate = new backup_nested_element('response_date', ['id'], ['response_id', 'question_id', 'response']);

$responsemultiples = new backup_nested_element('response_multiples');

$responsemultiple = new backup_nested_element('response_multiple', array('id'), array(
'response_id', 'question_id', 'choice_id'));
$responsemultiple = new backup_nested_element('response_multiple', ['id'], [
'response_id', 'question_id', 'choice_id', ]);

$responseothers = new backup_nested_element('response_others');

$responseother = new backup_nested_element('response_other', array('id'), array(
'response_id', 'question_id', 'choice_id', 'response'));
$responseother = new backup_nested_element('response_other', ['id'], [
'response_id', 'question_id', 'choice_id', 'response', ]);

$responseranks = new backup_nested_element('response_ranks');

$responserank = new backup_nested_element('response_rank', array('id'), array(
'response_id', 'question_id', 'choice_id', 'rankvalue'));
$responserank = new backup_nested_element('response_rank', ['id'], [
'response_id', 'question_id', 'choice_id', 'rankvalue', ]);

$responsesingles = new backup_nested_element('response_singles');

$responsesingle = new backup_nested_element('response_single', array('id'), array(
'response_id', 'question_id', 'choice_id'));
$responsesingle = new backup_nested_element('response_single', ['id'], [
'response_id', 'question_id', 'choice_id', ]);

$responsetexts = new backup_nested_element('response_texts');

$responsetext = new backup_nested_element('response_text', array('id'), array('response_id', 'question_id', 'response'));
$responsetext = new backup_nested_element('response_text', ['id'], ['response_id', 'question_id', 'response']);

// Build the tree.
$questionnaire->add_child($surveys);
Expand Down Expand Up @@ -153,36 +153,36 @@ protected function define_structure() {
$responsetexts->add_child($responsetext);

// Define sources.
$questionnaire->set_source_table('questionnaire', array('id' => backup::VAR_ACTIVITYID));
$questionnaire->set_source_table('questionnaire', ['id' => backup::VAR_ACTIVITYID]);

// Is current questionnaire based on a public questionnaire?
$qid = $this->task->get_activityid();
$currentquestionnaire = $DB->get_record("questionnaire", array ("id" => $qid));
$currentsurvey = $DB->get_record("questionnaire_survey", array ("id" => $currentquestionnaire->sid));
$currentquestionnaire = $DB->get_record("questionnaire", ["id" => $qid]);
$currentsurvey = $DB->get_record("questionnaire_survey", ["id" => $currentquestionnaire->sid]);
$haspublic = false;
if ($currentsurvey->realm == 'public' && $currentsurvey->courseid != $currentquestionnaire->course) {
$haspublic = true;
}

// If current questionnaire is based on a public one, do not include survey nor questions in backup.
if (!$haspublic) {
$survey->set_source_table('questionnaire_survey', array('id' => '../../sid'));
$question->set_source_table('questionnaire_question', array('surveyid' => backup::VAR_PARENTID));
$fbsection->set_source_table('questionnaire_fb_sections', array('surveyid' => backup::VAR_PARENTID));
$feedback->set_source_table('questionnaire_feedback', array('sectionid' => backup::VAR_PARENTID));
$questchoice->set_source_table('questionnaire_quest_choice', array('question_id' => backup::VAR_PARENTID), 'id ASC');
$questdependency->set_source_table('questionnaire_dependency', array('questionid' => backup::VAR_PARENTID));
$survey->set_source_table('questionnaire_survey', ['id' => '../../sid']);
$question->set_source_table('questionnaire_question', ['surveyid' => backup::VAR_PARENTID]);
$fbsection->set_source_table('questionnaire_fb_sections', ['surveyid' => backup::VAR_PARENTID]);
$feedback->set_source_table('questionnaire_feedback', ['sectionid' => backup::VAR_PARENTID]);
$questchoice->set_source_table('questionnaire_quest_choice', ['question_id' => backup::VAR_PARENTID], 'id ASC');
$questdependency->set_source_table('questionnaire_dependency', ['questionid' => backup::VAR_PARENTID]);

// All the rest of elements only happen if we are including user info.
if ($userinfo) {
$response->set_source_table('questionnaire_response', array('questionnaireid' => backup::VAR_PARENTID));
$responsebool->set_source_table('questionnaire_response_bool', array('response_id' => backup::VAR_PARENTID));
$responsedate->set_source_table('questionnaire_response_date', array('response_id' => backup::VAR_PARENTID));
$responsemultiple->set_source_table('questionnaire_resp_multiple', array('response_id' => backup::VAR_PARENTID));
$responseother->set_source_table('questionnaire_response_other', array('response_id' => backup::VAR_PARENTID));
$responserank->set_source_table('questionnaire_response_rank', array('response_id' => backup::VAR_PARENTID));
$responsesingle->set_source_table('questionnaire_resp_single', array('response_id' => backup::VAR_PARENTID));
$responsetext->set_source_table('questionnaire_response_text', array('response_id' => backup::VAR_PARENTID));
$response->set_source_table('questionnaire_response', ['questionnaireid' => backup::VAR_PARENTID]);
$responsebool->set_source_table('questionnaire_response_bool', ['response_id' => backup::VAR_PARENTID]);
$responsedate->set_source_table('questionnaire_response_date', ['response_id' => backup::VAR_PARENTID]);
$responsemultiple->set_source_table('questionnaire_resp_multiple', ['response_id' => backup::VAR_PARENTID]);
$responseother->set_source_table('questionnaire_response_other', ['response_id' => backup::VAR_PARENTID]);
$responserank->set_source_table('questionnaire_response_rank', ['response_id' => backup::VAR_PARENTID]);
$responsesingle->set_source_table('questionnaire_resp_single', ['response_id' => backup::VAR_PARENTID]);
$responsetext->set_source_table('questionnaire_response_text', ['response_id' => backup::VAR_PARENTID]);
}

// Define id annotations.
Expand Down
18 changes: 9 additions & 9 deletions backup/moodle2/restore_questionnaire_activity_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,14 @@ protected function define_my_steps() {
* processed by the link decoder
*/
public static function define_decode_contents() {
$contents = array();
$contents = [];

$contents[] = new restore_decode_content('questionnaire', array('intro'), 'questionnaire');
$contents[] = new restore_decode_content('questionnaire', ['intro'], 'questionnaire');
$contents[] = new restore_decode_content('questionnaire_survey',
array('info', 'thank_head', 'thank_body', 'thanks_page', 'feedbacknotes'), 'questionnaire_survey');
$contents[] = new restore_decode_content('questionnaire_question', array('content'), 'questionnaire_question');
$contents[] = new restore_decode_content('questionnaire_fb_sections', array('sectionheading'), 'questionnaire_fb_sections');
$contents[] = new restore_decode_content('questionnaire_feedback', array('feedbacktext'), 'questionnaire_feedback');
['info', 'thank_head', 'thank_body', 'thanks_page', 'feedbacknotes'], 'questionnaire_survey');
$contents[] = new restore_decode_content('questionnaire_question', ['content'], 'questionnaire_question');
$contents[] = new restore_decode_content('questionnaire_fb_sections', ['sectionheading'], 'questionnaire_fb_sections');
$contents[] = new restore_decode_content('questionnaire_feedback', ['feedbacktext'], 'questionnaire_feedback');

return $contents;
}
Expand All @@ -65,7 +65,7 @@ public static function define_decode_contents() {
* to the activity to be executed by the link decoder
*/
public static function define_decode_rules() {
$rules = array();
$rules = [];

$rules[] = new restore_decode_rule('QUESTIONNAIREVIEWBYID', '/mod/questionnaire/view.php?id=$1', 'course_module');
$rules[] = new restore_decode_rule('QUESTIONNAIREINDEX', '/mod/questionnaire/index.php?id=$1', 'course');
Expand All @@ -81,7 +81,7 @@ public static function define_decode_rules() {
* of restore_log_rule objects
*/
public static function define_restore_log_rules() {
$rules = array();
$rules = [];

$rules[] = new restore_log_rule('questionnaire', 'add', 'view.php?id={course_module}', '{questionnaire}');
$rules[] = new restore_log_rule('questionnaire', 'update', 'view.php?id={course_module}', '{questionnaire}');
Expand All @@ -104,7 +104,7 @@ public static function define_restore_log_rules() {
* activity level. All them are rules not linked to any module instance (cmid = 0)
*/
public static function define_restore_log_rules_for_course() {
$rules = array();
$rules = [];

// Fix old wrong uses (missing extension).
$rules[] = new restore_log_rule('questionnaire', 'view all', 'index?id={course}', null,
Expand Down
Loading