af4be21ee75a2af15992dffa70e4b104618934e9
[moodle.git] / mod / feedback / mod_form.php
1 <?php // $Id$
2 /**
3 * print the form to add or edit a feedback-instance
4 *
5 * @version $Id$
6 * @author Andreas Grabs
7 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
8 * @package feedback
9 */
11 require_once ($CFG->dirroot.'/course/moodleform_mod.php');
13 class mod_feedback_mod_form extends moodleform_mod {
15     function definition() {
16         global $CFG;
18         $mform    =& $this->_form;
20         //-------------------------------------------------------------------------------
21         $mform->addElement('header', 'general', get_string('general', 'form'));
22         
23         $mform->addElement('text', 'name', get_string('name', 'feedback'), array('size'=>'64'));
24         $mform->setType('name', PARAM_TEXT);
25         $mform->addRule('name', null, 'required', null, 'client');
27         $mform->addElement('htmleditor', 'summary', get_string("description", "feedback"), array('rows' => 20));
28         $mform->setType('summary', PARAM_RAW);
29         $mform->addRule('summary', null, 'required', null, 'client');
30         $mform->setHelpButton('summary', array('writing', 'questions', 'richtext'), false, 'editorhelpbutton');
32         //-------------------------------------------------------------------------------
33         $mform->addElement('header', 'timinghdr', get_string('timing', 'form'));
34         
35         $enableopengroup = array();
36         $enableopengroup[] =& $mform->createElement('checkbox', 'openenable', get_string('feedbackopen', 'feedback'));
37         $enableopengroup[] =& $mform->createElement('date_time_selector', 'timeopen', '');
38         $mform->addGroup($enableopengroup, 'enableopengroup', get_string('feedbackopen', 'feedback'), ' ', false);
39         $mform->setHelpButton('enableopengroup', array('timeopen', get_string('feedbackopens', 'feedback'), 'feedback'));
40         $mform->disabledIf('enableopengroup', 'openenable', 'notchecked');
41         
42         $enableclosegroup = array();
43         $enableclosegroup[] =& $mform->createElement('checkbox', 'closeenable', get_string('feedbackclose', 'feedback'));
44         $enableclosegroup[] =& $mform->createElement('date_time_selector', 'timeclose', '');
45         $mform->addGroup($enableclosegroup, 'enableclosegroup', get_string('feedbackclose', 'feedback'), ' ', false);
46         $mform->setHelpButton('enableclosegroup', array('timeclose', get_string('feedbackcloses', 'feedback'), 'feedback'));
47         $mform->disabledIf('enableclosegroup', 'closeenable', 'notchecked');
48         
49         //-------------------------------------------------------------------------------
50         $mform->addElement('header', 'feedbackhdr', get_string('feedback_options', 'feedback'));
51         
52         $options=array();
53         $options[1]  = get_string('anonymous', 'feedback');
54         $options[2]  = get_string('non_anonymous', 'feedback');
55         $mform->addElement('select', 'anonymous', get_string('anonymous_edit', 'feedback'), $options);
56         
57         $mform->addElement('selectyesno', 'publish_stats', get_string('publish_stats_on_students', 'feedback'));
58         $mform->addElement('selectyesno', 'email_notification', get_string('email_notification', 'feedback'));
59         $mform->setHelpButton('email_notification', array('emailnotification', get_string('email_notification', 'feedback'), 'feedback'));
60         
61         // check if there is existing responses to this feedback
62         if (is_numeric($this->_instance) AND $this->_instance and $feedback = get_record("feedback", "id", $this->_instance)) {
63             $completedFeedbackCount = feedback_get_completeds_group_count($feedback);
64         } else {
65             $completedFeedbackCount = false;
66         }
67         
68         if($completedFeedbackCount) {
69             $multiple_submit_value = $feedback->multiple_submit ? get_string('yes') : get_string('no');
70             $mform->addElement('text', 'multiple_submit_static', get_string('multiple_submit', 'feedback'), array('size'=>'4','disabled'=>'disabled', 'value'=>$multiple_submit_value));
71             $mform->addElement('hidden', 'multiple_submit', '');
72             $mform->setHelpButton('multiple_submit_static', array('multiplesubmit', get_string('multiple_submit', 'feedback'), 'feedback'));
73         }else {
74             $mform->addElement('selectyesno', 'multiple_submit', get_string('multiple_submit', 'feedback'));
75             $mform->setHelpButton('multiple_submit', array('multiplesubmit', get_string('multiple_submit', 'feedback'), 'feedback'));
76         }
77         $mform->addElement('selectyesno', 'autonumbering', get_string('autonumbering', 'feedback'));
78         $mform->setHelpButton('autonumbering', array('autonumbering', get_string('autonumbering', 'feedback'), 'feedback'));
79         
80         //-------------------------------------------------------------------------------
81         $mform->addElement('header', 'aftersubmithdr', get_string('after_submit', 'feedback'));
82         
83         $mform->addElement('htmleditor', 'page_after_submit', get_string("page_after_submit", "feedback"), array('rows' => 20));
84         $mform->setType('page_after_submit', PARAM_RAW);
85         $mform->setHelpButton('page_after_submit', array('writing', 'questions', 'richtext'), false, 'editorhelpbutton');
86         //-------------------------------------------------------------------------------
87         $features = new stdClass;
88         $features->groups = true;
89         $features->groupings = true;
90         $features->groupmembersonly = true;
91         $this->standard_coursemodule_elements($features);
92         //-------------------------------------------------------------------------------
93         // buttons
94         $this->add_action_buttons();
95     }
97     function data_preprocessing(&$default_values){
98         if (empty($default_values['timeopen'])) {
99             $default_values['openenable'] = 0;
100         } else {
101             $default_values['openenable'] = 1;
102         }
103         if (empty($default_values['timeclose'])) {
104             $default_values['closeenable'] = 0;
105         } else {
106             $default_values['closeenable'] = 1;
107         }
109     }
111     function validation($data){
113     }
116 ?>