Commit Graph

46 Commits

Author SHA1 Message Date
Tim Hunt 9ee42d0a34 MDL-79780 quiz_statistics: take advantage of get_fieldset method
This updates the MDL-79639 code.
2023-12-22 12:09:42 +00:00
Mark Johnson 58c0f91375 MDL-79639 quiz_statistics: Prevent database deadlocks
This changes the cache purge code to select IDs for deletion
first, rather than using a subquery in a DELETE, since this
risks causing a deadlock in MySQL.
2023-10-19 08:59:07 +01:00
Andrew Nicols be8093e2c7 Merge branch 'MDL-78580_master' of https://github.com/marxjohnson/moodle 2023-10-03 11:05:42 +08:00
Mark Johnson a92e5c5770 MDL-78580 report_statistics: Prevent database deadlocks when viewing
If a quiz had a long job to calculate statstics running, this would
cause pages that may also attempt a recalculation (the statistics report
page or question bank) to load very slowly, and possibly result in a
database deadlock.

This change will firstly prevent the question bank page performing
analysis calculations at all, since these are not required for this
page, which will speed up loading and prevent deadlocks on this page.

Secondly, this adds a lock to the recalcuation process so that it cannot
run twice concurrently. This will present the user with a message to
indicate that it is waiting for a running calculation until it is
complete, and eventually it will timeout with a message and debugging.
2023-09-15 15:16:52 +01:00
Tim Hunt a047d2f8b4 MDL-79332 Question stats: make loading robust to bad data
We were experiencing problems caused by old stats analysis in our
database, computed when there was a bug, causing fatal errors
when they were displayed. Therefore, this code needs to be robust to that.
2023-09-12 16:58:25 +01:00
Tim Hunt ddd1ce66fd MDL-78327 question stats: store same timestamp for all question stats 2023-05-31 10:41:34 +01:00
Tim Hunt 60dbaa0065 MDL-75576 quiz/question statistics: don't expire by time
Previously, a set of calculated quiz statistics would only 'last' for
15 minutes. Then they would be considered invalid and not used.

Now, computed statistics are kept indefinitely. Instead, when a new
batch of values are computed for a particular set of settings, older numbers
for the same settings are deleted first. Therefore,
question_stats_cleanup_task is no more.
2023-05-15 10:01:27 +01:00
Tim Hunt d5086a0938 MDL-77626 quiz statistics: Divide by zero if a random Q has max mark 0 2023-03-14 16:29:12 +00:00
Tim Hunt 4484757021 MDL-76843 quiz: fix statistics questions for missing questions 2023-02-22 14:30:23 +00:00
Marina Glancy b1c97381b4 MDL-76356 various: avoid implicit conversion to int
PHP before version 8.1 automatically converted to int if the function
parameter (or array key) is expected to be int. PHP 8.1 shows notice in
this case
2023-01-10 15:27:11 +01:00
Safat Shahin 111951d861 MDL-71696 mod_quiz: quiz updates and behat coverage
The versioning changes will require some major changes
in the backup and restore of question bank and its
elements. This change introduces those changes to make
it compatible with the new world of versioning in question
bank. This commit also removes quiz_slots fields and
quiz_slot_tags table.
This commit will also introduce the versioning db
structure and some major changes to the quiz
and quiz attempts for the question, random
question and the view.
This commit implements the behat changes for versioning
in core question and associated locations.
2022-02-03 22:22:44 +11:00
Shamim Rezaie 0ce3fef70a MDL-63390 quiz_statistics: Remove Min/Median/Maximum rows
Part of MDL-62610
2018-10-01 07:53:10 +08:00
Shamim Rezaie 84140b9137 MDL-63390 quiz_statistics, question: Handling variants as well
Variants should also be treated like random questions in the sense that
a summary row
should be displayed for them as well.
This commit deals with handling variants.
Also the name of the calculated_random_question_summary class has
changed to
calculated_question_summary to be more generic as the summary row is not
specific to random questions only.
Also removed the protected function too_many_subq_and_or_variant_rows
and the const SUBQ_AND_VARIANT_ROW_LIMIT as they were not being used
anymore.

Part of MDL-62610
2018-10-01 07:52:31 +08:00
Shamim Rezaie f4bc55871c MDL_63390 question: Fixed get_min_max_of and get_min_max_of_sd
Fixed calculated_random_question_summary:get_min_max_of and calculated_random_question_summary:get_min_max_of_sd
functions and added unit tests

Part of MDL-62610
2018-10-01 07:52:18 +08:00
Shamim Rezaie d79fef2ab5 MDL-63186 question: Calculate extremums of summarised questions
Modified calculated_random_question_summary class so that it can return minimum and maximum
of each attribute of the sub questions it is summarising.

