diff --git a/plugins/assign/assign_plugin.php b/plugins/assign/assign_plugin.php index 38abab3..b540594 100755 --- a/plugins/assign/assign_plugin.php +++ b/plugins/assign/assign_plugin.php @@ -55,7 +55,7 @@ function block_grade_me_query_assign($gradebookusers) { LEFT JOIN {assign_grades} ag ON ag.assignment = asgn_sub.assignment AND ag.userid = asgn_sub.userid AND asgn_sub.attemptnumber = ag.attemptnumber WHERE asgn_sub.userid $insql AND asgn_sub.status = 'submitted' AND a.grade <> 0 - AND (ag.grade = -1 OR asgn_sub.timemodified >= ag.timemodified)"; + AND (ag.id IS NULL OR asgn_sub.timemodified >= ag.timemodified)"; return array($query, $inparams); } diff --git a/tests/grade_me_test.php b/tests/grade_me_test.php index 6a9d976..6a1babc 100644 --- a/tests/grade_me_test.php +++ b/tests/grade_me_test.php @@ -485,8 +485,15 @@ public function test_query_assign() { $rec3->submissionid = '7'; $rec3->userid = $users[0]->id; $rec3->timesubmitted = '6'; - - $expected = array($rec->id => $rec, $rec2->id => $rec2, $rec3->id => $rec3); + + $rec4 = new stdClass(); + $rec4->id = $plugins[1]->id; + $rec4->courseid = $courses[0]->id; + $rec4->submissionid = '1'; + $rec4->userid = $users[0]->id; + $rec4->timesubmitted = '1'; + + $expected = array($rec->id => $rec, $rec2->id => $rec2, $rec3->id => $rec3, $rec4->id => $rec4); $actual = $DB->get_records_sql($sql, $insqlparams); $this->assertEquals($expected, $actual); $this->assertFalse(block_grade_me_query_assign(array()));