From 6547554ffabc5206c4fc3837b27926e110a4987a Mon Sep 17 00:00:00 2001 From: David Woloszyn Date: Wed, 15 Nov 2023 15:17:14 +1100 Subject: [PATCH] MDL-69819 mod_feedback: Param now nullable in feedback_save_tmp_values --- mod/feedback/classes/completion.php | 2 ++ mod/feedback/lib.php | 4 ++-- mod/feedback/tests/event/events_test.php | 4 ++-- mod/feedback/tests/item_test.php | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mod/feedback/classes/completion.php b/mod/feedback/classes/completion.php index 0aa5c1754d2..48d6a56291a 100644 --- a/mod/feedback/classes/completion.php +++ b/mod/feedback/classes/completion.php @@ -553,6 +553,8 @@ class mod_feedback_completion extends mod_feedback_structure { global $SESSION, $DB, $USER; $feedbackcompleted = $this->find_last_completed(); + // If no record is found, change false to null for safe use in feedback_save_tmp_values. + $feedbackcompleted = !$feedbackcompleted ? null : $feedbackcompleted; $feedbackcompletedtmp = $this->get_current_completed_tmp(); if (feedback_check_is_switchrole()) { diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index 86b9065c969..67c665287eb 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -1878,10 +1878,10 @@ function feedback_set_tmp_values($feedbackcompleted) { * * @global object * @param object $feedbackcompletedtmp the temporary completed - * @param object $feedbackcompleted the target completed + * @param stdClass|null $feedbackcompleted the target completed * @return int the id of the completed */ -function feedback_save_tmp_values($feedbackcompletedtmp, $feedbackcompleted) { +function feedback_save_tmp_values($feedbackcompletedtmp, ?stdClass $feedbackcompleted = null) { global $DB; $tmpcplid = $feedbackcompletedtmp->id; diff --git a/mod/feedback/tests/event/events_test.php b/mod/feedback/tests/event/events_test.php index afcc627d410..6123a9099dd 100644 --- a/mod/feedback/tests/event/events_test.php +++ b/mod/feedback/tests/event/events_test.php @@ -212,7 +212,7 @@ class events_test extends \advanced_testcase { // Save the feedback. $sink = $this->redirectEvents(); - $id = feedback_save_tmp_values($completed, false); + $id = feedback_save_tmp_values($completed); $events = $sink->get_events(); $event = array_pop($events); // Response submitted feedback event. $sink->close(); @@ -248,7 +248,7 @@ class events_test extends \advanced_testcase { // Save the feedback. $sink = $this->redirectEvents(); - feedback_save_tmp_values($completed, false); + feedback_save_tmp_values($completed); $events = $sink->get_events(); $event = array_pop($events); // Response submitted feedback event. $sink->close(); diff --git a/mod/feedback/tests/item_test.php b/mod/feedback/tests/item_test.php index 7b7cfe4eb58..8541f5a71c2 100644 --- a/mod/feedback/tests/item_test.php +++ b/mod/feedback/tests/item_test.php @@ -52,7 +52,7 @@ class item_test extends advanced_testcase { $completed = $DB->get_record('feedback_completedtmp', ['id' => $completedid], '*', MUST_EXIST); $value = (object)['course_id' => $course->id, 'item' => $item->id, 'completed' => $completedid, 'value' => $valuetext]; $DB->insert_record('feedback_valuetmp', $value); - feedback_save_tmp_values($completed, false); + feedback_save_tmp_values($completed); // Set get_analysed() method accessibility. $itemclass = feedback_get_item_class('textarea');