MDL-27459 Completion: When ratings off, disallow grade completion
authorsam marshall <s.marshall@open.ac.uk>
Tue, 8 Apr 2014 10:55:46 +0000 (11:55 +0100)
committersam marshall <s.marshall@open.ac.uk>
Tue, 29 Apr 2014 09:28:34 +0000 (10:28 +0100)
For activities that use ratings, there is no grade unless ratings
are enabled. The completion system still lets you select 'complete
when user gets a grade', which leads to later errors.

This change simply disables the 'completion on grade' field if
ratings are enabled for the activity, but not turned on in the form.

course/moodleform_mod.php

index 7dc4436..70d8fdc 100644 (file)
@@ -496,6 +496,11 @@ abstract class moodleform_mod extends moodleform {
                 $mform->disabledIf('completionusegrade', 'completion', 'ne', COMPLETION_TRACKING_AUTOMATIC);
                 $mform->addHelpButton('completionusegrade', 'completionusegrade', 'completion');
                 $gotcompletionoptions = true;
+
+                // If using the rating system, there is no grade unless ratings are enabled.
+                if ($this->_features->rating) {
+                    $mform->disabledIf('completionusegrade', 'assessed', 'eq', 0);
+                }
             }
 
             // Automatic completion according to module-specific rules