MDL-40313 questionbank: Add question filtering API
Add new API for filtering questions, refactoring the options to display old questions
and include subcategories into new question_bank_search_condition classes.
Make the new API pluggable via local_[pluginname]_get_question_bank_search_conditions.
Merge branch 'master' of https://github.com/MorrisR2/moodle

Conflicts:
	mod/quiz/editlib.php
	question/editlib.php
	question/upgrade.txt
	question/yui/build/moodle-question-searchform/moodle-question-searchform-debug.js
	question/yui/build/moodle-question-searchform/moodle-question-searchform-min.js
	question/yui/build/moodle-question-searchform/moodle-question-searchform.js
	question/yui/src/searchform/build.json
	question/yui/src/searchform/js/searchform.js
	question/yui/src/searchform/meta/searchform.json
MDL-40313 questionbank: Add question filtering API, merge

Add new API for filtering questions, refactoring the options to display
old questions and include subcategories into new
question_bank_search_condition classes. Make the new API pluggable via
local_[pluginname]_get_question_bank_search_conditions.
MDL-40457 Question Bank: Allow plugins to add columns to question bank view

This commit allows plugins to add columns to the question bank view.
For example, a plugin could add a "last modified date" column by declaring
a class as such:
class local_qbmodified_question_bank_column extends question_bank_column_base {

The plugin should return an array of its columns from _question_bank_column_types() ie:

function local_qbmodified_question_bank_column_types($question_bank_view) {
    return array('lastmodified' => new local_qbmodified_question_bank_column($question_bank_view));
}

Columns to be displayed are set as follows:
$CFG->questionbankcolumns = array('checkbox', 'qtype', 'questionname', 'editaction', 'previewaction',
                                  'moveaction', 'deleteaction', 'creatorname', 'modifiername',
                                  'local_searchbytags|tags', 'local_qbmodified|lastmodified'
                                  );
MDL-40457_plugins_can_add_columns_to_question_bank Add message to upgrade.txt
Merge with upstream
Merge
gitignore local files
Merge branch 'master' of https://github.com/MorrisR2/moodle

Conflicts:
	.gitignore
	admin/tool/log/classes/helper/buffered_writer.php
	admin/tool/log/classes/helper/reader.php
	admin/tool/log/classes/log/manager.php
	admin/tool/log/classes/log/store.php
	admin/tool/log/classes/setting_managestores.php
	admin/tool/log/db/install.php
	admin/tool/log/lang/en/tool_log.php
	admin/tool/log/store/database/classes/log/store.php
	admin/tool/log/store/database/lang/en/logstore_database.php
	admin/tool/log/store/database/settings.php
	admin/tool/log/store/database/tests/store_test.php
	admin/tool/log/store/database/version.php
	admin/tool/log/store/legacy/classes/event/legacy_logged.php
	admin/tool/log/store/legacy/classes/log/store.php
	admin/tool/log/store/legacy/lang/en/logstore_legacy.php
	admin/tool/log/store/legacy/settings.php
	admin/tool/log/store/legacy/tests/store_test.php
	admin/tool/log/store/legacy/version.php
	admin/tool/log/store/standard/classes/log/store.php
	admin/tool/log/store/standard/db/install.xml
	admin/tool/log/store/standard/lang/en/logstore_standard.php
	admin/tool/log/store/standard/tests/store_test.php
	admin/tool/log/store/standard/version.php
	admin/tool/log/version.php
	admin/tool/task/classes/edit_scheduled_task_form.php
	admin/tool/task/lang/en/tool_task.php
	admin/tool/task/renderer.php
	admin/tool/task/scheduledtasks.php
	badges/renderer.php
	config-dist.php
	course/editsection_form.php
	course/format/upgrade.txt
	course/tests/courselib_test.php
	files/renderer.php
	grade/import/csv/index.php
	grade/tests/externallib_test.php
	group/autogroup.php
	group/group.php
	group/grouping.php
	install/lang/cs/error.php
	lang/en/moodle.php
	lang/en/repository.php
	lib/adminlib.php
	lib/classes/event/assessable_submitted.php
	lib/classes/event/assessable_uploaded.php
	lib/classes/event/base.php
	lib/classes/event/course_module_completion_updated.php
	lib/classes/event/course_module_created.php
	lib/classes/event/course_module_instance_list_viewed.php
	lib/classes/event/course_module_updated.php
	lib/classes/event/email_failed.php
	lib/classes/event/message_contact_added.php
	lib/classes/event/message_contact_blocked.php
	lib/classes/event/message_contact_removed.php
	lib/classes/event/message_contact_unblocked.php
	lib/classes/event/message_read.php
	lib/classes/event/message_sent.php
	lib/classes/event/mnet_access_control_created.php
	lib/classes/event/mnet_access_control_updated.php
	lib/classes/event/user_login_failed.php
	lib/classes/log/dummy_manager.php
	lib/classes/log/manager.php
	lib/classes/log/reader.php
	lib/classes/plugin_manager.php
	lib/classes/task/adhoc_task.php
	lib/classes/task/manager.php
	lib/classes/task/scheduled_task.php
	lib/classes/task/send_failed_login_notifications_task.php
	lib/classes/task/task_base.php
	lib/datalib.php
	lib/db/events.php
	lib/db/install.xml
	lib/db/services.php
	lib/db/upgrade.php
	lib/deprecatedlib.php
	lib/dml/tests/dml_test.php
	lib/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php
	lib/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php
	lib/messagelib.php
	lib/outputlib.php
	lib/setup.php
	lib/setuplib.php
	lib/statslib.php
	lib/testing/classes/util.php
	lib/testing/generator/data_generator.php
	lib/tests/adhoc_task_test.php
	lib/tests/authlib_test.php
	lib/tests/datalib_update_with_unique_index_test.php
	lib/tests/event_test.php
	lib/tests/events_test.php
	lib/tests/fixtures/event_fixtures.php
	lib/tests/scheduled_task_test.php
	lib/tests/upgradelib_test.php
	lib/upgrade.txt
	lib/upgradelib.php
	lib/yui/build/moodle-core-blocks/moodle-core-blocks-debug.js
	lib/yui/build/moodle-core-blocks/moodle-core-blocks-min.js
	lib/yui/build/moodle-core-blocks/moodle-core-blocks.js
	lib/yui/build/moodle-core-chooserdialogue/moodle-core-chooserdialogue-min.js
	lib/yui/build/moodle-core-dock/moodle-core-dock-debug.js
	lib/yui/build/moodle-core-dock/moodle-core-dock-min.js
	lib/yui/build/moodle-core-dock/moodle-core-dock.js
	lib/yui/build/moodle-core-notification-alert/moodle-core-notification-alert-debug.js
	lib/yui/build/moodle-core-notification-alert/moodle-core-notification-alert-min.js
	lib/yui/build/moodle-core-notification-alert/moodle-core-notification-alert.js
	lib/yui/build/moodle-core-notification-confirm/moodle-core-notification-confirm-debug.js
	lib/yui/build/moodle-core-notification-confirm/moodle-core-notification-confirm-min.js
	lib/yui/build/moodle-core-notification-confirm/moodle-core-notification-confirm.js
	lib/yui/build/moodle-core-notification-dialogue/moodle-core-notification-dialogue-debug.js
	lib/yui/build/moodle-core-notification-dialogue/moodle-core-notification-dialogue.js
	lib/yui/build/moodle-core-notification-exception/moodle-core-notification-exception-min.js
	lib/yui/src/blocks/js/manager.js
	lib/yui/src/dock/js/dock.js
	lib/yui/src/notification/js/alert.js
	lib/yui/src/notification/js/confirm.js
	lib/yui/src/notification/js/dialogue.js
	lib/yuilib/3.15.0/dd-drag/dd-drag-debug.js
	lib/yuilib/3.15.0/dd-drag/dd-drag-min.js
	lib/yuilib/3.15.0/dd-drag/dd-drag.js
	lib/yuilib/3.15.0/dd-gestures/dd-gestures-debug.js
	lib/yuilib/3.15.0/dd-gestures/dd-gestures-min.js
	lib/yuilib/3.15.0/dd-gestures/dd-gestures.js
	message/tests/events_test.php
	mnet/lib.php
	mnet/tests/events_test.php
	mod/assign/classes/event/all_submissions_downloaded.php
	mod/assign/classes/event/assessable_submitted.php
	mod/assign/classes/event/extension_granted.php
	mod/assign/classes/event/identities_revealed.php
	mod/assign/classes/event/marker_updated.php
	mod/assign/classes/event/statement_accepted.php
	mod/assign/classes/event/submission_created.php
	mod/assign/classes/event/submission_duplicated.php
	mod/assign/classes/event/submission_graded.php
	mod/assign/classes/event/submission_locked.php
	mod/assign/classes/event/submission_status_updated.php
	mod/assign/classes/event/submission_unlocked.php
	mod/assign/classes/event/submission_updated.php
	mod/assign/classes/event/workflow_state_updated.php
	mod/assign/feedback/editpdf/classes/pdf.php
	mod/assign/feedback/editpdf/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js
	mod/assign/lang/en/assign.php
	mod/assign/locallib.php
	mod/assign/module.js
	mod/assign/submission/file/classes/event/submission_created.php
	mod/assign/submission/file/classes/event/submission_updated.php
	mod/assign/submission/file/locallib.php
	mod/assign/submission/onlinetext/classes/event/submission_created.php
	mod/assign/submission/onlinetext/classes/event/submission_updated.php
	mod/assign/submission/onlinetext/locallib.php
	mod/assign/tests/fixtures/event_mod_assign_fixtures.php
	mod/assign/tests/locallib_test.php
	mod/book/classes/event/chapter_viewed.php
	mod/book/edit.php
	mod/book/index.php
	mod/book/tests/events_test.php
	mod/book/view.php
	mod/chat/classes/event/sessions_viewed.php
	mod/choice/classes/event/report_viewed.php
	mod/data/classes/event/course_module_instance_list_viewed.php
	mod/data/classes/event/course_module_viewed.php
	mod/data/classes/event/field_created.php
	mod/data/classes/event/field_deleted.php
	mod/data/classes/event/field_updated.php
	mod/data/classes/event/record_created.php
	mod/data/classes/event/record_deleted.php
	mod/data/classes/event/record_updated.php
	mod/data/classes/event/template_updated.php
	mod/data/classes/event/template_viewed.php
	mod/data/tests/events_test.php
	mod/feedback/complete.php
	mod/feedback/complete_guest.php
	mod/feedback/tests/events_test.php
	mod/feedback/view.php
	mod/forum/classes/event/course_module_instance_list_viewed.php
	mod/forum/classes/event/course_module_viewed.php
	mod/forum/classes/event/course_searched.php
	mod/forum/classes/event/discussion_created.php
	mod/forum/classes/event/discussion_deleted.php
	mod/forum/classes/event/discussion_moved.php
	mod/forum/classes/event/discussion_updated.php
	mod/forum/classes/event/discussion_viewed.php
	mod/forum/classes/event/post_created.php
	mod/forum/classes/event/post_deleted.php
	mod/forum/classes/event/post_updated.php
	mod/forum/classes/event/readtracking_disabled.php
	mod/forum/classes/event/readtracking_enabled.php
	mod/forum/classes/event/subscribers_viewed.php
	mod/forum/classes/event/subscription_created.php
	mod/forum/classes/event/subscription_deleted.php
	mod/forum/classes/event/userreport_viewed.php
	mod/forum/tests/events_test.php
	mod/forum/version.php
	mod/glossary/editcategories.php
	mod/glossary/import.php
	mod/glossary/lib.php
	mod/glossary/tests/events_test.php
	mod/glossary/version.php
	mod/imscp/classes/event/course_module_instance_list_viewed.php
	mod/imscp/classes/event/course_module_viewed.php
	mod/lesson/classes/event/essay_assessed.php
	mod/quiz/edit.php
	mod/quiz/editlib.php
	mod/quiz/locallib.php
	mod/quiz/report/responses/first_or_all_responses_table.php
	mod/quiz/report/responses/responses_options.php
	mod/quiz/report/responses/tests/fixtures/steps00.csv
	mod/quiz/report/statistics/lang/en/quiz_statistics.php
	mod/quiz/report/statistics/report.php
	mod/quiz/report/statistics/tests/fixtures/responsecounts00.csv
	mod/quiz/report/statistics/tests/stats_from_steps_walkthrough_test.php
	mod/quiz/tests/behat/add_quiz.feature
	mod/quiz/tests/events_test.php
	mod/resource/classes/event/course_module_instance_list_viewed.php
	mod/resource/classes/event/course_module_viewed.php
	mod/scorm/datamodels/scormlib.php
	mod/scorm/db/upgrade.php
	mod/scorm/version.php
	mod/survey/classes/event/course_module_instance_list_viewed.php
	mod/survey/classes/event/course_module_viewed.php
	mod/survey/classes/event/report_downloaded.php
	mod/survey/classes/event/report_viewed.php
	mod/survey/classes/event/response_submitted.php
	mod/wiki/search.php
	mod/workshop/classes/event/assessment_evaluated.php
	mod/workshop/classes/event/assessment_evaluations_reset.php
	mod/workshop/classes/event/assessment_reevaluated.php
	mod/workshop/classes/event/assessments_reset.php
	mod/workshop/classes/event/course_module_instance_list_viewed.php
	mod/workshop/classes/event/phase_switched.php
	mod/workshop/classes/event/submission_assessed.php
	mod/workshop/classes/event/submission_created.php
	mod/workshop/classes/event/submission_reassessed.php
	mod/workshop/classes/event/submission_updated.php
	mod/workshop/classes/event/submission_viewed.php
	mod/workshop/submission.php
	mod/workshop/tests/events_test.php
	mod/workshop/toolbox.php
	mod/workshop/view.php
	question/classes/bank/checkbox_column.php
	question/classes/bank/view.php
	question/classes/statistics/questions/all_calculated_for_qubaid_condition.php
	question/classes/statistics/questions/calculated.php
	question/classes/statistics/questions/calculated_for_subquestion.php
	question/classes/statistics/questions/calculator.php
	question/classes/statistics/responses/analyser.php
	question/classes/statistics/responses/analysis_for_actual_response.php
	question/classes/statistics/responses/analysis_for_class.php
	question/classes/statistics/responses/analysis_for_question.php
	question/classes/statistics/responses/analysis_for_subpart.php
	question/edit.php
	question/editlib.php
	question/engine/questionattempt.php
	question/question.php
	question/tests/behat/behat_question_base.php
	question/type/upgrade.txt
	question/yui/build/moodle-question-preview/moodle-question-preview-debug.js
	question/yui/build/moodle-question-preview/moodle-question-preview.js
	question/yui/src/preview/js/preview.js
	report/log/classes/event/report_viewed.php
	report/log/classes/event/user_report_viewed.php
	report/log/index.php
	report/log/lang/en/report_log.php
	report/log/tests/events_test.php
	report/loglive/classes/event/report_viewed.php
	report/loglive/index.php
	report/loglive/lang/en/report_loglive.php
	report/loglive/tests/events_test.php
	report/outline/classes/event/activity_viewed.php
	report/outline/classes/event/outline_viewed.php
	report/outline/lang/en/report_outline.php
	report/participation/classes/event/report_viewed.php
	report/participation/index.php
	report/participation/lang/en/report_participation.php
	report/stats/classes/event/report_viewed.php
	report/stats/classes/event/user_report_viewed.php
	report/upgrade.txt
	theme/afterburner/db/upgrade.php
	theme/afterburner/lang/en/theme_afterburner.php
	theme/afterburner/layout/default.php
	theme/afterburner/layout/embedded.php
	theme/afterburner/lib.php
	theme/afterburner/renderers.php
	theme/afterburner/settings.php
	theme/afterburner/style/afterburner_dock.css
	theme/afterburner/version.php
	theme/anomaly/lang/en/theme_anomaly.php
	theme/anomaly/layout/frontpage.php
	theme/anomaly/layout/general.php
	theme/anomaly/layout/report.php
	theme/anomaly/lib.php
	theme/anomaly/renderers.php
	theme/anomaly/settings.php
	theme/anomaly/style/general.css
	theme/anomaly/version.php
	theme/arialist/layout/frontpage.php
	theme/arialist/layout/general.php
	theme/arialist/layout/report.php
	theme/arialist/lib.php
	theme/arialist/settings.php
	theme/arialist/style/pagelayout.css
	theme/base/style/core.css
	theme/base/style/filemanager.css
	theme/binarius/layout/frontpage.php
	theme/binarius/layout/general.php
	theme/binarius/layout/report.php
	theme/binarius/style/pagelayout.css
	theme/binarius/version.php
	theme/bootstrapbase/less/moodle/admin.less
	theme/bootstrapbase/less/moodle/bootstrapoverride.less
	theme/bootstrapbase/less/moodle/core.less
	theme/bootstrapbase/less/moodle/filemanager.less
	theme/bootstrapbase/less/moodle/modules.less
	theme/bootstrapbase/style/moodle.css
	theme/boxxie/layout/embedded.php
	theme/boxxie/layout/frontpage.php
	theme/boxxie/layout/general.php
	theme/boxxie/style/core.css
	theme/brick/layout/frontpage.php
	theme/brick/layout/general.php
	theme/brick/lib.php
	theme/brick/settings.php
	theme/brick/style/pagelayout.css
	theme/formal_white/style/core.css
	theme/formal_white/style/formal_white.css
	theme/formfactor/layout/embedded.php
	theme/formfactor/layout/frontpage.php
	theme/formfactor/layout/general.php
	theme/formfactor/style/mods.css
	theme/formfactor/version.php
	theme/fusion/layout/frontpage.php
	theme/fusion/layout/general.php
	theme/fusion/lib.php
	theme/fusion/settings.php
	theme/fusion/style/pagelayout.css
	theme/fusion/style/settings.css
	theme/leatherbound/layout/frontpage.php
	theme/leatherbound/layout/general.php
	theme/leatherbound/layout/report.php
	theme/magazine/lang/en/theme_magazine.php
	theme/magazine/layout/embedded.php
	theme/magazine/layout/frontpage.php
	theme/magazine/layout/general.php
	theme/magazine/lib.php
	theme/magazine/settings.php
	theme/magazine/style/core.css
	theme/magazine/style/layout.css
	theme/magazine/version.php
	theme/nimble/layout/frontpage.php
	theme/nimble/layout/general.php
	theme/nimble/lib.php
	theme/nimble/settings.php
	theme/nimble/style/pagelayout.css
	theme/nonzero/layout/frontpage.php
	theme/nonzero/layout/general.php
	theme/nonzero/lib.php
	theme/nonzero/settings.php
	theme/nonzero/style/pagelayout.css
	theme/overlay/layout/frontpage.php
	theme/overlay/layout/general.php
	theme/overlay/lib.php
	theme/overlay/settings.php
	theme/overlay/style/pagelayout.css
	theme/overlay/version.php
	theme/serenity/lang/en/theme_serenity.php
	theme/sky_high/lang/en/theme_sky_high.php
	theme/sky_high/layout/frontpage.php
	theme/sky_high/layout/general.php
	theme/sky_high/layout/report.php
	theme/sky_high/lib.php
	theme/sky_high/settings.php
	theme/sky_high/style/pagelayout.css
	theme/sky_high/version.php
	theme/splash/layout/embedded.php
	theme/splash/layout/report.php
	theme/standard/style/admin.css
	theme/standard/style/core.css
	theme/standard/style/grade.css
	theme/standard/style/modules.css
	theme/standard/style/question.css
	theme/standardold/layout/embedded.php
	theme/standardold/layout/frontpage.php
	theme/standardold/layout/general.php
	theme/styles.php
	theme/styles_debug.php
	theme/upgrade.txt
	user/editadvanced.php
	user/index.php
	user/portfolio.php
	user/profile.php
	user/profile/definelib.php
	user/profile/index.php
	user/profile/index_category_form.php
	version.php