An error was showing up while deleting questions
(in the question_save_from_deletion method) which had been saved
and which belonged to a quiz with a super long name, not exceeding 255
characters, as the 'name' field in 'question_categories' table had a
max size of 255 characters. The shorten_text function was used to
shorten the string to 255 characters and a unit test was added with
the name test_question_save_from_deletion_quiz_with_long_name to test
the patch.
Prevent having multiple top question categories when deleting a course category.
This commit also fix the problem of question files' contexts not being updated when moving them.
Changes include:
* question: Add bootstrap classes to buttons and selects so they look consistent.
* mod_quiz: Add bootstrap styles to report form elements
* question: Add bootstrap classes to question form elements
* And remove the success/fail styles from boost because they conflict badly
with the quiz plugin styles (making unreadable text).
* quiz: nav block buttons had black background
* quiz: Add bootstrap styles to quiz navigation buttons
* qtype_ddmarker: Remove bullets from list
Edit form coordinates preview had list bullets for each coordinate.
* boost: Prevent menu scrolling on quiz edit
* mod_quiz: Add bootstrap styles to edit quiz fields
Pagination and max grades forms.
* quiz: Undo some custom styles on review options
These checkboxes were laid out in a fake grid with no responsiveness
that conflicts with the bootstrap form-inline templates. Reset the
custom style to bootstrap default.
* quiz: Fix unit tests for boost changes
* qtype_ddwtos: Accurate positioning of drop targets
* questions: Make the review page responsive
* question: bootstrap 4 compatibility
.alert in bs4 contains no colours by default, you need to mix it with
one of the context classes to get some change in colours, borders etc.
The sequence of questions that made up a quiz used to be stored as a
comma-separated list in quiz.questions. Now the same information is
stored in the rows in the quiz_slots table. This is not just 'better' in
a database design sense, but it allows for the future changes we will
need as we enhance the quiz in the MDL-40987 epic.
Having changed the database structure, all the rest of the code needs to
be changed to account for it, and that is done here.
Note that there are not many unit tests for the changed bit. That is
because as part of MDL-40987 we will be changing the code further, and
we will add unit tests then.
* FEATURE_USES_QUESTION_BANK is now a module_supports flag which declares
that an activity uses the question engine.
* question_module_uses_questions can be used to determine if a module
uses the question bank.