Commit graph

251 commits

Author SHA1 Message Date
M Kassaei
5d949702f8 MDL-40988 quiz: ability to break quizzes into sections
The sections are created on the edit quiz page, and then appear in the
navigation panel when the quiz is being attempted to help students find
their way around.

The 'Shuffle questions' setting has been moved from being per-quiz
to being a per-section.

This commit is actually the joint work of Mahmoud Kassaei and Tim Hunt
from The Open University. We could only use one persons name for the
commit and this time Mahmoud gets the credit/blame.
2015-04-05 14:30:53 +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
441d284ada MDL-40990 quiz: option to require prev Q finished before next shown
Further improvements to this code, including resolving edge cases:

* The new feature can only be used when it is possible for the
previous question in the quiz to be complete.

* Also, this new feature cannot be used in combination with shuffle
questions, because that make no sense; nor in combination with
sequential navigation, because to make that work properly would be a lot
of effort. If someone needs that to work later, it should be possible
for them to implement it.

* There were changes in the edit renderer API, to try to make things
more  consistent, and to make it less likely we will need to change
things again in the future. See mod/quiz/upgrade.txt.

* As part of this change, the styling of the Edit quiz page was tweaked
to make slighly more efficient use of the horizontal space, and to be
more symmetrical.
2015-03-17 17:16:22 +00:00
M Kassaei
f7785e42b3 MDL-40990 quiz: option to require prev Q finished before next shown 2015-03-17 17:10:13 +00:00
Sam Hemelryk
8a375d27f2 MDL-48026 mod_quiz: convert menu nowrap from CSS to method 2014-11-03 13:35:29 +13:00
Tim Hunt
58413f613e MDL-47963 quiz editing: fix failing unit tests
The unit tests were initialising the structure class in a different way
from real use. That was clearly silly, so I got rid of create_for,
leaving just the real create_for_quiz.
2014-10-31 17:22:38 +00:00
Dan Poltawski
b4eaafd744 Merge branch 'MDL-47963' of git://github.com/timhunt/moodle 2014-10-31 13:14:59 +00:00
Colin Chambers
77dca4d0a8 MDL-47972 mod_quiz: Fix new quiz on themes based on base. 2014-10-30 17:11:23 +00:00
Tim Hunt
6870a6b8d0 MDL-47963 quiz editing: block ajax edits once there are attempts 2014-10-30 16:24:55 +00:00
Colin Chambers
6375e98cbb MDL-47959 Number of questions not updated dynamically in new quiz edit page 2014-10-29 16:26:49 +00:00
Colin Chambers
a69f81f0d3 MDL-47368 Edit quiz: page should not reload so often
The approach is that we have a new JavaScript function
M.mod_quiz.resource_toolbox.reorganise_edit_page which, after a ajax
action, fixes up everything like page breaks, page and question numbers,
that might now be wrong.

We call that function instead of reloading the page.

Also, there are a lot more Behat tests to verify this works correctly.

AMOS BEGIN
 MOV [joinpages,mod_quiz],[removepagebreak,mod_quiz]
 MOV [splitpages,mod_quiz],[addpagebreak,mod_quiz]
AMOS END
2014-10-28 11:32:42 +00:00
Tim Hunt
97ef7ea2ce MDL-47695 quiz editing: descritions don't have a max mark!
So don't show the UI for editing it.

Also, don't show non-functional page split/join icons after the quiz has
been attempted.
2014-10-20 15:30:35 +01:00
Tim Hunt
84b45a24a1 MDL-47603 quiz edit: qbank popup preview icon needs new window
Also, ensure that clicking the + icon adds the question on the right
page.

Bit of this fix are a bit hacky, but we have to deal with the fact there
is not a good general solution to MDL-47604.
2014-10-10 13:40:16 +01: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
Colin Chambers
e1a2d0d92d MDL-43089 quiz: improved interface for building quizzes
This commit is actually the joint work of Mahmoud Kassaei, Colin
Chambers and Tim Hunt from The Open University. We could only use one
persons name for the commit, and this time Colin gets the credit/blame.

The goal of this work was to increase usability, and also clean up
the page enough that it will be possible to add new features in future.

Display of mod/quiz/edit.php is now entirely generated by
mod_quiz\output\edit_renderer. This uses a helper class
mod_quiz\structure to provide details of the structure of the quiz, and
mod_quiz\repaginate to alter that structure. (Acutally, there are still
some modification methods on mod_quiz\structure. Expect that to be
cleaned up in future.)

