The sections are created on the edit quiz page, and then appear in the
navigation panel when the quiz is being attempted to help students find
their way around.
The 'Shuffle questions' setting has been moved from being per-quiz
to being a per-section.
This commit is actually the joint work of Mahmoud Kassaei and Tim Hunt
from The Open University. We could only use one persons name for the
commit and this time Mahmoud gets the credit/blame.
While doing this code clean-up, I noticed that the question bank pop-up was
only showing the question name, whereas it should have been showing the
question name and the start of the question text, so I fixed that.
This commit is actually the joint work of Mahmoud Kassaei, Colin
Chambers and Tim Hunt from The Open University. We could only use one
persons name for the commit, and this time Colin gets the credit/blame.
The goal of this work was to increase usability, and also clean up
the page enough that it will be possible to add new features in future.
Display of mod/quiz/edit.php is now entirely generated by
mod_quiz\output\edit_renderer. This uses a helper class
mod_quiz\structure to provide details of the structure of the quiz, and
mod_quiz\repaginate to alter that structure. (Acutally, there are still
some modification methods on mod_quiz\structure. Expect that to be
cleaned up in future.)
The new code uses much more ajax, and there are new scripts
mod/quiz/edit_rest.php and mod/quiz/repaginate.php to handle this.
(Again, don't be surprised if those two scripts get merged in future.)
Also questionbank.ajax.php (which may, in future, be made more generic,
and moved into the core question bank code.)
Most of the new JavaScript code has intentionally copied the way things
are done when editing activities on the course page.
As a result of this, mod/quiz/editlib.php is now much shorter than it
was. (In future, expect the remaining code in here to move into
mod/quiz/classes.)
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.
It is only necessary when there are (non-preview) attempts. However,
after making this change we have to ensure users cannot start attempts
when ->grade > 0 and ->sumgrades = 0.
Display ->grade on the order and paging tab of edit.php, so it is clear
what is going on when you are using that tab.
Finally, improve the error message a student gets if they try to start a
quiz with no questions.
Some help icons dropped without replacement as suggested by Helen, the
Help Writer. Some strings moved to core_question.
AMOS BEGIN
HLP quiz/timelimit.html,[timelimit_help,mod_quiz]
HLP quiz/grademethod.html,[grademethod_help,mod_quiz]
HLP quiz/questionsperpage.html,[newpage_help,mod_quiz]
HLP quiz/shufflewithin.html,[shufflewithin_help,mod_quiz]
HLP quiz/penaltyscheme.html,[penaltyscheme_help,mod_quiz]
HLP quiz/repeatattempts.html,[eachattemptbuildsonthelast_help,mod_quiz]
HLP quiz/reviewoptions.html,[reviewoptionsheading_help,mod_quiz]
HLP quiz/showuserpicture.html,[showuserpicture_help,mod_quiz]
HLP quiz/decimalpoints.html,[decimalplaces_help,mod_quiz]
HLP quiz/decimalplacesquestion.html,[decimalplacesquestion_help,mod_quiz]
HLP quiz/requirepassword.html,[requirepassword_help,mod_quiz]
HLP quiz/requiresubnet.html,[requiresubnet_help,mod_quiz]
HLP quiz/timedelay1.html,[delay1st2nd_help,mod_quiz]
HLP quiz/timedelay2.html,[delaylater_help,mod_quiz]
HLP quiz/overallfeedback.html,[overallfeedback_help,mod_quiz]
HLP quiz_statistics/negcovar.html,[negcovar_help,quiz_statistics]
MOV [penaltyfactor,mod_quiz],[penaltyfactor,core_question]
MOV [penaltyfactor_help,mod_quiz],[penaltyfactor_help,core_question]
HLP quiz/penalty.html,[penaltyfactor_help,core_question]
AMOS END
* Routine navigation through the quiz and question modules
* Fixed navbar through quiz and questions
* Pages headers added throughout
* Added method to turn a navigation node into a tabs array suitable for use with print tabs