16 Commits

Author SHA1 Message Date
Matt Porritt
556e2f1aec MDL-72553 qbank_customfields: Add custom fields for question types
Custom fields can now be added to question types.
Site administrators can configure the custom fields and
filed types available. Teachers and question creators can
then use these fields for extra question metadata when
creating questions. Question creators can control if
the fields are displayed to students when they are
taking a quiz or not.
This features uses the core Moodle custom field API.

Co-Authored-By: Matt Porritt <mattp@catalyst-au.net>
Co-Authored-By: Safat Shahin <safatshahin@catalyst-au.net>
Co-Authored-By: Marc-Alexandre Ghaly <marc-alexandreghaly@catalyst-ca.net>
2021-12-07 18:32:41 +11:00
Luca Bösch
ff95ec1150 MDL-73147 questions: remove modulespecificbuttonscontainer class.
Also, in the bulk actions ui this aligns the bulk action button
properly.
2021-11-30 20:53:34 +01:00
Safat Shahin
0805e387b7 MDL-72076 bulk actions ui: Implement bulk actions in qbank API
This implementation will introduce bulk actions qbank
plugins which can grab the selected question and perform
actions according to the selected option from dropdown
in the base view.

Co-Authored-By: Safat Shahin <safatshahin@catalyst-au.net>
Co-Authored-By: Matt Porritt <mattp@catalyst-au.net>
2021-11-22 11:35:21 +11:00
Safat Shahin
f9fc355ec7 MDL-71679 mod_quiz: Updates for new qbank api
This implementation will introduct changes to
the mod_quiz to implement the new qbank api
for view. Major changes are introduced in
the custom view and also all the legacy points
to the old qbank are changed to qbank plugins
where needed. It also deprecated and deletes
classes and scripts which were kept not to
break mod_quiz for the new api implementation.
2021-10-04 15:44:25 +11:00
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
Paul Holden
4b3f22e5d1 MDL-71127 mod_quiz: fix thrown exception for invalid question columns. 2021-04-19 09:06:56 +01:00
Tim Hunt
c2200bd5dc MDL-66553 quiz/questions: show idnumber and tags when adding from qbank 2019-10-11 13:59:26 +01:00
Jun Pataleta
cbd8641a8a MDL-65994 question: Convert checkboxes to checkbox-toggleall element 2019-07-19 10:29:18 +08:00
Tim Hunt
b195523758 MDL-63809 question bank: ensure question_has_capability_on can be called 2018-12-18 14:54:28 +11:00
Simey Lameze
cf81447c74 MDL-61135 mod_quiz: deprecate unused fragment_view class 2018-02-13 10:48:22 +08:00
Simey Lameze
fc23bc85cf MDL-61135 mod_quiz: move fragment_view functions to custom_view class 2018-02-13 10:48:03 +08:00
Ryan Wyllie
fff033322a MDL-61135 mod_quiz: add tag condition to question bank form 2018-02-08 02:44:17 +00:00
Ryan Wyllie
f33dc783f1 MDL-61135 mod_quiz: add question bank fragment 2018-02-08 02:44:16 +00:00
Luca Bösch
57f4e9608d MDL-60535 quiz: question bank button styled 2017-10-24 16:08:17 +01:00
Tim Hunt
bb93fc24aa MDL-6340 quiz: avoid reusing random questions between attempts
There are several improvements over what we had before:

1. We track all the questions seen in the the student's previous
quiz attempts, so that when they start a new quiz attempt, they get
questions they have not seen before if possible.

2. When there are no more unseen questions, we start repeating, but
always taking from the questions with the fewest attempts so far.

3. A similar logic is applied with variants within one question.

There is lots of credit to go around here. Oleg Sychev's students Alex
Shkarupa, Sergei Bastrykin and Darya Beda all worked on this over
several years, helping to clarify the problem and shape the best
solution. In the end, their various attempts were rewritten into this
final patch by me.
2015-03-26 17:45:49 +00:00
Tim Hunt
8aa5e0cf58 MDL-47132 quiz: move question bank extensions to classes/question/bank
While doing this code clean-up, I noticed that the question bank pop-up was
only showing the question name, whereas it should have been showing the
question name and the start of the question text, so I fixed that.
2014-10-03 07:54:46 +01:00