diff --git a/mod/quiz/report/attemptsreport_form.php b/mod/quiz/report/attemptsreport_form.php new file mode 100644 index 00000000000..8814e20af0e --- /dev/null +++ b/mod/quiz/report/attemptsreport_form.php @@ -0,0 +1,91 @@ +. + +/** + * Base class for the settings form for {@link quiz_attempt_report}s. + * + * @package mod_quiz + * @copyright 2012 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + + +defined('MOODLE_INTERNAL') || die(); + +require_once($CFG->libdir . '/formslib.php'); + + +/** + * Base class for the settings form for {@link quiz_attempt_report}s. + * + * @copyright 2012 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +abstract class mod_quiz_attempt_report_form extends moodleform { + + protected function definition() { + $mform = $this->_form; + + $mform->addElement('header', 'preferencespage', + get_string('preferencespage', 'quiz_overview')); + + if (!$this->_customdata['currentgroup']) { + $studentsstring = get_string('participants'); + } else { + $a = new stdClass(); + $a->coursestudent = get_string('participants'); + $a->groupname = groups_get_group_name($this->_customdata['currentgroup']); + if (20 < strlen($a->groupname)) { + $studentsstring = get_string('studentingrouplong', 'quiz_overview', $a); + } else { + $studentsstring = get_string('studentingroup', 'quiz_overview', $a); + } + } + $options = array(); + if (!$this->_customdata['currentgroup']) { + $options[QUIZ_REPORT_ATTEMPTS_ALL] = get_string('optallattempts', 'quiz_overview'); + } + if ($this->_customdata['currentgroup'] || + !is_inside_frontpage($this->_customdata['context'])) { + $options[QUIZ_REPORT_ATTEMPTS_ALL_STUDENTS] = + get_string('optallstudents', 'quiz_overview', $studentsstring); + $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH] = + get_string('optattemptsonly', 'quiz_overview', $studentsstring); + $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH_NO] = + get_string('optnoattemptsonly', 'quiz_overview', $studentsstring); + } + $mform->addElement('select', 'attemptsmode', + get_string('show', 'quiz_overview'), $options); + + $this->definition_inner($mform); + + $mform->addElement('header', 'preferencesuser', + get_string('preferencesuser', 'quiz_overview')); + + $mform->addElement('text', 'pagesize', get_string('pagesize', 'quiz_overview')); + $mform->setType('pagesize', PARAM_INT); + + $mform->addElement('submit', 'submitbutton', + get_string('preferencessave', 'quiz_overview')); + } + + /** + * Add any report-specific options to the form. + * + * @param MoodleQuickForm $mform the form we are building. + */ + protected abstract function definition_inner(MoodleQuickForm $mform); +} diff --git a/mod/quiz/report/overview/overviewsettings_form.php b/mod/quiz/report/overview/overviewsettings_form.php index b51cc9091c9..5c45048ca85 100644 --- a/mod/quiz/report/overview/overviewsettings_form.php +++ b/mod/quiz/report/overview/overviewsettings_form.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); -require_once($CFG->libdir . '/formslib.php'); +require_once($CFG->dirroot . '/mod/quiz/report/attemptsreport_form.php'); /** @@ -34,42 +34,8 @@ require_once($CFG->libdir . '/formslib.php'); * @copyright 2008 Jamie Pratt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class quiz_overview_settings_form extends moodleform { - - protected function definition() { - $mform = $this->_form; - - $mform->addElement('header', 'preferencespage', - get_string('preferencespage', 'quiz_overview')); - - if (!$this->_customdata['currentgroup']) { - $studentsstring = get_string('participants'); - } else { - $a = new stdClass(); - $a->coursestudent = get_string('participants'); - $a->groupname = groups_get_group_name($this->_customdata['currentgroup']); - if (20 < strlen($a->groupname)) { - $studentsstring = get_string('studentingrouplong', 'quiz_overview', $a); - } else { - $studentsstring = get_string('studentingroup', 'quiz_overview', $a); - } - } - $options = array(); - if (!$this->_customdata['currentgroup']) { - $options[QUIZ_REPORT_ATTEMPTS_ALL] = get_string('optallattempts', 'quiz_overview'); - } - if ($this->_customdata['currentgroup'] || - !is_inside_frontpage($this->_customdata['context'])) { - $options[QUIZ_REPORT_ATTEMPTS_ALL_STUDENTS] = - get_string('optallstudents', 'quiz_overview', $studentsstring); - $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH] = - get_string('optattemptsonly', 'quiz_overview', $studentsstring); - $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH_NO] = - get_string('optnoattemptsonly', 'quiz_overview', $studentsstring); - } - $mform->addElement('select', 'attemptsmode', - get_string('show', 'quiz_overview'), $options); - +class quiz_overview_settings_form extends mod_quiz_attempt_report_form { + protected function definition_inner(MoodleQuickForm $mform) { $showattemptsgrp = array(); if ($this->_customdata['qmsubselect']) { $gm = '' . @@ -89,16 +55,7 @@ class quiz_overview_settings_form extends moodleform { get_string('showattempts', 'quiz_overview'), '
', false); } - $mform->addElement('header', 'preferencesuser', - get_string('preferencesuser', 'quiz_overview')); - - $mform->addElement('text', 'pagesize', get_string('pagesize', 'quiz_overview')); - $mform->setType('pagesize', PARAM_INT); - $mform->addElement('selectyesno', 'detailedmarks', get_string('showdetailedmarks', 'quiz_overview')); - - $mform->addElement('submit', 'submitbutton', - get_string('preferencessave', 'quiz_overview')); } } diff --git a/mod/quiz/report/responses/responsessettings_form.php b/mod/quiz/report/responses/responsessettings_form.php index 71eb2255185..f30878b9319 100644 --- a/mod/quiz/report/responses/responsessettings_form.php +++ b/mod/quiz/report/responses/responsessettings_form.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); -require_once($CFG->libdir . '/formslib.php'); +require_once($CFG->dirroot . '/mod/quiz/report/attemptsreport_form.php'); /** @@ -34,42 +34,8 @@ require_once($CFG->libdir . '/formslib.php'); * @copyright 2008 Jean-Michel Vedrine * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class quiz_responses_settings_form extends moodleform { - - protected function definition() { - $mform = $this->_form; - - $mform->addElement('header', 'preferencespage', - get_string('preferencespage', 'quiz_overview')); - - if (!$this->_customdata['currentgroup']) { - $studentsstring = get_string('participants'); - } else { - $a = new stdClass(); - $a->coursestudent = get_string('participants'); - $a->groupname = groups_get_group_name($this->_customdata['currentgroup']); - if (20 < strlen($a->groupname)) { - $studentsstring = get_string('studentingrouplong', 'quiz_overview', $a); - } else { - $studentsstring = get_string('studentingroup', 'quiz_overview', $a); - } - } - $options = array(); - if (!$this->_customdata['currentgroup']) { - $options[QUIZ_REPORT_ATTEMPTS_ALL] = get_string('optallattempts', 'quiz_overview'); - } - if ($this->_customdata['currentgroup'] || - !is_inside_frontpage($this->_customdata['context'])) { - $options[QUIZ_REPORT_ATTEMPTS_ALL_STUDENTS] = - get_string('optallstudents', 'quiz_overview', $studentsstring); - $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH] = - get_string('optattemptsonly', 'quiz_overview', $studentsstring); - $options[QUIZ_REPORT_ATTEMPTS_STUDENTS_WITH_NO] = - get_string('optnoattemptsonly', 'quiz_overview', $studentsstring); - } - $mform->addElement('select', 'attemptsmode', - get_string('show', 'quiz_overview'), $options); - +class quiz_responses_settings_form extends mod_quiz_attempt_report_form { + protected function definition_inner(MoodleQuickForm $mform) { if ($this->_customdata['qmsubselect']) { $gm = '' . quiz_get_grading_option_name($this->_customdata['quiz']->grademethod) . @@ -88,14 +54,5 @@ class quiz_responses_settings_form extends moodleform { get_string('summaryofrightanswer', 'quiz_responses')); $mform->addGroup($colsgroup, null, get_string('include', 'quiz_responses'), '
', false); - - $mform->addElement('header', 'preferencesuser', - get_string('preferencesuser', 'quiz_overview')); - - $mform->addElement('text', 'pagesize', get_string('pagesize', 'quiz_overview')); - $mform->setType('pagesize', PARAM_INT); - - $mform->addElement('submit', 'submitbutton', - get_string('preferencessave', 'quiz_overview')); } }