1) in all module-indpendent code the variable $quiz has been renamed to $cmoptions (it holds the options set by the course module which does not necessarily have to be a quiz, it could be a lesson for example).
2) quiz_restore_question_sessions() has the simpler name quiz_get_states
Also got rid of the quizfile.php in favour of file.php
(While I was at it I also turned the autologinguests off for most module pages, except on the index.php pages and the view.php pages for those modules that allow guests)
options or not. This is handled as in the resource module. The
"Show advanced options" button is only shown if the admin has
chosen to declare some of the options as advanced.
There are now 4 review options as suggested by Martin in
http://moodle.org/mod/forum/discuss.php?d=16709
Provides separate buttons "Update this quiz" and "Edit questions",
see http://moodle.org/mod/forum/discuss.php?d=16708. To make this
possible edit.php can now be called with a quiz id and it saves
its data itself rather than relying on mod.php.
mod.html now has a "Save changes" and a "Save changes and edit questions" button.
"Attempt quiz now" button gets a different language string for
re-attempts. This is currently set to "Re-attempt quiz".
After viewing the feedback for an attempt the "Continue" button
leads back to the course homepage, as requested in bugs 1224 and
1976. If there is no feedback the user is brought straight to quiz/view.php.
I've done some basic testing using existing quizzes trying as
much as I could think of, and it all worked well!
Well done, Henrik! Great job!
Still, this should be regarded as unstable at least until more
people have had a try. Please test this thing solidly on new
and old quizzes.
This makes it possible for students to take a tedious quiz, save it half-way and have it graded. The student can then, at a later point, get back to the quiz and have the previous answers already filled in and graded. The student can then continue with the remaining questions as well as redo all the answers that got wrong at the previous attempt.
It seems to work fine with one little twisted exception:
Say that the student attempts the quiz first and that the teacher thereafter edits the quiz and removes or adds a few questions. This will work out fine for as long as the teacher do not get the idea of adding a question with question type RANDOM. The quiz will be fully functional again after removing that RANDOM question or resetting the option 'Each attempt builds on the last" to NO.
Not a very serious problem but it takes someone with greater insight in question type RANDOM to resolve it.
As always, I can not commit lang/en/quiz.php.
---
As I was using the function quiz_get_attempt_responses I had it refactored removing the obsolete argument $quiz. I also changed the call from review.php
The code for reviewing an existing attempt is now separate
in review.php and now has a log entry of it's own.
The overview and regrade reports are now in separate subdirectories
under the "report" directory. Each has a primary "report.php" file
which implements the report as a class.
These existing reports are very simple, but now more complex ones
can easily be written. (I am about to do one).