MDL-58217 mod_feedback: API changes to allow generators

We include a new function set_date at item level so we can add the data
instead using the forms.
This commit is contained in:
Juan Leyva
2017-03-10 10:51:32 +01:00
parent 3c45d26f58
commit 5bbada53e3
8 changed files with 27 additions and 7 deletions
+13
View File
@@ -55,12 +55,25 @@ abstract class feedback_item_base {
* @return bool
*/
public function get_data() {
if ($this->item !== null) {
return true;
}
if ($this->item = $this->item_form->get_data()) {
return true;
}
return false;
}
/**
* Set the item data (to be used by data generators).
*
* @param stdClass $itemdata the item data to set
* @since Moodle 3.3
*/
public function set_data($itemdata) {
$this->item = $itemdata;
}
/**
* Creates and returns an instance of the form for editing the item
*
+2 -1
View File
@@ -81,9 +81,10 @@ class feedback_item_info extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -89,9 +89,10 @@ class feedback_item_label extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -71,9 +71,10 @@ class feedback_item_multichoice extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -76,9 +76,10 @@ class feedback_item_multichoicerated extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -76,9 +76,10 @@ class feedback_item_numeric extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -76,9 +76,10 @@ class feedback_item_textarea extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item
+2 -1
View File
@@ -73,9 +73,10 @@ class feedback_item_textfield extends feedback_item_base {
public function save_item() {
global $DB;
if (!$item = $this->item_form->get_data()) {
if (!$this->get_data()) {
return false;
}
$item = $this->item;
if (isset($item->clone_item) AND $item->clone_item) {
$item->id = ''; //to clone this item