mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-55979 quiz: Fix error moving question from last page
When moving the last question from the last page to the last slot of the previous page would show the error in the error log but move successfully.
This commit is contained in:
parent
932bc91cb4
commit
72b8806abc
2 changed files with 20 additions and 1 deletions
|
@ -715,7 +715,8 @@ class structure {
|
|||
}
|
||||
|
||||
$followingslotnumber = $moveafterslotnumber + 1;
|
||||
if ($followingslotnumber == $movingslotnumber) {
|
||||
// Prevent checking against non-existance slot when already at the last slot.
|
||||
if ($followingslotnumber == $movingslotnumber && !$this->is_last_slot_in_quiz($followingslotnumber)) {
|
||||
$followingslotnumber += 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -315,6 +315,24 @@ class mod_quiz_structure_testcase extends advanced_testcase {
|
|||
), $structure);
|
||||
}
|
||||
|
||||
public function test_move_last_slot_to_previous_page_emptying_the_last_page() {
|
||||
$quizobj = $this->create_test_quiz(array(
|
||||
array('TF1', 1, 'truefalse'),
|
||||
array('TF2', 2, 'truefalse'),
|
||||
));
|
||||
$structure = \mod_quiz\structure::create_for_quiz($quizobj);
|
||||
|
||||
$idtomove = $structure->get_question_in_slot(2)->slotid;
|
||||
$idmoveafter = $structure->get_question_in_slot(1)->slotid;
|
||||
$structure->move_slot($idtomove, $idmoveafter, '1');
|
||||
|
||||
$structure = \mod_quiz\structure::create_for_quiz($quizobj);
|
||||
$this->assert_quiz_layout(array(
|
||||
array('TF1', 1, 'truefalse'),
|
||||
array('TF2', 1, 'truefalse'),
|
||||
), $structure);
|
||||
}
|
||||
|
||||
public function test_end_of_one_section_to_start_of_next() {
|
||||
$quizobj = $this->create_test_quiz(array(
|
||||
array('TF1', 1, 'truefalse'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue