diff --git a/.upgradenotes/MDL-82857-2024082105091693.yml b/.upgradenotes/MDL-82857-2024082105091693.yml new file mode 100644 index 00000000000..5c4f71931cf --- /dev/null +++ b/.upgradenotes/MDL-82857-2024082105091693.yml @@ -0,0 +1,7 @@ +issueNumber: MDL-82857 +notes: + mod_assign: + - message: >- + The mod_assign_grading_options_form class has been deprecated since it + is no longer used. + type: deprecated diff --git a/mod/assign/classes/form/grading_options_temp_form.php b/mod/assign/classes/form/grading_options_temp_form.php new file mode 100644 index 00000000000..c8d86dbe6ac --- /dev/null +++ b/mod/assign/classes/form/grading_options_temp_form.php @@ -0,0 +1,114 @@ +. + +/** + * This file contains the temporary form used on the submissions page to apply assignment grading options. + * + * @package mod_assign + * @copyright 2024 Mihail Geshoski + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace mod_assign\form; + +defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.'); + +require_once($CFG->libdir.'/formslib.php'); +require_once($CFG->dirroot . '/mod/assign/locallib.php'); + +/** + * Assignment grading options temporary form. + * + * This form class is a copy of mod_assign_grading_options_form. The only purpose of this form is to be temporarily used + * on the submission page until the gradual removal of the current form elements is completed. After that, this form + * class will be removed. + * + * @package mod_assign + * @copyright 2024 Mihail Geshoski + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grading_options_temp_form extends \moodleform { + /** + * Define this form - called from the parent constructor. + */ + public function definition() { + $mform = $this->_form; + $instance = $this->_customdata; + + $mform->disable_form_change_checker(); + + $mform->addElement('header', 'general', get_string('gradingoptions', 'assign')); + // Visible elements. + $options = array(10 => '10', 20 => '20', 50 => '50', 100 => '100', -1 => get_string('all')); + $maxperpage = get_config('assign', 'maxperpage'); + if (isset($maxperpage) && $maxperpage != -1) { + unset($options[-1]); + foreach ($options as $val) { + if ($val > $maxperpage) { + unset($options[$val]); + } + } + } + $mform->addElement('select', 'perpage', get_string('assignmentsperpage', 'assign'), $options); + $options = array('' => get_string('filternone', 'assign'), + ASSIGN_FILTER_NOT_SUBMITTED => get_string('filternotsubmitted', 'assign'), + ASSIGN_FILTER_DRAFT => get_string('filterdraft', 'assign'), + ASSIGN_FILTER_SUBMITTED => get_string('filtersubmitted', 'assign'), + ASSIGN_FILTER_REQUIRE_GRADING => get_string('filterrequiregrading', 'assign'), + ASSIGN_FILTER_GRANTED_EXTENSION => get_string('filtergrantedextension', 'assign')); + if ($instance['submissionsenabled']) { + $mform->addElement('select', 'filter', get_string('filter', 'assign'), $options); + } + if (!empty($instance['markingallocationopt'])) { + $markingfilter = get_string('markerfilter', 'assign'); + $mform->addElement('select', 'markerfilter', $markingfilter, $instance['markingallocationopt']); + } + // Quickgrading. + if ($instance['showquickgrading']) { + $mform->addElement('checkbox', 'quickgrading', get_string('quickgrading', 'assign')); + $mform->addHelpButton('quickgrading', 'quickgrading', 'assign'); + $mform->setDefault('quickgrading', $instance['quickgrading']); + } + + // Show active/suspended user option. + if ($instance['showonlyactiveenrolopt']) { + $mform->addElement('checkbox', 'showonlyactiveenrol', get_string('showonlyactiveenrol', 'grades')); + $mform->addHelpButton('showonlyactiveenrol', 'showonlyactiveenrol', 'grades'); + $mform->setDefault('showonlyactiveenrol', $instance['showonlyactiveenrol']); + } + + // Place student downloads in seperate folders. + if ($instance['submissionsenabled']) { + $mform->addElement('checkbox', 'downloadasfolders', get_string('downloadasfolders', 'assign')); + $mform->addHelpButton('downloadasfolders', 'downloadasfolders', 'assign'); + $mform->setDefault('downloadasfolders', $instance['downloadasfolders']); + } + + // Hidden params. + $mform->addElement('hidden', 'contextid', $instance['contextid']); + $mform->setType('contextid', PARAM_INT); + $mform->addElement('hidden', 'id', $instance['cm']); + $mform->setType('id', PARAM_INT); + $mform->addElement('hidden', 'userid', $instance['userid']); + $mform->setType('userid', PARAM_INT); + $mform->addElement('hidden', 'action', 'saveoptions'); + $mform->setType('action', PARAM_ALPHA); + + // Buttons. + $this->add_action_buttons(false, get_string('updatetable', 'assign')); + } +} + diff --git a/mod/assign/gradingoptionsform.php b/mod/assign/gradingoptionsform.php index 64b0ed881c1..0699d16f4c5 100644 --- a/mod/assign/gradingoptionsform.php +++ b/mod/assign/gradingoptionsform.php @@ -31,15 +31,31 @@ require_once($CFG->dirroot . '/mod/assign/locallib.php'); /** * Assignment grading options form * + * @deprecated since 4.5 * @package mod_assign * @copyright 2012 NetSpot {@link http://www.netspot.com.au} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +#[\core\attribute\deprecated( + replacement: null, + since: '4.5', + reason: 'It is no longer used.', + mdl: 'MDL-82857', +)] class mod_assign_grading_options_form extends moodleform { /** * Define this form - called from the parent constructor. + * + * @deprecated since 4.5 */ + #[\core\attribute\deprecated( + replacement: null, + since: '4.5', + reason: 'It is no longer used.', + mdl: 'MDL-82857', + )] public function definition() { + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); $mform = $this->_form; $instance = $this->_customdata; @@ -71,6 +87,10 @@ class mod_assign_grading_options_form extends moodleform { $markingfilter = get_string('markerfilter', 'assign'); $mform->addElement('select', 'markerfilter', $markingfilter, $instance['markingallocationopt']); } + if (!empty($instance['markingworkflowopt'])) { + $workflowfilter = get_string('workflowfilter', 'assign'); + $mform->addElement('select', 'workflowfilter', $workflowfilter, $instance['markingworkflowopt']); + } // Quickgrading. if ($instance['showquickgrading']) { $mform->addElement('checkbox', 'quickgrading', get_string('quickgrading', 'assign')); diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index ec9d2e2ed53..25cca8e7bd8 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -4542,7 +4542,7 @@ class assign { 'downloadasfolders' => $downloadasfolders); $classoptions = array('class'=>'gradingoptionsform'); - $gradingoptionsform = new mod_assign_grading_options_form(null, + $gradingoptionsform = new \mod_assign\form\grading_options_temp_form(null, $gradingoptionsformparams, 'post', '', @@ -7416,7 +7416,7 @@ class assign { 'showonlyactiveenrolopt'=>$showonlyactiveenrolopt, 'showonlyactiveenrol' => $this->show_only_active_users(), 'downloadasfolders' => get_user_preferences('assign_downloadasfolders', 1)); - $mform = new mod_assign_grading_options_form(null, $gradingoptionsparams); + $mform = new mod_assign\form\grading_options_temp_form(null, $gradingoptionsparams); if ($formdata = $mform->get_data()) { set_user_preference('assign_perpage', $formdata->perpage); if (isset($formdata->filter)) {