Commit Graph

14 Commits

Author SHA1 Message Date
safatshahin dfed4fd040 MDL-71516 core_question: Qbank api implementation
This commit implements the qbank api so that any plugin
can implement its own question bank. This api currently
works parallely with the moodle core classes and the
added qbank in the core, means the moment a plugin
is installed, that object is replaced with the object
from the plugin instead of core, which means the api
has flexibility till the plugins are integrated and the
plugins can be integrated in any order.

All the old classes are still there and not deprecated
as there is a different tracker for the changes to the
quiz and another tracker for class deprecation and
class renaming. Core question units tests are pointing
to the new api structure but the classes are pointing
to the location related to the plugin availability.

Co-Authored-By: Luca Bösch <luca.boesch@bfh.ch>
Co-Authored-By: Guillermo Gomez Arias <guillermogomez@catalyst-au.net>

one more array fix
2021-08-17 18:57:31 +10:00
Mikhail Golenkov f8d859a685 MDL-47178 question: Retain question authors when restoring backups. 2020-10-06 09:29:18 +11:00
Tim Hunt c689726d3f MDL-68733 question behat: question tag generator and use in quiz test 2020-05-18 22:56:33 +01:00
Andrew Nicols 221bfed37b MDL-66378 behat: Fix use of before/after selectors 2019-08-19 08:16:40 +08:00
Tim Hunt c5499edaef MDL-63185 mod_quiz: more fixes to new behat code
Part of MDL-62610
2018-09-28 11:07:21 +08:00
Simey Lameze 9b1fc262d8 MDL-63185 mod_quiz: make CiBoT happy again
Part of MDL-62610
2018-09-28 11:07:21 +08:00
Simey Lameze 5c0654d7ff MDL-63185 mod_quiz: change APIs to handle attempts on behat
Thanks to Tim Hunt for all the help.

Part of MDL-62610
2018-09-28 11:07:21 +08:00
John Beedell 6189fda47f MDL-62708 question: Add idnumbers to question and question category 2018-09-21 12:26:24 +01:00
Andrew Nicols d44064cdd6 MDL-61407 question: Add initial privacy implementation 2018-05-03 16:14:35 +08:00
Ryan Wyllie c53beb73e5 MDL-61364 question: unit tests for submit_tags_form 2018-03-26 11:27:47 +08:00
Shamim Rezaie 869320c7f4 MDL-61132 Questions: Unit tests compatibility
Modified unit tests to adapt with "Top" categories.
2018-02-05 11:58:58 +11:00
Jake Dallimore d7d4a09707 MDL-54864 core_question: Enforce context,stamp uniqueness for category
Added an upgrade step to remove duplicate stamps, added a unique index
on (contextid, stamp) and modified the question_category edit code such
that stamp duplication in the same context is not permitted.
2016-08-22 09:44:52 +08:00
Tim Hunt 0a606a2be2 MDL-38538 question auto-save back end.
1. Autosave works in some ways just like a normal save. We ultimately
call $behaviour->process_save() to do the work, and create a new step to
hold the data.

2. However, we come in through a completely different route through the
API, starting with separate auto-save methods. This keeps the auto-save
changes mostly separate, and so reduced the chance of breaking existing
working code.

3. When the time comes to store the auto-save step in the database, we
save it using a negative sequence number.

This is a clever trick that not only distinguises these steps, but also
avoids unique key errors when an auto-save and a real action happen
simultaneously. (There are unit tests for these tricky edge cases.)

4. When we load the data back from the database, most of the time the
auto-save steps are loaded back as if they were a real save, and so the
auto-saved data is used when the question is then rendered.

5. However, before we process another action, we remove the auto-saved
step, so it does not appear in the final history.
2013-03-28 16:51:59 +00:00
Tim Hunt ba203de1d3 MDL-38582 testing: Let any component have a data generator.
Plus a simple core_question generator to test the concept.
2013-03-22 10:28:24 +00:00