MDL-57924 mod_data: Move update record code to new function
authorJuan Leyva <juanleyvadelgado@gmail.com>
Tue, 14 Feb 2017 09:11:43 +0000 (10:11 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 30 Mar 2017 00:35:59 +0000 (02:35 +0200)
mod/data/edit.php
mod/data/locallib.php

index 81d5ac9..615aa22 100644 (file)
@@ -181,34 +181,7 @@ if ($datarecord = data_submitted() and confirm_sesskey()) {
 
         if ($processeddata->validated) {
             // Enough data to update the record.
-
-            // Obtain the record to be updated.
-
-            // Reset the approved flag after edit if the user does not have permission to approve their own entries.
-            if (!has_capability('mod/data:approve', $context)) {
-                $record->approved = 0;
-            }
-
-            // Update the parent record.
-            $record->timemodified = time();
-            $DB->update_record('data_records', $record);
-
-            // Update all content.
-            foreach ($processeddata->fields as $fieldname => $field) {
-                $field->update_content($rid, $datarecord->$fieldname, $fieldname);
-            }
-
-            // Trigger an event for updating this record.
-            $event = \mod_data\event\record_updated::create(array(
-                'objectid' => $rid,
-                'context' => $context,
-                'courseid' => $course->id,
-                'other' => array(
-                    'dataid' => $data->id
-                )
-            ));
-            $event->add_record_snapshot('data', $data);
-            $event->trigger();
+            data_update_record_fields_contents($data, $record, $context, $datarecord, $processeddata);
 
             $viewurl = new moodle_url('/mod/data/view.php', array(
                 'd' => $data->id,
index 248d626..767ed14 100644 (file)
@@ -1226,3 +1226,43 @@ function data_add_fields_contents_to_new_record($data, $context, $recordid, $fie
     $event->add_record_snapshot('data', $data);
     $event->trigger();
 }
+
+/**
+ * Updates the fields contents of an existing record.
+ *
+ * @param  stdClass $data           database object
+ * @param  stdClass $record         record to update object
+ * @param  stdClass $context        context object
+ * @param  stdClass $datarecord     the submitted data
+ * @param  stdClass $processeddata  pre-processed submitted fields
+ * @since  Moodle 3.3
+ */
+function data_update_record_fields_contents($data, $record, $context, $datarecord, $processeddata) {
+    global $DB;
+
+    // Reset the approved flag after edit if the user does not have permission to approve their own entries.
+    if (!has_capability('mod/data:approve', $context)) {
+        $record->approved = 0;
+    }
+
+    // Update the parent record.
+    $record->timemodified = time();
+    $DB->update_record('data_records', $record);
+
+    // Update all content.
+    foreach ($processeddata->fields as $fieldname => $field) {
+        $field->update_content($record->id, $datarecord->$fieldname, $fieldname);
+    }
+
+    // Trigger an event for updating this record.
+    $event = \mod_data\event\record_updated::create(array(
+        'objectid' => $record->id,
+        'context' => $context,
+        'courseid' => $data->course,
+        'other' => array(
+            'dataid' => $data->id
+        )
+    ));
+    $event->add_record_snapshot('data', $data);
+    $event->trigger();
+}