From af6a89114411067396fd8d78cf3a40d7d75fa07c Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Wed, 5 Apr 2017 15:45:16 +0800 Subject: [PATCH] MDL-56370 mod_feedback: allow to restore values from last attempt --- mod/feedback/classes/completion.php | 15 +++++++++++++++ mod/feedback/complete.php | 1 + mod/feedback/lib.php | 2 -- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mod/feedback/classes/completion.php b/mod/feedback/classes/completion.php index 3477629d047..498a15a38cc 100644 --- a/mod/feedback/classes/completion.php +++ b/mod/feedback/classes/completion.php @@ -401,6 +401,21 @@ class mod_feedback_completion extends mod_feedback_structure { return $this->completedtmp; } + /** + * If user has already completed the feedback, create the temproray values from last completed attempt + * + * @return stdClass record from feedback_completedtmp or false if not found + */ + public function create_completed_tmp_from_last_completed() { + if (!$this->get_current_completed_tmp()) { + $lastcompleted = $this->find_last_completed(); + if ($lastcompleted) { + $this->completedtmp = feedback_set_tmp_values($lastcompleted); + } + } + return $this->completedtmp; + } + /** * Saves unfinished response to the temporary table * diff --git a/mod/feedback/complete.php b/mod/feedback/complete.php index dbe9cd4cbf6..83259279c80 100644 --- a/mod/feedback/complete.php +++ b/mod/feedback/complete.php @@ -92,6 +92,7 @@ $cansubmit = $feedbackcompletion->can_submit(); // Initialise the form processing feedback completion. if (!$feedbackcompletion->is_empty() && $cansubmit) { + $feedbackcompletion->create_completed_tmp_from_last_completed(); $form = new mod_feedback_complete_form(mod_feedback_complete_form::MODE_COMPLETE, $feedbackcompletion, 'feedback_complete_form', array('gopage' => $gopage)); if ($form->is_cancelled()) { diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index b445937701d..2c72bfa92c7 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -1881,8 +1881,6 @@ function feedback_print_item_show_value($item, $value = false) { */ function feedback_set_tmp_values($feedbackcompleted) { global $DB; - debugging('Function feedback_set_tmp_values() is deprecated and since it is ' - . 'no longer used in mod_feedback', DEBUG_DEVELOPER); //first we create a completedtmp $tmpcpl = new stdClass();