Commit Graph

600 Commits

Author SHA1 Message Date
Nathan Nguyen 92f979948f MDL-74762 qbank_statistics: improve performance loading the data
This issue greatly improves the performance of displaying statistics in
the question bank.

1. The required quiz statistics are now pre-computed by a scheduled task.

2. Cached statistics in the database are now never cleaned up, so the
   pre-computed stats are always available.

3. The way the cached statistics are loaded for each question
   that is being displayed is now a bit more efficient.

4. Related to that, there is a new callback which activities can implement,
   if they want their question statistics to be included in the ones shown
   in the question bank.

Note, there is still further improvement possible to load the statistics
for all questions being displayed in bulk. However, that must wait for a
future issue, MDL-75576. The other improvements in this issue are
significant and we did not want to delay releasing them.

Co-authored-by: Jonathan Champ <jrchamp@ncsu.edu>
Co-authored-by: Tim Hunt <t.j.hunt@open.ac.uk>
2022-09-16 21:15:27 +10:00
Andrew Nicols 4b388fc239 MDL-74235 core: Update core uses of activity icons to monologo 2022-04-07 12:56:14 +08:00
Ilya Tregubov 7bedf54f5b Merge branch 'master_MDL-73763_index-fix' of https://github.com/catalyst/moodle-MDL-70329 2022-03-24 13:14:03 +06:00
Marc-Alexandre Ghaly c3ac868bf7 MDL-73763 core : Index fixes for reference tables
This commit will add the index for the question_reference
and the question_set_reference table if its not already
added. This commit will also implement the logic of adding
the question area and component in the joins of the question
reference table in order to make sure any other plugin using
the qbank api does not conflict with each other.
2022-03-24 18:04:47 +11:00
Tim Hunt 439ecc57fd MDL-74184 quiz: prevent repagination of quizzes with attepts
There was a loophole to this rule on the settings form, which is now fixed.
2022-03-22 10:32:24 +00:00
Ilya Tregubov be7a576994 Merge branch 'MDL-73335-tim' of https://github.com/ilyatregubov/moodle 2022-02-24 09:43:59 +02:00
Sujith Haridasan 3458d159e1 MDL-73335 mod_quiz: Add tertiary nav for the quiz module
The tertiary navigation added for quiz module.

- Added tertiary nav buttons for the edit, attempt and view page
- urlselector is added to the overrides page to access user/groups
- The secondary tabs are highlighted when user navigates to
  each page in quiz.
- Updated the behat tests for the changes made.

