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
This solution shows the message "Recently added question!" and the question text for each question that has been added since the reviewed attempt.
The advantage with the chosen solution is that it will work fine for the (soon to come) "Each attempt builds on the last" quiz option.
As I don't have the karma needed for updating in lang/en/, the message does not yet look quite as I described it above.
For numerical there was also a need to allow typical shortanswer responses whenever there could be answers like n/a, inf, -inf, nan etc.
Further more about numerical, there can be more than one answer alternative defined (just like for shortanswer). This is not supported by numerical.html but everywhere else. MULTIANSWER included, it is up to any taker to update numerical.html. This is more than likely to lead to overlappings between numerical ranges if more than one is defined. Think of the case where the highest grade answer ranges between 0 and 2 and the half grade answer ranges between 2 and 4. How should we grade 2? We should pick the highest grade!
Modified methods are quiz_get_answers and quiz_grade_attempt_results.
For quiz_grade_attempt_results, the switch statement has been separated out into method quiz_grade_attempt_question_result.
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).
text and/or an image, without requiring an answer. Can be used
to provide text for a following group of questions, or to insert
a joke in the quiz etc ...
This code is based on code sent in by Ursula Raab. Thanks!
See: http://moodle.org/mod/forum/discuss.php?d=508
still producing too much data and overflowing PHP memory on busier
sites (eg moodle.org).
Now, there are more database queries, which is unfortunate, but the
data is much more specific, and no sorting needs to be done, so
this is a performance boost.
I don't know how these will cancel out ... my guess is that very
small sites may be very slightly slower on the course page, but
that large sites will be much faster.
Let's see.
Moved COURSE_TEACHER_COLOR out to style sheets where it belongs (.teacheronly)
Added some efficiency when printing recent activity
- don't print more than one weeks worth of updates
- don't keep re-parsing logs once they've been used
same order. Note that shuffled ANSWERS may still appear reshuffled.
When viewing reports, all shuffling is switched off so that quizzes
always appear in the default order (for easier comparison).
Also a few tweaks, robustness etc
When you add a random question to a quiz, then a question
is chosen randomly from the same category.
Questions are not repeated in a particular quiz attempt.
This still needs more testing, but it's looking OK so far.
created. Works OK after limited testing.
I've also renamed some strings to do with "Random Match", so that this
question type is now called "Random Short-Answer Match".
Later there will be a new 'Random Match' which randomly selects one of the
existing "Match" questions.
... this grade is used as the default grade when adding questions
to a quiz.
At the moment it's just so that some imported questions can have
different defaults, but a field should be added to all question
editing pages.
of questions. These use 2 or more short answer questions at
random to construct a questions where you have to match
answers to questions. Only lightly tested so far.
Quiz questions can now be edited with Richtext editor.
Sundry little fixes along the way.