Merge branch 'MDL-47474' of https://github.com/bostelm/moodle
[moodle.git] / mod / quiz / upgrade.txt
1 This files describes API changes in the quiz code.
3 === 2.8 ===
5 * Major changes to the Edit quiz page.
7   The goal of this work was to increase usability, and also clean up the page
8   enough that it will be possible to add new features in future.
10   Display of mod/quiz/edit.php is now entirely generated by
11   mod_quiz\output\edit_renderer. This uses a helper class mod_quiz\structure
12   to provide details of the structure of the quiz, and mod_quiz\repaginate to
13   alter that structure. (Actually, there are still some modification methods on
14   mod_quiz\structure. Expect that to be cleaned up in future.)
16   The new code uses much more ajax, and there are new scripts mod/quiz/edit_rest.php
17   and mod/quiz/repaginate.php to handle this. (Again, don't be surprised if those
18   two scripts get merged in future.) Also questionbank.ajax.php (which may, in
19   future, be made more generic, and moved into the core question bank code.)
21   As a result of this, mod/quiz/editlib.php is now much shorter than it was.
22   (In future, expect the remaining code in here to move into mod/quiz/classes.)
24   Here is a list of all the old functions or classes that have changed.
25   If you used any of these in custom code, you will need to update your code.
26   (Note that many of these functions should have been considered private internals
27   of the quiz module, and you should not have been using them!)
29   From editlib.php:
30       quiz_remove_slot
31       quiz_delete_empty_page
32       quiz_add_page_break_after_slot    - Use methods of structure or repaginate
33       quiz_update_slot_maxmark          - classes instead.
34       _quiz_move_question
35       quiz_move_question_up
36       quiz_move_question_down
38       quiz_print_question_list
39       quiz_print_pagecontrols
40       quiz_print_singlequestion         - Use methods of edit_renderer instead.
41       quiz_print_randomquestion
42       quiz_print_singlequestion_reordertool
43       quiz_print_randomquestion_reordertool
44       print_random_option_icon
45       quiz_print_grading_form
46       quiz_print_status_bar
48   Moved from editlib.php to locallib.php:
49       quiz_question_tostring - now always returns a string (the only option used).
50                                The $return argument has gone.
52   Old editing JavaScript (e.g. mod/quiz/edit.js) is gone. Replaced with YUI modules.
55 === 2.7.1 ===
57 * The function quiz_fire_attempt_started_event has been removed. This function
58   should not have been used outside the quiz, but if you were using it, you should
59   trigger the event outside this function. Note that the appropriate start event is
60   fired automatically by the quiz_attempt_save_started function.
62 === 2.7 ===
64 * The old quiz.questions database column (comma-separated list of question ids)
65   is gone, and instead the quiz_question_instances table has been renamed to
66   to quiz_slots. Some of the columns of that table have been renamed to match
67   the coding guidelines. Specifically:
68       quiz     -> quizid
69       question -> questionid
70       grade    -> maxmark
71   also there are two new columns:
72       slot     -  numbers the questions in the quiz in order, as on the edit quiz page.
73       page     -  new way to determine which question is on which page.
74   naturally, other parts of the code and APIs have been updated to reflect that
75   change.
77 * The following functions, which were part of the internal workings of the quiz,
78   have been removed.
79       quiz_get_slot_for_question
80       quiz_number_of_questions_in_quiz
81       quiz_repaginate               (there is now a quiz_repaginate_questions with a different API).
82       quiz_add_page_break_at        (see quiz_add_page_break_after_slot)
83       quiz_add_page_break_after     (see quiz_add_page_break_after_slot)
84       quiz_number_of_pages
85       quiz_remove_question          (see quiz_remove_slot)
86       quiz_update_question_instance (see quiz_update_slot_maxmark)
88 * The following internal functions have had their API changed.
89       quiz_delete_empty_page: has had its arguments changed to $quiz and $pagenumber.
90       quiz_has_question_use: now takes $quiz and $slot, not $questionid.
92 === 2.6 ===
94 * As part of improving the page usability and accessibility, we updated the
95   heading levels for quiz module so it has a proper nesting. (MDL-41615)
97 * mod_quiz_renderer::view_best_score has been removed. (It did not do what the
98   name suggested anyway.)
101 === 2.4 ===
103 * mod_quiz_renderer::finish_review_link now requires $attemptobj to be passed in
104   instead of a moodle_url.
107 === Earlier changes ===
109 * Were not documented in this way. Sorry.