From c0dd0e354346f080dc60dce7a1ae817178de6966 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Tue, 3 May 2016 15:31:37 +0800 Subject: [PATCH] MDL-41640 mod_feedback: info question should default to course Also hide "response time" from options in case of anonymous feedback --- mod/feedback/item/info/info_form.php | 7 ++----- mod/feedback/item/info/lib.php | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mod/feedback/item/info/info_form.php b/mod/feedback/item/info/info_form.php index daa61a273f9..52b9c5dd7e9 100644 --- a/mod/feedback/item/info/info_form.php +++ b/mod/feedback/item/info/info_form.php @@ -25,6 +25,7 @@ class feedback_info_form extends feedback_item_form { $common = $this->_customdata['common']; $positionlist = $this->_customdata['positionlist']; $position = $this->_customdata['position']; + $presentationoptions = $this->_customdata['presentationoptions']; $mform =& $this->_form; @@ -41,14 +42,10 @@ class feedback_info_form extends feedback_item_form { get_string('item_label', 'feedback'), array('size'=>FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE, 'maxlength'=>255)); - $options=array(); - $options[1] = get_string('responsetime', 'feedback'); - $options[2] = get_string('course'); - $options[3] = get_string('coursecategory'); $this->infotype = &$mform->addElement('select', 'presentation', get_string('infotype', 'feedback'), - $options); + $presentationoptions); parent::definition(); $this->set_data($item); diff --git a/mod/feedback/item/info/lib.php b/mod/feedback/item/info/lib.php index 50e573c14cd..2e47674e7a9 100644 --- a/mod/feedback/item/info/lib.php +++ b/mod/feedback/item/info/lib.php @@ -48,7 +48,7 @@ class feedback_item_info extends feedback_item_base { //the elements for position dropdownlist $positionlist = array_slice(range(0, $i_formselect_last), 1, $i_formselect_last, true); - $item->presentation = empty($item->presentation) ? 1 : $item->presentation; + $item->presentation = empty($item->presentation) ? self::MODE_COURSE : $item->presentation; $item->required = 0; //all items for dependitem @@ -59,12 +59,23 @@ class feedback_item_info extends feedback_item_base { 'items'=>$feedbackitems, 'feedback'=>$feedback->id); + // Options for the 'presentation' select element. + $presentationoptions = array(); + if ($feedback->anonymous == FEEDBACK_ANONYMOUS_NO || $item->presentation == self::MODE_RESPONSETIME) { + // "Response time" is hidden anyway in case of anonymous feedback, no reason to offer this option. + // However if it was already selected leave it in the dropdown. + $presentationoptions[self::MODE_RESPONSETIME] = get_string('responsetime', 'feedback'); + } + $presentationoptions[self::MODE_COURSE] = get_string('course'); + $presentationoptions[self::MODE_CATEGORY] = get_string('coursecategory'); + //build the form $this->item_form = new feedback_info_form('edit_item.php', array('item'=>$item, 'common'=>$commonparams, 'positionlist'=>$positionlist, - 'position' => $position)); + 'position' => $position, + 'presentationoptions' => $presentationoptions)); } public function save_item() {