The new code uses much more ajax, and there are new scripts
mod/quiz/edit_rest.php and mod/quiz/repaginate.php to handle this.
(Again, don't be surprised if those two scripts get merged in future.)
Also questionbank.ajax.php (which may, in future, be made more generic,
and moved into the core question bank code.)

Most of the new JavaScript code has intentionally copied the way things
are done when editing activities on the course page.

As a result of this, mod/quiz/editlib.php is now much shorter than it
was. (In future, expect the remaining code in here to move into
mod/quiz/classes.)
2014-10-02 17:22:23 +01:00
Mark Nelson
3b0347712a MDL-45445 events: added '(optional)' to event params where applicable 2014-06-12 20:46:58 -07:00
Mark Nelson
1ea5f1e2d3 MDL-45630 events: removed unnecessary 'the' from event descriptions 2014-05-31 15:27:11 -07:00
Andrew Nicols
02915dfc23 MDL-45357 events: Remove unnecessary the before 'id' in event descriptions 2014-05-06 16:45:05 +08:00
Andrew Nicols
4d87e5c109 MDL-45357 events: Normalise event description names 2014-05-06 16:44:04 +08:00
Mark Nelson
c5cfb3ca98 MDL-45357 events: changed event descriptions to ensure consistency in core 2014-05-05 00:55:50 -07:00
Marina Glancy
7936ca2c54 MDL-45273 quiz: whitespace fix 2014-05-01 12:19:49 +08:00
Marina Glancy
ea50fe37c8 Merge branch 'MDL-45273' of git://github.com/timhunt/moodle 2014-05-01 12:16:48 +08:00
Petr Skoda
b649341dab MDL-43557 add missing description to \mod_quiz\event\attempt_becameoverdue 2014-04-30 15:00:03 +08:00
Mark Nelson
02a5a4b2ff MDL-43557 events: fixed minor issues in existing events 2014-04-29 19:16:11 -07:00
Tim Hunt
3180508949 MDL-45273 quiz: Fix codechecker issues. 2014-04-29 11:57:01 +01:00
Tim Hunt
9ec7a71661 MDL-45273 remove the need for quiz settings.php to include locallib.php. 2014-04-29 11:16:44 +01:00
Tim Hunt
de4cd1e047 MDL-45273 quiz: move admin settings into classes folder. 2014-04-29 11:16:39 +01:00
Marina Glancy
c733401634 Merge branch 'MDL-45035-master' of git://github.com/ankitagarwal/moodle 2014-04-15 14:34:36 +08:00
Ankit Agarwal
9638600bbb MDL-45035 events: Fix @package and @since tags in Moodle 2.6 events 2014-04-11 13:32:33 +08:00
Mark Nelson
9d65d3e70b MDL-40063 mod_quiz: created 'override_created' events 2014-04-10 20:42:44 -07:00
Mark Nelson
e8365f27e5 MDL-40063 mod_quiz: replaced ‘manualgrade’ add_to_log call with an event 2014-04-10 20:42:24 -07:00
Mark Nelson
a2caf56dff MDL-40063 mod_quiz: replaced 'attempt' add_to_log call with an event 2014-04-10 20:41:56 -07:00
Mark Nelson
45e1e3bd76 MDL-40063 mod_quiz: replaced 'preview' add_to_log call with an event 2014-04-10 20:41:54 -07:00
Mark Nelson
e0114708af MDL-40063 mod_quiz: replaced 'continue attempt' add_to_log call with an event 2014-04-10 20:41:39 -07:00
Mark Nelson
8de2eb3582 MDL-40063 mod_quiz: replaced 'delete override' add_to_log call with events 2014-04-10 20:41:09 -07:00
Mark Nelson
e7d80a059a MDL-40063 mod_quiz: replaced 'edit override' add_to_log call with events 2014-04-10 20:40:51 -07:00
Mark Nelson
60ab03eb10 MDL-40063 mod_quiz: replaced 'view summary' add_to_log call with an event 2014-04-10 20:40:25 -07:00
Mark Nelson
2a3f82041f MDL-40063 mod_quiz: replaced 'review' add_to_log call with an event 2014-04-10 20:40:13 -07:00
Mark Nelson
2ec79ad996 MDL-40063 mod_quiz: replaced 'report' add_to_log call with an event 2014-04-10 20:39:56 -07:00
Mark Nelson
7dad3d95fd MDL-40063 mod_quiz: replaced 'delete attempt' add_to_log call with an event 2014-04-10 20:39:15 -07:00
Mark Nelson
5e8f736565 MDL-40063 mod_quiz: replaced 'editquestions' add_to_log call with an event 2014-04-10 20:34:27 -07:00
Mark Nelson
b332fc6c8c MDL-40063 mod_quiz: replaced 'view' and 'view all' add_to_log calls with events 2014-04-10 20:34:14 -07:00
Ankit Agarwal
b63f773296 MDL-44717 events: Fix multiple issues in events
Fix various incorrect urls
Fix incorrect phpdocs and other minor code style issues
Fix missing/incorrect strings

AMOS BEGIN
 MOV [eventblogassociationcreated, core_blog],[eventblogassociationadded, core_blog]
AMOS END
2014-04-01 15:08:34 +08:00
Petr Škoda
578645aadf MDL-44715 use parent::validate_data() consistently in all events
Includes some minor PHPDocs typo fixes.
2014-03-28 14:09:31 +08:00
Rajesh Taneja
fdc729ea57 MDL-43736 Events: event->contextinstanceid should be used where possible
While restoring event context might not be present (deleted)
So before using context api's check context or use event properties
2014-01-29 11:39:44 +08:00
Petr Škoda
32f906b677 MDL-43661 use new edulevel in all existing events 2014-01-21 16:12:35 +08:00
Rajesh Taneja
184afb6b73 MDL-43238 events: Added event other information in event php doc block 2014-01-03 15:03:48 +08:00
Petr Škoda
e87214bda7 MDL-42078 multiple uninstall improvements and cleanup
Includes:
* update checker refactored to \core\update\ namespace
* plugininfo classes refactored to \core\plugininfo\ namespace
* plugin_manager renamed to core_plugin_manager
* redirect back to original page after plugin uninstall
* fixed assign subplugin uninstall
* move assign subplugins under the assignment in admin tree
* fixed plugininfo for all question related plugin types
* auth uninstall support
* added missing block dependencies
* added theme uninstall
* subplugin types are following the plugin on plugin overview page
* several performance improvements in plugin manager
* new warnigns when plugininfo are outdated or missing
* multiple fixes and other improvements
2013-10-07 13:10:36 +02:00
Frederic Massart
0a8b091d41 MDL-41039 mod_quiz: Renaming event to attempt_becameoverdue 2013-09-26 16:43:20 +08:00
Frederic Massart
d900f1dc05 MDL-41039 mod_quiz: Replace events_trigger to new events 2013-09-26 16:43:03 +08:00