From 096512f52cebf539cc65396b1fd60ee71f0b507b Mon Sep 17 00:00:00 2001 From: Martin Gauk Date: Mon, 18 Aug 2025 18:00:38 +0200 Subject: [PATCH] MDL-86342 mod_assign: Allow subplugins to backup data at activity-level --- .../mod/assign/backup/moodle2/backup_assign_stepslib.php | 4 ++++ .../mod/assign/backup/moodle2/restore_assign_stepslib.php | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/public/mod/assign/backup/moodle2/backup_assign_stepslib.php b/public/mod/assign/backup/moodle2/backup_assign_stepslib.php index 3fea53bae84..62a53c8957f 100644 --- a/public/mod/assign/backup/moodle2/backup_assign_stepslib.php +++ b/public/mod/assign/backup/moodle2/backup_assign_stepslib.php @@ -162,6 +162,10 @@ class backup_assign_activity_structure_step extends backup_activity_structure_st $pluginconfig->set_source_table('assign_plugin_config', array('assignment' => backup::VAR_PARENTID)); + // Allow subplugins to backup data at assign level. + $this->add_subplugin_structure('assignsubmission', $assign, true); + $this->add_subplugin_structure('assignfeedback', $assign, true); + // Assign overrides to backup are different depending of user info. $overrideparams = array('assignid' => backup::VAR_PARENTID); diff --git a/public/mod/assign/backup/moodle2/restore_assign_stepslib.php b/public/mod/assign/backup/moodle2/restore_assign_stepslib.php index 02fa71a7034..f33aed15256 100644 --- a/public/mod/assign/backup/moodle2/restore_assign_stepslib.php +++ b/public/mod/assign/backup/moodle2/restore_assign_stepslib.php @@ -53,7 +53,13 @@ class restore_assign_activity_structure_step extends restore_activity_structure_ $userinfo = $this->get_setting_value('userinfo'); // Define each element separated. - $paths[] = new restore_path_element('assign', '/activity/assign'); + $assign = new restore_path_element('assign', '/activity/assign'); + $paths[] = $assign; + + // Allow subplugins to restore data at assign level. + $this->add_subplugin_structure('assignsubmission', $assign); + $this->add_subplugin_structure('assignfeedback', $assign); + if ($userinfo) { $submission = new restore_path_element('assign_submission', '/activity/assign/submissions/submission');