4900 Commits

Author SHA1 Message Date
Tim Hunt
64bac5f4cc MDL-80127 question engine: don't convert null to '' before storing 2023-11-15 16:34:35 +00:00
Andrew Nicols
75587e23c6
MDL-79890 core: Update uses of array_keys with multiple params
These now call the newly minted `moodle_array_keys_filter` method.
2023-11-15 09:14:40 +08:00
Andrew Nicols
dab4a2b66f
MDL-80079 core: Correct incorrect arg to format_string::$options 2023-11-14 22:28:55 +08:00
Mikel Martín
2ea44fb45e
MDL-79629 core_question: Improve autocomplete categories UI 2023-11-02 14:50:10 +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
Paul Holden
9117e62a4d
Merge branch 'MDL-79642-q_tags_off' of https://github.com/leonstr/moodle 2023-10-10 21:18:53 +01:00
Sara Arjona
7b83434dbf
Merge branch 'MDL-79626-master' of https://github.com/junpataleta/moodle 2023-10-10 15:13:02 +02:00
Leon Stringer
35c7163184 MDL-79642 qbank_tagquestion: Fix Return type err
Previously if $CFG->usetags was not enabled the course question bank
page would show:

  Exception - qbank_tagquestion\plugin_feature::get_question_filters():
  Return value must be of type array, none returned

This is now fixed.
2023-10-10 12:14:34 +01:00
Ilya Tregubov
d79e8052fb
Merge branch 'MDL-79279' of https://github.com/timhunt/moodle 2023-10-10 11:19:27 +08:00
Jun Pataleta
9beff03a96
MDL-79626 upgrade: add the 4.3.0 separation line to all upgrade scripts 2023-10-10 10:44:17 +08:00
Jun Pataleta
98ac14eecb
Merge branch 'MDL-79531-master-1' of https://github.com/mihailges/moodle 2023-10-05 07:37:02 +08:00
Mihail Geshoski
451614016e MDL-79531 mod_quiz: Fix exception when adding random questions
Moves the data-filtercondition property to an element that always
exists regardless of whether the selected category from the filter
has questions or not. This will effectively solve the exception
that is being thrown due to the non-existing element and also
enable creation of random questions in a category that does not
have any questions yet. Also, the data-filtercondition attribute
is no longer used when creating a random question in a new category
as this value is not relevant in this case. Instead, a default
filter condition is generated in the webservice for the random
question based on the newly created category.
2023-10-04 12:31:12 +02:00
Sara Arjona
9877a06246
Merge branch 'MDL-79551-master-rc' of https://github.com/junpataleta/moodle 2023-10-04 12:28:14 +02:00
Jun Pataleta
d5d7835a0a
MDL-79551 versions: Make CiBoT happy
* Use array short syntax for $plugin->dependencies
* Add trailing comma for multi-line $plugin->dependencies array
2023-10-04 14:04:29 +08:00
Jun Pataleta
94bc2cd38b
MDL-79551 versions: bump all versions and requires near release 2023-10-04 13:57:17 +08:00
Sara Arjona
4101c5ee2a
Merge branch 'MDL-69119_angle_bracket_character_in_answers_not_escaped_in_moodle_xml_export_of_multiple_choice_calculated_questions' of https://github.com/ziegenberg/moodle 2023-10-04 07:51:30 +02:00
Jake Dallimore
e430e16c44
Merge branch 'MDL-79466_master' of https://github.com/marxjohnson/moodle 2023-10-04 10:21:08 +08:00
Daniel Ziegenberg
55ef05579b
MDL-69119 qformat_xml: fix mc calculated export
The Moodle XML export of multiple choice calculated questions was
missing proper escaping of answers. Also the indentation of the
generated xml was off.

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2023-10-03 12:18:11 +02:00
Andrew Nicols
be8093e2c7
Merge branch 'MDL-78580_master' of https://github.com/marxjohnson/moodle 2023-10-03 11:05:42 +08:00
Huong Nguyen
4a7259f236
Merge branch 'MDL-79224_master' of https://github.com/marxjohnson/moodle 2023-10-03 09:38:53 +07:00
Jun Pataleta
6ee9522dfa
Merge branch 'MDL-79254_master' of https://github.com/marxjohnson/moodle 2023-10-03 09:42:25 +08:00
Mark Johnson
7daa40f468 MDL-79466 qbank_history: Filters not applied correctly in History view
Filters were not being passed from the question bank when viewing a question's history,
mearning that questions not visible with the default filters applied would not have
any version shown on this history view unless the required filters were re-applied manually.

This change ensures the filters are passed in the URL to history.php. It also removes the Filter
UI from the History view, since it doesn't make sense to change the filters that are passed.
2023-10-02 13:30:33 +01:00
Mark Johnson
6401ca4959 MDL-79224 core: Make Binary datafilter redisplay selected value
The Binary datafilter was returning a single value where all parts of
the API expect an array of values. This was working in most places by
fluke as this value was a single-character string, so doing $value[0]
returned the value. However, it was not working when deciding which
option to mark as selected when re-displaying the filter.