Part of MDL-62610
2018-09-28 11:07:21 +08:00
Shamim Rezaie 6ee2b972c9 MDL-63186 quiz_statistics: Remove q number from the summary row
Part of MDL-62610
2018-09-28 11:07:21 +08:00
Ryan Wyllie 29cc55079a MDL-63186 question: include random questions in statistics calculator
Part of MDL-62610
2018-09-28 11:07:21 +08:00
Ryan Wyllie 40633c6310 MDL-61950 question: include random questions in statistics calculator 2018-04-12 13:36:41 +08:00
Tim Hunt bccad386b0 MDL-61077 question stats: make calculations more robust 2018-01-15 16:07:57 +00:00
Marina Glancy 33683bc80c MDL-60281 general: function each() is deprecated in PHP7.2 2017-10-16 09:37:20 +08:00
Tony Levi 303936aa57 MDL-50453 core: Replace reserved word usage in progress\null (PHP7) 2015-06-15 12:21:27 +09:30
Marina Glancy 5a0221f7c0 MDL-45336 question: moved used string from quiz plugin
AMOS BEGIN
 MOV [erroritemappearsmorethanoncewithdifferentweight,quiz_statistics],[erroritemappearsmorethanoncewithdifferentweight,question]
AMOS END
2014-09-24 01:22:58 +02:00
Tim Hunt 8b431dca97 MDL-45660 question statistics: make comparison more robust. 2014-05-22 17:30:34 +01:00
James Pratt 1d75d9fe70 MDL-44981 quiz statistics report : Differentiating '0' and no response
in numeric questions.
2014-04-07 19:13:04 +07:00
James Pratt bec7719c3b MDL-44980 quiz statistics report : break down by variants failing
when there has only been one variant seen.
2014-04-07 18:44:48 +07:00
James Pratt fcdd04db0a MDL-44075 quiz_statistics : Various coding style / phpdocs fixes 2014-03-18 19:09:39 +07:00
James Pratt ebb8de5d37 MDL-44535 quiz_statistics : response analysis - limit tries counted 2014-03-18 18:54:07 +07:00
James Pratt 038014c415 MDL-41760 quiz_statistics : response analysis for first/last/all tries 2014-03-18 18:47:19 +07:00
James Pratt 3d6f2466d9 MDL-43479 quiz response analysis : suppress break down by variants
where there are very many variants
2014-02-14 15:40:52 +07:00
James Pratt 4922e79f3e MDL-41759 quiz statistics : break down responses for each variant 2014-02-14 15:23:04 +07:00
James Pratt 51e3ded838 MDL-41758 quiz statistics : link to full break down of stats for slots
where a question in a slot has subquestions and/or variants.
2014-02-14 15:16:07 +07:00
James Pratt c3e2e754dd MDL-43338 quiz statistics : refactoring question statistics code
to improve readability and maintainability.
2014-02-07 13:35:20 +07:00
James Pratt df9ddae686 MDL-41757 quiz statistics : limit subq and variant stat rows
and print min, median and max.
2014-01-27 18:04:08 +07:00
James Pratt 1239d28776 MDL-41756 (2) quiz statistics : break down question stats by variant 2014-01-27 18:00:04 +07:00
James Pratt aa05ae5da3 MDL-41756 (1) quiz statistics : use new method increment_progress
to cut down on clutter before adding new break down by variant stuff
2014-01-27 17:56:16 +07:00
James Pratt 8da6fc9d57 MDL-41754 (2) quiz statistics : using Sam's new progress classes 2014-01-27 17:45:50 +07:00
James Pratt 8e32861786 MDL-43369 : quiz statistics - average across attempts where item seen
and not across all attempts for subqs.
2014-01-27 17:30:56 +07:00
Sam Hemelryk a59a423926 Merge branch 'MDL-42084-master' of git://github.com/sammarshallou/moodle 2013-12-03 11:12:34 +13:00
James Pratt 487e7e6602 MDL-42957 (2) quiz statistics : Hardcoded sql LIMIT clause
Fixing some typos and adding some tests.
2013-11-28 17:13:26 +07:00
James Pratt e4b17111a4 MDL-42957 quiz statistics : Hardcoded sql LIMIT clause 2013-11-20 11:32:27 +07:00
sam marshall 3ef7279f26 MDL-42084 Core: Change set_time_limit to core_php_time_limit::raise everywhere
Exceptions (places where set_time_limit is still left) are:

Third-party libraries:
  ADODB
  PHPMailer

Moodle core:
  PHPUnit - not relevant (CLI mode)
2013-11-06 16:40:01 +00:00
Dan Poltawski 472c06f816 MDL-42546 question: fix some bad phpdocs 2013-11-01 12:06:43 +08:00
Tim Hunt 562684e3a0 MDL-42309 typo: fix reponse -> response throughout Moodle. 2013-10-15 13:47:27 +11:00
Jamie Pratt d50b05e696 MDL-41751 changes to api of question_response_analyser
and code refactoring and clean up.
2013-09-27 17:38:13 +07:00
Jamie Pratt 59abb70716 MDL-41752 question statistics class moved and improved
quiz_question_statistics_stats renamed to question_statistics_calculator
separate class question_statistics used to store calculated stats
and api changed, also code generally cleaned up.
2013-09-27 16:24:18 +07:00
Jamie Pratt 515b3ae6a7 MDL-41752 question statistics class moved and improved
quiz_question_statistics_stats renamed to question_statistics_calculator
separate class question_statistics used to store calculated stats
and api changed, also code generally cleaned up.
2013-09-27 14:10:53 +07:00