diff --git a/mod/assign/gradingtable.php b/mod/assign/gradingtable.php index 2e2a367851c51..44c392c97c7f6 100644 --- a/mod/assign/gradingtable.php +++ b/mod/assign/gradingtable.php @@ -140,19 +140,22 @@ public function __construct(assign $assignment, $where = 'u.id ' . $userwhere; $params = array_merge($params, $userparams); - if ($filter == ASSIGN_FILTER_SUBMITTED) { - $where .= ' AND s.timecreated > 0 '; - } - if ($filter == ASSIGN_FILTER_REQUIRE_GRADING) { - $where .= ' AND (s.timemodified IS NOT NULL AND - s.status = :submitted AND - (s.timemodified > g.timemodified OR g.timemodified IS NULL))'; - $params['submitted'] = ASSIGN_SUBMISSION_STATUS_SUBMITTED; - } - if (strpos($filter, ASSIGN_FILTER_SINGLE_USER) === 0) { - $userfilter = (int) array_pop(explode('=', $filter)); - $where .= ' AND (u.id = :userid)'; - $params['userid'] = $userfilter; + // The filters do not make sense when there are no submissions, so do not apply them. + if ($this->assignment->is_any_submission_plugin_enabled()) { + if ($filter == ASSIGN_FILTER_SUBMITTED) { + $where .= ' AND s.timecreated > 0 '; + } + if ($filter == ASSIGN_FILTER_REQUIRE_GRADING) { + $where .= ' AND (s.timemodified IS NOT NULL AND + s.status = :submitted AND + (s.timemodified > g.timemodified OR g.timemodified IS NULL))'; + $params['submitted'] = ASSIGN_SUBMISSION_STATUS_SUBMITTED; + } + if (strpos($filter, ASSIGN_FILTER_SINGLE_USER) === 0) { + $userfilter = (int) array_pop(explode('=', $filter)); + $where .= ' AND (u.id = :userid)'; + $params['userid'] = $userfilter; + } } $this->set_sql($fields, $from, $where, $params);