This change makes the filter return an array containing a single integer
value to match the rest of the API, then internally selects that single
value for comparison when deciding if an option should be selected.
2023-10-02 11:50:44 +01:00
Sara Arjona
3839d226ca
Merge branch 'MDL-79482' of https://github.com/paulholden/moodle 2023-09-28 13:33:20 +02:00
Mark Johnson
e5a7a18ae2 MDL-79254 quiz_statistics: Convert recalculate task to ad-hoc
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.
2023-09-27 15:43:15 +01:00
Shamim Rezaie
d22da878f1 MDL-79486 qbank_columnsortorder: Document get_data_from_datamethod 2023-09-27 22:59:04 +10:00
Shamim Rezaie
1ecb374344 Merge branch 'MDL-79486-master' of https://github.com/andrewnicols/moodle 2023-09-27 22:57:46 +10:00
Paul Holden
4fd6045c2a
MDL-79482 qbank_columnsortorder: improve resize column modal header. 2023-09-26 16:20:10 +01:00
Jun Pataleta
535747fbc7
Merge branch 'MDL-79481' of https://github.com/paulholden/moodle 2023-09-26 12:06:16 +08:00
Andrew Nicols
9c07defb77
MDL-79486 qbank_columnsortorder: Data providers must not create data 2023-09-25 14:34:56 +08:00
Paul Holden
bf6dcc5779
MDL-79483 qbank_columnsortorder: set pix_icon for each column action. 2023-09-24 16:54:20 +01:00
Paul Holden
76a0561f91
MDL-79481 question: replace hard-coded template language strings. 2023-09-24 16:09:40 +01:00
Andrew Nicols
b9172e35e7
MDL-74054 qbank_columnsortorder: Rebuild amd 2023-09-22 23:13:06 +08:00
Mark Johnson
0ac2936c11
MDL-74054 questions: Fix question bank header widths
Chrome ignores min-width on table headers with table-layout:fixed,
meaning that question bank headers could be resized so that the controls
were overlapping, and could be too narrow by default.

This removes min-width: min-content in the headers and instead uses
Javascript to calculate a constrain a min width based on the content of
the headers.
2023-09-22 22:52:36 +08:00
Mark Johnson
4630043f46
MDL-74054 qbank_columnsortorder: Improve and expand unit tests 2023-09-22 10:53:54 +08:00
Mark Johnson
330908868b
MDL-74054 qbank_columnsortorder: Fix column reset by allowing null values 2023-09-22 10:53:54 +08:00
Andrew Nicols
697ac9b913
MDL-74054 qbank_customfields: Fix behat tests 2023-09-22 10:53:54 +08:00
Andrew Nicols
a3cfd50482
MDL-74054 qbank: Miscellaneous coding style fixes 2023-09-22 10:53:53 +08:00
Andrew Nicols
813c2441a1
MDL-74054 qbank_columnsortorder: Correct dataProvider name 2023-09-22 10:53:53 +08:00
Andrew Nicols
94de1567c3
MDL-74054 qbank_columnsortorder: Move away from ModalFactory 2023-09-22 10:53:53 +08:00
Mark Johnson
33e52fe4ed
MDL-74054 qbank_viewquestiontext: Convert from filter to question bank control
This replaces the "Show question text in the question list?" filter, which was
never really a filter, with a new widget displayed alongside other question bank
controls like "Create a new question" and "Reset columns".

It also refactors the logic of displaying the question text field or not, so that
it is all handled within the qbank_viewquestiontext plugin rather than relying on
code in the view.
2023-09-22 10:53:53 +08:00
Mark Johnson
63894ec2fe
MDL-74054 qbank_columnsortorder: Progressively enhance question bank actions
This modifies the question_data fragment used by the filter code to make its
parameters closer to the URL parameters of the question/edit.php page. This
Allows us to progressively enhance the add, remove and reset actions on the
question bank page, using this same fragment to reload the question table after
each change. This re-uses the same actions.js module used for enhancing these
actions on the qbank_columnsortorder admin screen.
2023-09-22 10:53:52 +08:00
Mark Johnson
3685a3355f
MDL-74054 qbank: Updates to plugins to support qbank customisation 2023-09-22 10:53:52 +08:00
Mark Johnson
93ca1cdc32
MDL-74054 theme: Style changes to support question bank UI cusomisation 2023-09-22 10:53:52 +08:00
Mark Johnson
37d69fff6b
MDL-74054 qbank_columnsortorder: Implement add, remove and resize
This updates the admin interface, and hooks into the question bank view
for users to override admin defaults with their preferences.
2023-09-22 10:53:52 +08:00
Mark Johnson
6001ee3dfd
MDL-74054 core_question: Define unique question bank column IDs
This also resolves MDL-78829.
Some question bank plugins use a separate class for each plugin they
define. However, qbank_customfields (and potentially others in the
future) uses a single class to define multiple fields. Using the class
name as an ID for the column doesn't give us a way of reliable
instantiating an object for the column. Previously, qbank_customfields
appended the field name as though it was a namespaced class, but this
had to be manually constructed and deconstructed by detecting this
particular column class.

This change introduces a standard way of constructing a unique ID for
each question bank column, in the form
pluginname\columnclass-columnname. This ensures that the ID will be
unique for each column, and the ID can be used to instatiate the
column's object.
2023-09-22 10:53:51 +08:00
Nathan Nguyen
2be0e10a80
MDL-74054 core_question: Add additional plugin points
This refactors the question bank view class to support new plugin points
required for the question bank UI customisation features.
2023-09-22 10:53:51 +08:00
Mark Johnson
feef716c91
MDL-74054 core_question: Re-apply filters when performing a qbank action
This changes the root element used by the fragment when
applying filters, so that the whole of display_question_list()
is reloaded.

This ensures that the returnurl will be updated correctly on the
question actions and bulk actions without manipulating then
further in Javascript.
2023-09-22 10:53:46 +08:00
Huong Nguyen
1ed52c0019
Merge branch 'MDL-79332' of https://github.com/timhunt/moodle 2023-09-18 18:55:53 +07:00
Sara Arjona
3079511dc7
NOBUG: Fixed SVG browser compatibility 2023-09-15 17:33:23 +02:00