From 7cff4927be710e8a4a46f00bd7a27cd32cacd2ac Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Sat, 12 Feb 2011 03:03:26 +0100 Subject: [PATCH] MDL-26229 backup & restore - fix quiz & lesson conflicts --- mod/lesson/backup/moodle2/backup_lesson_stepslib.php | 5 ++++- mod/lesson/backup/moodle2/restore_lesson_stepslib.php | 7 +++++++ mod/quiz/backup/moodle2/backup_quiz_stepslib.php | 3 ++- mod/quiz/backup/moodle2/restore_quiz_stepslib.php | 7 +++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/mod/lesson/backup/moodle2/backup_lesson_stepslib.php b/mod/lesson/backup/moodle2/backup_lesson_stepslib.php index 0b90f423dea..c55bffe0a92 100644 --- a/mod/lesson/backup/moodle2/backup_lesson_stepslib.php +++ b/mod/lesson/backup/moodle2/backup_lesson_stepslib.php @@ -76,8 +76,11 @@ class backup_lesson_activity_structure_step extends backup_activity_structure_st 'minquestions','maxpages','timed','maxtime','retake','activitylink', 'mediafile','mediaheight','mediawidth','mediaclose','slideshow', 'width','height','bgcolor','displayleft','displayleftif','progressbar', - 'highscores','maxhighscores','available','deadline','timemodified' + 'showhighscores','maxhighscores','available','deadline','timemodified' )); + // Tell the lesson element about the showhighscores elements mapping to the highscores + // database field. + $lesson->set_source_alias('highscores', 'showhighscores'); // The lesson_pages table // Grouped within a `pages` element, important to note that page is relational diff --git a/mod/lesson/backup/moodle2/restore_lesson_stepslib.php b/mod/lesson/backup/moodle2/restore_lesson_stepslib.php index 90d0cb6d9ed..d1f34dd7b4a 100644 --- a/mod/lesson/backup/moodle2/restore_lesson_stepslib.php +++ b/mod/lesson/backup/moodle2/restore_lesson_stepslib.php @@ -62,6 +62,13 @@ class restore_lesson_activity_structure_step extends restore_activity_structure_ $data->deadline = $this->apply_date_offset($data->deadline); $data->timemodified = $this->apply_date_offset($data->timemodified); + // lesson->highscores can come both in data->highscores and + // data->showhighscores, handle both. MDL-26229 + if (isset($data->showhighscores)) { + $data->highscores = $data->showhighscores; + unset($data->showhighscores); + } + // insert the lesson record $newitemid = $DB->insert_record('lesson', $data); // immediately after inserting "activity" record, call this diff --git a/mod/quiz/backup/moodle2/backup_quiz_stepslib.php b/mod/quiz/backup/moodle2/backup_quiz_stepslib.php index 7a05c5a49c1..655cb5f8474 100644 --- a/mod/quiz/backup/moodle2/backup_quiz_stepslib.php +++ b/mod/quiz/backup/moodle2/backup_quiz_stepslib.php @@ -39,7 +39,7 @@ class backup_quiz_activity_structure_step extends backup_questions_activity_stru // Define each element separated $quiz = new backup_nested_element('quiz', array('id'), array( 'name', 'intro', 'introformat', 'timeopen', - 'timeclose', 'optionflags', 'penaltyscheme', 'attempts', + 'timeclose', 'optionflags', 'penaltyscheme', 'attempts_number', 'attemptonlast', 'grademethod', 'decimalpoints', 'questiondecimalpoints', 'review', 'questionsperpage', 'shufflequestions', 'shuffleanswers', 'questions', 'sumgrades', 'grade', 'timecreated', @@ -119,6 +119,7 @@ class backup_quiz_activity_structure_step extends backup_questions_activity_stru } // Define source alias + $quiz->set_source_alias('attempts', 'attempts_number'); $grade->set_source_alias('grade', 'gradeval'); $attempt->set_source_alias('attempt', 'attemptnum'); diff --git a/mod/quiz/backup/moodle2/restore_quiz_stepslib.php b/mod/quiz/backup/moodle2/restore_quiz_stepslib.php index 30f8baa0ae2..72222419322 100644 --- a/mod/quiz/backup/moodle2/restore_quiz_stepslib.php +++ b/mod/quiz/backup/moodle2/restore_quiz_stepslib.php @@ -67,6 +67,13 @@ class restore_quiz_activity_structure_step extends restore_questions_activity_st $data->questions = $this->questions_recode_layout($data->questions); + // quiz->attempts can come both in data->attempts and + // data->attempts_number, handle both. MDL-26229 + if (isset($data->attempts_number)) { + $data->attempts = $data->attempts_number; + unset($data->attempts_number); + } + // insert the quiz record $newitemid = $DB->insert_record('quiz', $data); // immediately after inserting "activity" record, call this