From 2d124e8f4ea2440d82a9fd2b80225f1b9246d3bf Mon Sep 17 00:00:00 2001 From: sam marshall Date: Fri, 6 Sep 2013 13:01:50 +0100 Subject: [PATCH] MDL-41446 Completion: Incorrectly marks complete when grade data present with no actual grade --- lib/completionlib.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/completionlib.php b/lib/completionlib.php index 6260c50d033..95a141b4bab 100644 --- a/lib/completionlib.php +++ b/lib/completionlib.php @@ -1195,9 +1195,12 @@ class completion_info { * @return int Completion state e.g. COMPLETION_INCOMPLETE */ public static function internal_get_grade_state($item, $grade) { - if (!$grade) { + // If no grade is supplied or the grade doesn't have an actual value, then + // this is not complete. + if (!$grade || (is_null($grade->finalgrade) && is_null($grade->rawgrade))) { return COMPLETION_INCOMPLETE; } + // Conditions to show pass/fail: // a) Grade has pass mark (default is 0.00000 which is boolean true so be careful) // b) Grade is visible (neither hidden nor hidden-until)