Moodle Plugins directory: Old quiz and question attempts deletion | Moodle.org
Old quiz and question attempts deletion
Installation
Copy the deleteoldquizattempts folder into your Moodle /local directory and visit your Admin Notification page to complete the installation.
Usage
Navigate to plugin settings and specify maximum lifetime of quiz attempts. Older attempts will be automatically deleted with scheduler task.
You can also specify to delete unused hidden questions. Hidden questions are questions, that were logically deleted, but were not deleted physically, because they were referenced in some quiz attempts. After quiz attempts deletion, such questions are probably no longer required.
You can also delete quiz attempts and unused hidden questions with command line job.
Deleting quiz attempts with CLI
Dispay help.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --help
Delete attempts that are older than 90 days and shows progress.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --days=90 --verbose
Delete attempts that are created before specified timestamp.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --timestamp=1514764800 --timelimit=300
Delete attempts that are created before 2018-01-01 00:00:00 (UTC).
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --date="2018-01-01 00:00:00"
Delete attempts for specified quiz (check id in *_quiz table).
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --days=90 --quizid=99
Delete attempts for all quizzes in specified course.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_attempts.php --days=90 --courseid=99
Deleting unused hidden questions with CLI
Dispay help.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_unused_questions.php --help
Delete unused hidden questions.
sudo -u www-data /usr/bin/php local/deleteoldquizattempts/cli/delete_unused_questions.php --timelimit=300 --verbose
Thanks!!
I am using the following code but it doesn't seem to work:
/usr/bin/php /home/xxxx/mysite.com/moodle/local/deleteoldquizattempts/cli/delete_attempts.php --days=10 --quizid=26
However I receive this mail from cron, what can be the error?
X-Powered-By: PHP/7.4.14
Content-type: text/html; charset=UTF-8
Delete old quiz and question attempts
Options:
--days= Delete attempts that are older than specified number of days
--timestamp= Delete attempts that are created before specified UTC timestamp
--date= Delete attempts that are created before specified date.
Use "YYYY-MM-DD HH:MM:SS" format in UTC
--courseid= Delete only attempts for quizzes in course with specified id.
--quizid= Delete only attempts for quiz with specified id.
--timelimit= Stop execution after specified number of seconds
-v, --verbose Show progress
-h, --help Print out this help
Only one of --days, --timestamp and --date options should be specified.
Examples:
php local/deleteoldquizattempts/cli/delete_attempts.php --days=90 --verbose
php local/deleteoldquizattempts/cli/delete_attempts.php --timestamp=1514764800 --timelimit=300
php local/deleteoldquizattempts/cli/delete_attempts.php --date="2018-01-01 00:00:00"
first, run from command line to be sure everything works
/usr/bin/php /home/xxxx/mysite.com/moodle/local/deleteoldquizattempts/cli/delete_attempts.php --days=10 --quizid=26 --verbose
check that you specified right quizeid by visiting mysite.com/moodle/mod/quiz/view.php?q=26 - quizid is not the same as coursemodule id. Sometimes it's better to look into DB id mdl_quiz table.
Check your cron syntax, maybe some misprint, command must be the same, that you test in command line. Maybe your cron requires some escaping of params
When oll is ok, you can add " >/dev/null" to the end of the command to supress output and mails from cron.
I have tried different configurations: the courseid, quizid option, different types of quizzes and courses ... and none of them work
I can't use the cPanel terminal because my hosting does not give that option.
Do you think this plugin can work for this 2.5+ version?
Just a question: is there an way to configure a shorter period than a month? (For example, automatic deletion every 15 days?). Sorry, I'm not an IT expert, I hope it is easy to configure.
Thanks again
Daniel
The (15 / 7 / 3 days) options are simply great. Thanks for your great work, Vadim.