This commit is mostly Sujith's work, with further changes by
Tim Hunt <T.J.Hunt@open.ac.uk> so we share the blame/credit.
2022-02-24 09:26:00 +02:00
Sujith Haridasan 24950e283c Revert "MDL-71915 mod_quiz: Update the tertiary nav"
This reverts commit 6ba821dc01.
2022-02-15 15:58:35 +00:00
Mihail Geshoski 4a9c83ac9e MDL-73532 navigation: Modify methods that extend the setting nav
Introduces some changes to the exising _extend_settings_navigation()
methods that utilize the global $PAGE object. In order to accomodate
the changes done for the secondary navigation for single activity
courses, the methods that extend the settings navigation can no longer
rely on the $PAGE object, instead the more reliabe way to obtain this
infomation is through the get_page() method from settings_navigation
class.
2022-02-14 09:40:27 +08:00
Jun Pataleta 7d743b255d Merge branch 'MDL-73633-master' of git://github.com/mihailges/moodle 2022-02-09 17:45:54 +08:00
Safat Shahin bf55e5a481 MDL-71696 core_question: class autoload changes
This commit implements some class autoloading
fixes to align with core question structure.
2022-02-03 22:22:50 +11: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
Guillermo Gomez c6cfca2a08 MDL-71696 core_question: Changes for versioning
This commit adds the changes in questiontype base
to work with new question tables and the new structure in the
databse. Also needed for versioning.
This implementation will also introduct the question status
which allows a question to be in draft and ready status.
I also introduces changes to the base view where it shows
the latest version of the questions. The view of versions
for a question is not implemented in this commit.
This implementation will also introduce changes in the core
qtype plugins to support versioning and the changed
db schema.
2022-02-03 22:22:44 +11:00
Mihail Geshoski f8cc5c8f8e MDL-73633 quiz: Set 'Overrides' to link to user overrides by default 2022-02-02 10:34:29 +08:00
Bas Brands f2ddd23ec1 MDL-71457 theme_boost: activity icon styling 2021-12-20 15:02:24 +01:00
Sujith Haridasan 6ba821dc01 MDL-71915 mod_quiz: Update the tertiary nav
Update the tertiary navigation for this
activity.
2021-12-06 09:27:58 +05:30
PraiseSatan 982d1bb1c8 MDL-69496 quiz: Only validate completion if unlocked
Quiz completion settings are only validated if they are unlocked.
Undefined behaviour in the forms API results in the completion
settings 'require passing grade' and 'completion attempts exhausted'
not being sent to the process options function if completion
settings are locked. This resulted in the completion attempts
exhausted setting being disabled whenever the quiz was saved
as it did not detect the require passing grade setting.
This changes the behaviour so that validation is only performed
if the completion settings are unlocked.
A behat test is included to ensure the setting does not change.
2021-11-17 09:11:29 +11:00
Peter Dias cb2afc668d MDL-72827 completion: Revert completion flow logic
- Reverts the custom flow logic introduced in the 52206
- Expand unit tests to cover different grade based completion settings
2021-10-28 11:38:10 +08:00
abgreeve 24eac0b051 Merge branch 'MDL-72543-master' of git://github.com/lameze/moodle 2021-10-07 15:11:12 +08:00
Simey Lameze 9afd980b4e MDL-72543 block_timeline: change the display of event names 2021-10-07 14:05:34 +08:00
Peter Dias d975251813 MDL-52206 completion: New criteria to handle behaviour between modules 2021-10-04 19:45:45 +08:00
Peter Dias cd52b46e89 MDL-52206 quiz: Remove completionpass completion from quiz
AMOS BEGIN
 MOV [completionpass,mod_quiz],[completionpassgrade,core_completion]
 MOV [completionpassdesc,mod_quiz],[completionpassgrade_desc,core_completion]
 MOV [completionpass_help,mod_quiz],[completionpassgrade_help,core_completion]
AMOS END
2021-10-04 19:44:03 +08:00
Huong Nguyen 5444f88e4f MDL-70720 Quiz: Improve capability checks when fetching users' best grades 2021-05-04 17:23:11 +02:00
Jun Pataleta 11df82e9f7 Merge branch 'MDL-71410-master' of git://github.com/rezaies/moodle 2021-04-27 12:36:24 +08:00
Shamim Rezaie ec519a6488 MDL-71410 mod_quiz: Cache quiz times in modinfo for performance
We update the dates with user/group overrides. The calculation of
the override in the quiz module is different from the assignment
module as the quiz_overrides table des not have a sortorder column.
See quiz_update_effective_access().
2021-04-27 14:32:26 +10:00
Shamim Rezaie d61f18433f MDL-71410 mod_quiz: Cache user and group overrides 2021-04-27 14:32:26 +10:00
Sara Arjona 12f64a02c9 Merge branch 'MDL-71144-master' of git://github.com/rezaies/moodle 2021-04-23 13:16:01 +02:00
Shamim Rezaie d9d0ae01d3 MDL-71144 mod_quiz: Deprecate quiz_get_completion_state() 2021-04-22 21:02:02 +10:00
Luca Bösch aee27d0a9b MDL-71118 core: Add grade (verb) string.
AMOS BEGIN
 CPY [grade,core],[gradenoun,core]
 CPY [grade,core],[gradeverb,core]
AMOS END
2021-04-17 11:46:09 +02:00
Eloy Lafuente (stronk7) c33b5efaad Merge branch 'master_MDL-32226' of https://github.com/danmarsden/moodle 2021-04-08 17:30:12 +02:00
Shamim Rezaie 7a9f13e37f MDL-70935 mod_quiz: combine 'pass' and 'attemptsexhausted' rules
Custom rules are combined using the AND operator. However, the
'completionpass' and 'completionattemptsexhausted' rules are exceptions
because they are combined together with OR, and form a single new rule
that then will be combined with the rest of the rules using AND.
This commit combines the mentioned rules into a single rule named
'completionpassorattemptsexhausted'.
2021-04-07 15:09:36 +08:00
Shamim Rezaie 24b9ff4c71 MDL-70935 mod_quiz: Missing completionminattempts rule description
The mod_quiz_get_completion_active_rule_descriptions() function was not
returning the description for the 'completionminattempts' rule. Added
that.
2021-04-07 15:09:36 +08:00
Dan Marsden 21778d8d16 MDL-32226 mod_quiz: Add Plagiarism hooks to quiz and essay question. 2021-03-27 09:13:41 +13:00
sam marshall 5e72715e4f MDL-71099 Lib: Move new user_fields class from core to core_user
This class would belong more appropriately within the 'user' API
(core_user) instead of within the 'core' API, since it is
directly related to user data.

