Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MDL-32759 Assignment: Grades will not be scaled for new assignment mo…

…dule, and added warning message for user
  • Loading branch information...
commit dea75f643d797bed90d43fff91e49bb839502648 1 parent daaf84e
@rajeshtaneja rajeshtaneja authored
View
3  lib/grade/grade_item.php
@@ -742,7 +742,8 @@ public function adjust_raw_grade($rawgrade, $rawmin, $rawmax) {
// Standardise score to the new grade range
// NOTE: this is not compatible with current assignment grading
- if ($this->itemmodule != 'assignment' and ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
+ $isassignmentmodule = ($this->itemmodule == 'assignment') || ($this->itemmodule == 'assign');
+ if (!$isassignmentmodule && ($rawmin != $this->grademin or $rawmax != $this->grademax)) {
$rawgrade = grade_grade::standardise_score($rawgrade, $rawmin, $rawmax, $this->grademin, $this->grademax);
}
View
1  mod/assign/lang/en/assign.php
@@ -65,6 +65,7 @@
$string['batchoperationlock'] = 'lock submissions';
$string['batchoperationunlock'] = 'unlock submissions';
$string['batchoperationreverttodraft'] = 'revert submissions to draft';
+$string['changegradewarning'] = 'This assignment has graded submissions and changing the grade will not automatically re-calculate existing submission grades. You must re-grade all existing submissions, if you wish to change the grade.';
$string['comment'] = 'Comment';
$string['conversionexception'] = 'Could not convert assignment. Exception was: {$a}.';
$string['configshowrecentsubmissions'] = 'Everyone can see notifications of submissions in recent activity reports.';
View
17 mod/assign/mod_form.php
@@ -45,7 +45,7 @@ class mod_assign_mod_form extends moodleform_mod {
* @return void
*/
function definition() {
- global $CFG, $DB;
+ global $CFG, $DB, $PAGE;
$mform = $this->_form;
$mform->addElement('header', 'general', get_string('general', 'form'));
@@ -120,6 +120,21 @@ function definition() {
$this->standard_coursemodule_elements();
$this->add_action_buttons();
+
+ // Add warning popup/noscript tag, if grades are changed by user.
+ if ($mform->elementExists('grade') && !empty($this->_instance) && $DB->record_exists_select('assign_grades', 'assignment = ? AND grade <> -1', array($this->_instance))) {
+ $module = array(
+ 'name' => 'mod_assign',
+ 'fullpath' => '/mod/assign/module.js',
+ 'requires' => array('node', 'event'),
+ 'strings' => array(array('changegradewarning', 'mod_assign'))
+ );
+ $PAGE->requires->js_init_call('M.mod_assign.init_grade_change', null, false, $module);
+
+ // Add noscript tag in case
+ $noscriptwarning = $mform->createElement('static', 'warning', null, html_writer::tag('noscript', get_string('changegradewarning', 'mod_assign')));
+ $mform->insertElementBefore($noscriptwarning, 'grade');
+ }
}
/**
View
12 mod/assign/module.js
@@ -127,4 +127,16 @@ M.mod_assign.init_grading_options = function(Y) {
});
}
});
+};
+
+M.mod_assign.init_grade_change = function(Y) {
+ var gradenode = Y.one('#id_grade');
+ if (gradenode) {
+ var originalvalue = gradenode.get('value');
+ gradenode.on('change', function() {
+ if (gradenode.get('value') != originalvalue) {
+ alert(M.str.mod_assign.changegradewarning);
+ }
+ });
+ }
};
Please sign in to comment.
Something went wrong with that request. Please try again.