MDL-58230 mod_feedback: New WS mod_feedback_get_finished_responses

This commit is contained in:
Juan Leyva
2017-03-28 22:50:36 +02:00
committed by David Monllao
parent 216ea39be7
commit 52f57996f4
6 changed files with 202 additions and 8 deletions
+22 -7
View File
@@ -253,6 +253,22 @@ class mod_feedback_completion extends mod_feedback_structure {
return $this->valuestmp;
}
/**
* Retrieves responses from an finished attempt.
*
* @return array the responses (from the feedback_value table)
* @since Moodle 3.3
*/
public function get_finished_responses() {
global $DB;
$responses = array();
if ($this->completed) {
$responses = $DB->get_records('feedback_value', ['completed' => $this->completed->id]);
}
return $responses;
}
/**
* Returns all completed values for this feedback or just a value for an item
* @param stdClass $item
@@ -261,11 +277,10 @@ class mod_feedback_completion extends mod_feedback_structure {
protected function get_values($item = null) {
global $DB;
if ($this->values === null) {
if ($this->completed) {
$this->values = $DB->get_records_menu('feedback_value',
['completed' => $this->completed->id], '', 'item, value');
} else {
$this->values = array();
$this->values = array();
$responses = $this->get_finished_responses();
foreach ($responses as $r) {
$this->values[$r->item] = $r->value;
}
}
if ($item) {
@@ -556,9 +571,9 @@ class mod_feedback_completion extends mod_feedback_structure {
*
* @return stdClass record from feedback_completed or false if not found
*/
protected function find_last_completed() {
public function find_last_completed() {
global $USER, $DB;
if (isloggedin() || isguestuser()) {
if (!isloggedin() || isguestuser()) {
// Not possible to retrieve completed feedback for guests.
return false;
}