Moodle Plugins directory: Quiz fault-tolerant mode | Moodle.org
Quiz fault-tolerant mode
Quiz access rules ::: quizaccess_offlinemode
Maintained by
Tim Hunt
This plugin is designed to allow, as far as possible, a student to continue working
on a deferred-feedback quiz attempt even if the network connection goes down.
Latest release:
122 sites
10 downloads
32 fans
Current versions available: 5
This plugin can be turned on for particular quizzes in your Moodle site, providing they user How questions behave: Deferred feedback. The goal is to make sure that students never lose any work, even if the network or Moodle server is a bit dodgy.
With this plugin enabled, when the quiz is attempted:
- All the questions are downloaded at the start, so that you can instantly switch between pages of the attempt with no further contact to the server.
- When the response to a question is changed, it is saved behind the scenes (like standard quiz auto-save).
- The the session gets lost, a pop-up appears where you can log in again, then you can continue with the attempt without reloading and losing your unsaved work.
- At the end, when you submit, the submission is processed asynchronously, so that if an error occurs you can try again, or continue your attempt.
- If auto-saving fails, then the warning shown is much less dire, since it does not matter so much.
- Whenever there is unsaved data, you get a warning if you try to leave the quiz page, so you don't accidentally lose data.
- In case you never re-connect to Moodle, then a download link is provided, so you can save your responses to a file.
- There is then a screen where Editing teachers or Managers can upload those locally saved responses to be processed.
- The downloaded responses can be encrypted, if required.
This plugins was created by the Open University, for use in exams. We hope you find it useful.
[WARNING: if you are using a Moodle version older than 2.7.5 or 2.8.3 - not recommended - you will need to apply some patches.]
Contributors
Tim Hunt (Lead maintainer)
Anupama Sarjoshi: Tester & Developer
Please login to view contributors details and/or to contact them
I'm also interested in using that plugin but we are using Moodle 3.2 + 3.3 and even 3.4.
We are using the default theme (design) of Moodle, and didn't change anything visually.
But as Kevin Bleier said, in Moodle 3.3 or 3.4, when module is activated, all the questions show on the same page.
It also makes the quiz impossible to use (offline it doesn't save anything, and online you can't also save replies).
It seems the plugin is incompatible with Moodle 3.1+. Tim, are you thinking updating the plugin to these versions ? Could I help you ?
Or are you thinking not maintaining the plugin anymore.
Thanks
From the description, it may be as simple as some CSS that needs to be chagned to work with newer Moodle Themes, and this plugin does have pretty thorough automated test coverage, which helps with maintenance.
If anyone else is able to work on fixing this, then that would be great. We could either transfer maintainer-ship of this plugin, or I could merge a pull request into my repo. Thanks.
If you want any more testing than that, you will need to set up a Moodle 3.5 site for yourself and do some extra testing. If you do that, please report back here so others can benefit from your results.
I installed the fQuiz fault-tolerant mode and set up a Quiz to use this mode. All questions are single choice MCQs.
A student had a connection problem and was able to recover a file called 2020-i118245-a28161-d202006161305.attemptdata
I wanted to upload this file to retrieve the student's responses, but I receive this following error message. Could you help me understand why the import didn't work. Do you know how to fix this problem? I have Moodle 3.6.10
Best regards,
Uploading responses for Examen QCM UE Ecosystèmes 2020
Processing file Examen QCM UE Ecosystèmes 2020-i118245-a28161-d202006161305.attemptdata
Array
(
[q48928:1_:flagged] => 0
[q48928:1_:sequencecheck] => 1
[q48928:1_answer] => 3
[q48928:2_:flagged] => 0
[q48928:2_:sequencecheck] => 1
[q48928:3_:flagged] => 0
[q48928:3_:sequencecheck] => 1
[q48928:3_answer] => 0
[q48928:4_:flagged] => 0
[q48928:4_:sequencecheck] => 1
[q48928:4_answer] => 3
[q48928:5_:flagged] => 0
[q48928:5_:sequencecheck] => 1
[q48928:5_answer] => 0
[q48928:6_:flagged] => 0
[q48928:6_:sequencecheck] => 1
[q48928:6_answer] => 0
[q48928:7_:flagged] => 0
[q48928:7_:sequencecheck] => 1
[q48928:7_answer] => 2
[q48928:8_:flagged] => 0
[q48928:8_:sequencecheck] => 1
[q48928:8_answer] => 3
[q48928:9_:flagged] => 0
[q48928:9_:sequencecheck] => 1
[q48928:9_answer] => 3
[q48928:10_:flagged] => 0
[q48928:10_:sequencecheck] => 1
[q48928:10_answer] => 0
[q48928:11_:flagged] => 0
[q48928:11_:sequencecheck] => 1
[q48928:11_answer] => 2
[q48928:12_:flagged] => 0
[q48928:12_:sequencecheck] => 1
[q48928:12_answer] => 1
[q48928:13_:flagged] => 0
[q48928:13_:sequencecheck] => 1
[q48928:13_answer] => 0
[q48928:14_:flagged] => 0
[q48928:14_:sequencecheck] => 1
[q48928:14_answer] => 2
[q48928:15_:flagged] => 0
[q48928:15_:sequencecheck] => 1
[q48928:15_answer] => 0
[q48928:16_:flagged] => 0
[q48928:16_:sequencecheck] => 1
[q48928:16_answer] => 2
[q48928:17_:flagged] => 0
[q48928:17_:sequencecheck] => 1
[q48928:17_answer] => 0
[q48928:18_:flagged] => 0
[q48928:18_:sequencecheck] => 1
[q48928:19_:flagged] => 0
[q48928:19_:sequencecheck] => 1
[q48928:19_answer] => 0
[q48928:20_:flagged] => 0
[q48928:20_:sequencecheck] => 1
[q48928:21_:flagged] => 0
[q48928:21_:sequencecheck] => 1
[q48928:21_answer] => 2
[q48928:22_:flagged] => 0
[q48928:22_:sequencecheck] => 1
[q48928:22_answer] => 0
[q48928:23_:flagged] => 0
[q48928:23_:sequencecheck] => 1
[q48928:23_answer] => 1
[q48928:24_:flagged] => 0
[q48928:24_:sequencecheck] => 1
[q48928:24_answer] => 2
[q48928:25_:flagged] => 0
[q48928:25_:sequencecheck] => 1
[q48928:25_answer] => 1
[q48928:26_:flagged] => 0
[q48928:26_:sequencecheck] => 1
[q48928:27_:flagged] => 0
[q48928:27_:sequencecheck] => 1
[q48928:27_answer] => 1
[q48928:28_:flagged] => 0
[q48928:28_:sequencecheck] => 1
[q48928:28_answer] => 1
[q48928:29_:flagged] => 0
[q48928:29_:sequencecheck] => 1
[q48928:29_answer] => 3
[q48928:30_:flagged] => 0
[q48928:30_:sequencecheck] => 1
[q48928:30_answer] => 0
[q48928:31_:flagged] => 0
[q48928:31_:sequencecheck] => 1
[q48928:31_answer] => 1
[q48928:32_:flagged] => 0
[q48928:32_:sequencecheck] => 1
[q48928:32_answer] => 2
[q48928:33_:flagged] => 0
[q48928:33_:sequencecheck] => 1
[q48928:33_answer] => 3
[q48928:34_:flagged] => 0
[q48928:34_:sequencecheck] => 1
[q48928:34_answer] => 0
[q48928:35_:flagged] => 0
[q48928:35_:sequencecheck] => 1
[q48928:35_answer] => 0
[q48928:36_:flagged] => 0
[q48928:36_:sequencecheck] => 1
[q48928:36_answer] => 0
[q48928:37_:flagged] => 0
[q48928:37_:sequencecheck] => 1
[q48928:37_answer] => 1
[q48928:38_:flagged] => 0
[q48928:38_:sequencecheck] => 1
[q48928:38_answer] => 3
[q48928:39_:flagged] => 0
[q48928:39_:sequencecheck] => 1
[q48928:40_:flagged] => 0
[q48928:40_:sequencecheck] => 1
[q48928:41_:flagged] => 0
[q48928:41_:sequencecheck] => 1
[q48928:41_answer] => 3
[q48928:42_:flagged] => 0
[q48928:42_:sequencecheck] => 1
[q48928:42_answer] => 3
[q48928:43_:flagged] => 0
[q48928:43_:sequencecheck] => 1
[q48928:43_answer] => 1
[q48928:44_:flagged] => 0
[q48928:44_:sequencecheck] => 1
[q48928:44_answer] => 3
[q48928:45_:flagged] => 0
[q48928:45_:sequencecheck] => 1
[q48928:45_answer] => 2
[q48928:46_:flagged] => 0
[q48928:46_:sequencecheck] => 1
[q48928:47_:flagged] => 0
[q48928:47_:sequencecheck] => 1
[q48928:47_answer] => 2
[q48928:48_:flagged] => 0
[q48928:48_:sequencecheck] => 1
[q48928:48_answer] => 0
[q48928:49_:flagged] => 0
[q48928:49_:sequencecheck] => 1
[q48928:49_answer] => 3
[q48928:50_:flagged] => 0
[q48928:50_:sequencecheck] => 1
[q48928:50_answer] => 0
[q48928:51_:flagged] => 0
[q48928:51_:sequencecheck] => 1
[q48928:51_answer] => 3
[q48928:52_:flagged] => 0
[q48928:52_:sequencecheck] => 1
[q48928:52_answer] => 3
[q48928:53_:flagged] => 0
[q48928:53_:sequencecheck] => 1
[q48928:53_answer] => 0
[q48928:54_:flagged] => 0
[q48928:54_:sequencecheck] => 1
[q48928:54_answer] => 3
[q48928:55_:flagged] => 0
[q48928:55_:sequencecheck] => 1
[q48928:55_answer] => 0
[q48928:56_:flagged] => 0
[q48928:56_:sequencecheck] => 1
[q48928:56_answer] => 1
[q48928:57_:flagged] => 0
[q48928:57_:sequencecheck] => 1
[q48928:57_answer] => 0
[q48928:58_:flagged] => 0
[q48928:58_:sequencecheck] => 1
[q48928:58_answer] => 3
[q48928:59_:flagged] => 0
[q48928:59_:sequencecheck] => 1
[q48928:59_answer] => 1
[q48928:60_:flagged] => 0
[q48928:60_:sequencecheck] => 1
[q48928:60_answer] => 3
[q48928:61_:flagged] => 0
[q48928:61_:sequencecheck] => 1
[q48928:61_answer] => 1
[q48928:62_:flagged] => 0
[q48928:62_:sequencecheck] => 1
[q48928:62_answer] => 2
[q48928:63_:flagged] => 0
[q48928:63_:sequencecheck] => 1
[q48928:63_answer] => 3
[q48928:64_:flagged] => 0
[q48928:64_:sequencecheck] => 1
[q48928:64_answer] => 3
[q48928:65_:flagged] => 0
[q48928:65_:sequencecheck] => 1
[q48928:65_answer] => 0
[q48928:66_:flagged] => 0
[q48928:66_:sequencecheck] => 1
[q48928:67_:flagged] => 0
[q48928:67_:sequencecheck] => 1
[q48928:67_answer] => 0
[q48928:68_:flagged] => 0
[q48928:68_:sequencecheck] => 1
[q48928:68_answer] => 1
[q48928:69_:flagged] => 0
[q48928:69_:sequencecheck] => 1
[q48928:69_answer] => 0
[q48928:70_:flagged] => 0
[q48928:70_:sequencecheck] => 1
[q48928:70_answer] => 3
[q48928:71_:flagged] => 0
[q48928:71_:sequencecheck] => 1
[q48928:71_answer] => 0
[q48928:72_:flagged] => 0
[q48928:72_:sequencecheck] => 1
[q48928:72_answer] => 2
[q48928:73_:flagged] => 0
[q48928:73_:sequencecheck] => 1
[q48928:73_answer] => 1
[q48928:74_:flagged] => 0
[q48928:74_:sequencecheck] => 1
[q48928:74_choice0] => 0
[q48928:74_choice1] => 0
[q48928:74_choice2] => 0
[q48928:74_choice3] => 0
[q48928:75_:flagged] => 0
[q48928:75_:sequencecheck] => 1
[q48928:75_answer] => 2
[q48928:76_:flagged] => 0
[q48928:76_:sequencecheck] => 1
[q48928:76_answer] => 3
[q48928:77_:flagged] => 0
[q48928:77_:sequencecheck] => 1
[q48928:77_answer] => 1
[q48928:78_:flagged] => 0
[q48928:78_:sequencecheck] => 1
[q48928:78_answer] => 0
[q48928:79_:flagged] => 0
[q48928:79_:sequencecheck] => 1
[q48928:79_answer] => 1
[q48928:80_:flagged] => 0
[q48928:80_:sequencecheck] => 1
[q48928:80_answer] => 1
[q48928:81_:flagged] => 0
[q48928:81_:sequencecheck] => 1
[q48928:81_answer] => 1
[q48928:82_:flagged] => 0
[q48928:82_:sequencecheck] => 1
[q48928:82_answer] => 1
[q48928:83_:flagged] => 0
[q48928:83_:sequencecheck] => 1
[q48928:83_answer] => 2
[q48928:84_:flagged] => 0
[q48928:84_:sequencecheck] => 1
[q48928:84_answer] => 0
[q48928:85_:flagged] => 0
[q48928:85_:sequencecheck] => 1
[q48928:85_answer] => 2
[q48928:86_:flagged] => 0
[q48928:86_:sequencecheck] => 1
[q48928:86_answer] => 1
[q48928:87_:flagged] => 0
[q48928:87_:sequencecheck] => 1
[q48928:87_answer] => 0
[q48928:88_:flagged] => 0
[q48928:88_:sequencecheck] => 1
[q48928:88_answer] => 2
[q48928:89_:flagged] => 0
[q48928:89_:sequencecheck] => 1
[q48928:89_answer] => 0
[q48928:90_:flagged] => 0
[q48928:90_:sequencecheck] => 1
[q48928:90_answer] => 0
[next] => Suivant
[attempt] => 28161
[thispage] => 89
[nextpage] => -1
[timeup] => 1
[sesskey] => CdRlFReIw4
[scrollpos] =>
[slots] => 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90
)
The upload failed
Access out of sequence. Please do not click the back button when working on quiz questions.
line 606 of /question/engine/questionusage.php: call to question_usage_by_activity->validate_sequence_number()
line 1907 of /mod/quiz/attemptlib.php: call to question_usage_by_activity->process_all_actions()
line 165 of /mod/quiz/accessrule/offlinemode/upload.php: call to quiz_attempt->process_submitted_actions()
1) When time expired, Moodle automatically closed the quiz attempt, and so it is no longer possible to add the responese.
2) The student's internet connection came back, and they were able to submit the responses themself, so they are already processed.
If 1) then it many be possible to undo the effect of the quiz being submitted by editing in the database, but it is not easy. That would require something like MDL-35745.
I am in case number 1 because the quiz is configured for an automatic sending and certain answers (for questions from 1 to 8) are already recorded for this student.
I can modify the table "mdl_quiz_attempts" and go to the student's attempt. Do I need to change the status from finished to inprogress or other status ?
Indeed, I see that it is not as simple as I imagined.
If I have to manually modify the states of questions 1 to 9 of this attempt, should I make them in which table? Here are the tables that I have identified:
mdl_quiz_attempts
mdl_question_usages
mdl_question_attempts
mdl_question_attempt_steps
mdl_question_attempt_step_data
I just sent you a private message with a link to the student's file
Thanks for your help
Whenever we are attempting to filter our formula using mathjax filter, it failed.
maybe because the plugin meant to be used on non filtered question.