From 4539892cda288e501a250263d71695da09f1cd39 Mon Sep 17 00:00:00 2001 From: Dan Poltawski Date: Thu, 3 Mar 2016 18:13:56 +0800 Subject: [PATCH] MDL-53149 mod_data: update backup and webservices for timemodified Amended to add support for standard restore apply_date_offset(). --- mod/data/backup/moodle2/backup_data_stepslib.php | 2 +- mod/data/backup/moodle2/restore_data_stepslib.php | 2 ++ mod/data/classes/external.php | 5 +++-- mod/data/tests/externallib_test.php | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mod/data/backup/moodle2/backup_data_stepslib.php b/mod/data/backup/moodle2/backup_data_stepslib.php index a190eb5c582..fd6eb520e74 100644 --- a/mod/data/backup/moodle2/backup_data_stepslib.php +++ b/mod/data/backup/moodle2/backup_data_stepslib.php @@ -45,7 +45,7 @@ class backup_data_activity_structure_step extends backup_activity_structure_step 'addtemplate', 'rsstemplate', 'rsstitletemplate', 'csstemplate', 'jstemplate', 'asearchtemplate', 'approval', 'manageapproved', 'scale', 'assessed', 'assesstimestart', 'assesstimefinish', 'defaultsort', - 'defaultsortdir', 'editany', 'notification')); + 'defaultsortdir', 'editany', 'notification', 'timemodified')); $fields = new backup_nested_element('fields'); diff --git a/mod/data/backup/moodle2/restore_data_stepslib.php b/mod/data/backup/moodle2/restore_data_stepslib.php index 7e6d4e24ef7..dd71cf2b892 100644 --- a/mod/data/backup/moodle2/restore_data_stepslib.php +++ b/mod/data/backup/moodle2/restore_data_stepslib.php @@ -61,6 +61,8 @@ class restore_data_activity_structure_step extends restore_activity_structure_st $data->timeviewto = $this->apply_date_offset($data->timeviewto); $data->assesstimestart = $this->apply_date_offset($data->assesstimestart); $data->assesstimefinish = $this->apply_date_offset($data->assesstimefinish); + // Added in 3.1, hence conditional. + $data->timemodified = isset($data->timemodified) ? $this->apply_date_offset($data->timemodified) : time(); if ($data->scale < 0) { // scale found, get mapping $data->scale = -($this->get_mappingid('scale', abs($data->scale))); diff --git a/mod/data/classes/external.php b/mod/data/classes/external.php index c097e70cc46..3ac5e826926 100644 --- a/mod/data/classes/external.php +++ b/mod/data/classes/external.php @@ -128,7 +128,7 @@ class mod_data_external extends external_api { $additionalfields = array('maxentries', 'rssarticles', 'singletemplate', 'listtemplate', 'listtemplateheader', 'listtemplatefooter', 'addtemplate', 'rsstemplate', 'rsstitletemplate', 'csstemplate', 'jstemplate', 'asearchtemplate', 'approval', 'manageapproved', 'scale', 'assessed', 'assesstimestart', - 'assesstimefinish', 'defaultsort', 'defaultsortdir', 'editany', 'notification'); + 'assesstimefinish', 'defaultsort', 'defaultsortdir', 'editany', 'notification', 'timemodified'); // This is for avoid a long repetitive list. foreach ($additionalfields as $field) { @@ -195,7 +195,8 @@ class mod_data_external extends external_api { 'defaultsort' => new external_value(PARAM_INT, 'defaultsort field', VALUE_OPTIONAL), 'defaultsortdir' => new external_value(PARAM_INT, 'defaultsortdir field', VALUE_OPTIONAL), 'editany' => new external_value(PARAM_BOOL, 'editany field', VALUE_OPTIONAL), - 'notification' => new external_value(PARAM_INT, 'notification field', VALUE_OPTIONAL) + 'notification' => new external_value(PARAM_INT, 'notification field', VALUE_OPTIONAL), + 'timemodified' => new external_value(PARAM_INT, 'Time modified', VALUE_OPTIONAL) ), 'Database' ) ), diff --git a/mod/data/tests/externallib_test.php b/mod/data/tests/externallib_test.php index a0ecd297ccd..831f0c9983c 100644 --- a/mod/data/tests/externallib_test.php +++ b/mod/data/tests/externallib_test.php @@ -141,7 +141,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase { // Now, try as a teacher for getting all the additional fields. self::setUser($teacher); - $additionalfields = array('maxentries', 'rssarticles', 'singletemplate', 'listtemplate', + $additionalfields = array('maxentries', 'rssarticles', 'singletemplate', 'listtemplate', 'timemodified', 'listtemplateheader', 'listtemplatefooter', 'addtemplate', 'rsstemplate', 'rsstitletemplate', 'csstemplate', 'jstemplate', 'asearchtemplate', 'approval', 'scale', 'assessed', 'assesstimestart', 'assesstimefinish', 'defaultsort', 'defaultsortdir', 'editany', 'notification', 'manageapproved'); -- 2.43.0