mirror of
https://github.com/moodle/moodle.git
synced 2025-08-09 19:06:41 +02:00
MDL-54105 mod_assign: Refactored the way that the default is set
Improved the way the default is set, now requiring less code and being more readable
This commit is contained in:
parent
9a72323f63
commit
3590629dca
2 changed files with 18 additions and 31 deletions
|
@ -60,8 +60,8 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group {
|
||||||
/** @var int $currentscaleid The current scale id */
|
/** @var int $currentscaleid The current scale id */
|
||||||
public $currentscaleid = null;
|
public $currentscaleid = null;
|
||||||
|
|
||||||
/** @var ?string $currentgradetype The current gradetype - can either be 'none', 'scale', or 'point' */
|
/** @var string $currentgradetype The current gradetype - can either be 'none', 'scale', or 'point' */
|
||||||
public $currentgradetype = null;
|
public $currentgradetype = 'none';
|
||||||
|
|
||||||
/** @var boolean $useratings Set to true if the activity is using ratings, false otherwise */
|
/** @var boolean $useratings Set to true if the activity is using ratings, false otherwise */
|
||||||
public $useratings = false;
|
public $useratings = false;
|
||||||
|
@ -514,30 +514,18 @@ class MoodleQuickForm_modgrade extends MoodleQuickForm_group {
|
||||||
// This means that the subelements data (inc const and default values) can be overridden by form code.
|
// This means that the subelements data (inc const and default values) can be overridden by form code.
|
||||||
// So - when we call this code really we can't be sure that will be the end value for the element.
|
// So - when we call this code really we can't be sure that will be the end value for the element.
|
||||||
if (!empty($this->_elements)) {
|
if (!empty($this->_elements)) {
|
||||||
if (!$this->currentgradetype) {
|
if (!empty($value)) {
|
||||||
if (!empty($value)) {
|
if ($value < 0) {
|
||||||
$this->currentgradetype = $value < 0 ? 'scale' : 'point';
|
$this->gradetypeformelement->setValue('scale');
|
||||||
} else {
|
$this->scaleformelement->setValue(($value * -1));
|
||||||
$this->currentgradetype = 'none';
|
} else if ($value > 0) {
|
||||||
|
$this->gradetypeformelement->setValue('point');
|
||||||
|
$maxvalue = !empty($this->currentgrade) ? (string)unformat_float($this->currentgrade) : $value;
|
||||||
|
$this->maxgradeformelement->setValue($maxvalue);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
$this->gradetypeformelement->setValue('none');
|
||||||
$this->gradetypeformelement->setValue($this->currentgradetype);
|
$this->maxgradeformelement->setValue(100);
|
||||||
|
|
||||||
switch ($this->currentgradetype) {
|
|
||||||
case 'scale':
|
|
||||||
if (!empty($value)) {
|
|
||||||
$this->currentscaleid = $value * -1;
|
|
||||||
}
|
|
||||||
$this->scaleformelement->setValue($this->currentscaleid);
|
|
||||||
break;
|
|
||||||
case 'point':
|
|
||||||
case 'none':
|
|
||||||
if (!empty($value)) {
|
|
||||||
$maxvalue = !empty($this->currentgrade) ? (string)unformat_float($this->currentgrade) : $value;
|
|
||||||
}
|
|
||||||
$this->maxgradeformelement->setValue($maxvalue ?? 100);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -377,15 +377,16 @@ class mod_assign_mod_form extends moodleform_mod {
|
||||||
$element = $mform->getElement('grade');
|
$element = $mform->getElement('grade');
|
||||||
|
|
||||||
if (property_exists($settings, 'defaultgradetype')) {
|
if (property_exists($settings, 'defaultgradetype')) {
|
||||||
|
$modgradetype = $element->getName() . '[modgrade_type]';
|
||||||
switch ((int)$settings->defaultgradetype) {
|
switch ((int)$settings->defaultgradetype) {
|
||||||
case GRADE_TYPE_NONE :
|
case GRADE_TYPE_NONE :
|
||||||
$element->currentgradetype = 'none';
|
$mform->setDefault($modgradetype, 'none');
|
||||||
break;
|
break;
|
||||||
case GRADE_TYPE_SCALE :
|
case GRADE_TYPE_SCALE :
|
||||||
$element->currentgradetype = 'scale';
|
$mform->setDefault($modgradetype, 'scale');
|
||||||
break;
|
break;
|
||||||
case GRADE_TYPE_VALUE :
|
case GRADE_TYPE_VALUE :
|
||||||
$element->currentgradetype = 'point';
|
$mform->setDefault($modgradetype, 'point');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -395,11 +396,9 @@ class mod_assign_mod_form extends moodleform_mod {
|
||||||
$gradescale = grade_scale::fetch(['id' => (int)$settings->defaultgradescale, 'courseid' => 0]);
|
$gradescale = grade_scale::fetch(['id' => (int)$settings->defaultgradescale, 'courseid' => 0]);
|
||||||
|
|
||||||
if ($gradescale) {
|
if ($gradescale) {
|
||||||
$element->currentscaleid = $gradescale->id;
|
$mform->setDefault($element->getName() . '[modgrade_scale]', $gradescale->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$element->onQuickFormEvent('updateValue', null, $mform);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue