MDL-43151 Assign: More validation in mod_form.
authorDamyon Wiese <damyon@moodle.com>
Mon, 21 Jul 2014 05:41:51 +0000 (13:41 +0800)
committerDamyon Wiese <damyon@moodle.com>
Mon, 21 Jul 2014 05:41:51 +0000 (13:41 +0800)
Add check to mod_form to prevent "reopen until pass" and "blind marking" both being on

mod/assign/lang/en/assign.php
mod/assign/locallib.php
mod/assign/mod_form.php

index a911fc8..2d37dd2 100644 (file)
@@ -313,6 +313,7 @@ $string['quickgrading'] = 'Quick grading';
 $string['quickgradingresult'] = 'Quick grading';
 $string['quickgradingchangessaved'] = 'The grade changes were saved';
 $string['quickgrading_help'] = 'Quick grading allows you to assign grades (and outcomes) directly in the submissions table. Quick grading is not compatible with advanced grading and is not recommended when there are multiple markers.';
+$string['reopenuntilpassincompatiblewithblindmarking'] = 'Reopen until pass option is incompatible with blind marking, because the grades are not released to the gradebook until the student identities are revealed.';
 $string['requiresubmissionstatement'] = 'Require that students accept the submission statement';
 $string['requiresubmissionstatement_help'] = 'Require that students accept the submission statement for all submissions to this assignment.';
 $string['requireallteammemberssubmit'] = 'Require all group members submit';
index fa88e94..a1776c5 100644 (file)
@@ -6453,7 +6453,7 @@ class assign {
             // Check the gradetopass from the gradebook.
             $gradeitem = $this->get_grade_item();
             if ($gradeitem) {
-                $gradegrade = grade_grade::fetch(array('userid'=>$userid, 'itemid'=>$gradeitem->id));
+                $gradegrade = grade_grade::fetch(array('userid' => $userid, 'itemid' => $gradeitem->id));
 
                 if ($gradegrade && !$gradegrade->is_passed()) {
                     $shouldreopen = true;
index eead2ae..5fd4ccd 100644 (file)
@@ -241,6 +241,9 @@ class mod_assign_mod_form extends moodleform_mod {
                 $errors['cutoffdate'] = get_string('cutoffdatefromdatevalidation', 'assign');
             }
         }
+        if ($data['blindmarking'] && $data['attemptreopenmethod'] == ASSIGN_ATTEMPT_REOPEN_METHOD_UNTILPASS) {
+            $errors['attemptreopenmethod'] = get_string('reopenuntilpassincompatiblewithblindmarking', 'assign');
+        }
 
         return $errors;
     }