Since the class has only just been added to Moodle, now is a good
time to move it.
2021-03-25 13:47:23 +00:00
Simey Lameze 1fcd850859 MDL-71182 calendar: Revert "Merge branch 'MDL-67494-master' of git://github.com/lameze/moodle"
This reverts commit 9d58d4de46, reversing
changes made to 535c0277de.
2021-03-24 09:11:01 +08:00
sam marshall 558cc1b85e MDL-45242 Lib: Replace calls to deprecated functions
In all cases changes have been kept to a minimum while not making
the code completely horrible. For example, there are many instances
where it would probably be better to rewrite a query entirely, but
I have not done that (in order to reduce the risk of changes).
2021-03-10 10:57:10 +00:00
Simey Lameze ac0a0bad63 MDL-67494 calendar: only user overrides should retain userid 2021-03-03 16:06:32 +08:00
Tim Hunt 7d11dcfde2 MDL-68831 quiz overrides: show a summary on the quiz info page 2020-12-16 14:21:45 +00:00
Tim Hunt 7350f41bf8 MDL-69735 quiz: new capability for read-only view of setting overrides 2020-12-11 19:54:40 +00:00
Amaia Anabitarte bceb4280bf MDL-69716 mod_quiz: No timestamp for in progress attempts 2020-10-23 16:01:15 +02:00
Josh Ebarvia 380534b0a1 MDL-69253 mod_quiz: Fix timecreated is 0 when creating a quiz activity 2020-08-04 13:43:45 +01:00
Amaia Anabitarte 2d710f35cd MDL-69199 mod_quiz: Show timefinish in user Complete report 2020-07-23 18:53:49 +02:00
François Moreau 760ed019ee MDL-45002 mod_quiz: completion option, at least N attempts completed 2020-07-14 15:32:06 -04:00
David Mudrák 005b00dd9b MDL-68645 output: Do not apply filters when creating calendar events
Applying filters on an activity module description when using it as a
new calendar event's description is bad m'kay? We need to store the raw
text and apply the filters only when we actually display the text. That
way, filters (such as multi-language content) may actually fully work
and we do not initialise the theme and output machinery.

Additionally, we need to explicitly set the format of the description
text to HTML (because we have converted it to it already). Otherwise it
defaults to the current user's preferred editor format.

This is still a pragmatic hot-fix solution. The proper solution would be
to pass the raw text, format and embedded files.
2020-05-13 10:03:01 +02:00
Eloy Lafuente (stronk7) f4feabb83f MDL-66968 php74: array_key_exists() for objects is deprecated
Replace it for correct property_exists() when the element
being inspected is a property of object/class.

Amended and squased changes:
- keep mongo unmodified. The information is array, hence correct.
- fix a couple of messaging phpdocs that were incorrect.

Amended take#2:
- As far as mongo resturns BSONDocument that is ArrayObject, aka
implements ArrayAccess, we have decided to explicitly cast results
to array so existing array_key_exists() and other accesses will
continue working the same.
2019-10-25 00:49:04 +02:00
Andrew Nicols 4bb39eabc7 MDL-66733 grade: Add helper to get correct user date for grade 2019-09-20 09:50:17 +08:00
John Yao 96e444665e MDL-65517 block_timeline: Hide completed course modules in Timeline
When some activities are manually completed by students, some are still showing in students' timeline.
This commit fix that for module assign,chat,choice,feedback,lesson,quiz,scorm and workshop.
2019-07-12 09:16:40 +10:00
Arto Nieminen 9147273640 MDL-53778 quiz settings: Ensure that disabled checkboxes have value 0 2019-06-25 13:23:12 +03:00
Sara Arjona a1bf1b04a5 MDL-57487 mod_quiz: final deprecation xxx_print_overview 2019-06-14 17:41:18 +02:00
Shamim Rezaie 3f4d7f805e MDL-63146 mod_quiz: Add userid param to mod_quiz calendar callbacks 2019-03-05 14:21:42 +11:00