mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-82857 mod_assign: Temporary assignment grading options form
Creates a temporary assignment grading options form class as a replacement for mod_assign_grading_options_form, which will be deprecated but must remain unchanged to avoid introducing any unwanted behaviour in case an external code is currently using it. This temporary form is intended for exclusive use on the assignment submissions page during the gradual migration of form elements. It will be removed from the core once the migration process is complete.
This commit is contained in:
parent
e0a9cf2288
commit
975712437f
114
mod/assign/classes/form/grading_options_temp_form.php
Normal file
114
mod/assign/classes/form/grading_options_temp_form.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* This file contains the temporary form used on the submissions page to apply assignment grading options.
|
||||
*
|
||||
* @package mod_assign
|
||||
* @copyright 2024 Mihail Geshoski <mihail@moodle.com>
|
||||
* @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 <mihail@moodle.com>
|
||||
* @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'));
|
||||
}
|
||||
}
|
||||
|
@ -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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user