MDL-53149 mod_data: update backup and webservices for timemodified
authorDan Poltawski <dan@moodle.com>
Thu, 3 Mar 2016 10:13:56 +0000 (18:13 +0800)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 15 Mar 2016 22:41:55 +0000 (23:41 +0100)
Amended to add support for standard restore apply_date_offset().

mod/data/backup/moodle2/backup_data_stepslib.php
mod/data/backup/moodle2/restore_data_stepslib.php
mod/data/classes/external.php
mod/data/tests/externallib_test.php

index a190eb5..fd6eb52 100644 (file)
@@ -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');
 
index 7e6d4e2..dd71cf2 100644 (file)
@@ -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)));
index c097e70..3ac5e82 100644 (file)
@@ -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'
                     )
                 ),
index a0ecd29..831f0c9 100644 (file)
@@ -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');