mirror of
https://github.com/moodle/moodle.git
synced 2025-03-19 23:20:09 +01:00
Previously, quiz statistics processing happened on a scheduled task. This task looked for all quizzes with completed attempts, then determined if those quizzes had a statistics calculation that's newer than the most recent attempt, then ran the statistics calculation if needed. It was hard coded to stop processing after 1 hour. The queries involved in determining which quizzes needed processing weren't terribly efficient, and combined with the 1 hour limit this made the statistics unusable on large sites, where they are the most useful. This converts the scheduled task to an ad-hoc task, and uses an event observer for mod_quiz\event\attempt_submitted to queue a task when it is needed. This removes the need for a query to work out what needs processing, and allows the task processing to be scaled up as needed.
ACTIVITY MODULES ---------------- These are main modules in Moodle, allowing various activities. Each of these modules contains a number of expected components: mod_form.php: a form to setup/update a module instance version.php: defines some meta-info and provides upgrading code pix/icon.gif: a 16x16 icon for the module db/install.xml: an SQL dump of all the required db tables and data index.php: a page to list all instances in a course view.php: a page to view a particular instance lib.php: any/all functions defined by the module should be in here. constants should be defined using MODULENAME_xxxxxx functions should be defined using modulename_xxxxxx There are a number of standard functions: modulename_add_instance() modulename_update_instance() modulename_delete_instance() modulename_user_complete() modulename_user_outline() modulename_cron() modulename_print_recent_activity() If you are a developer and interested in developing new Modules see: Moodle Documentation: http://moodle.org/doc Moodle Community: http://moodle.org/community