From 145a300b73379b71a104f296ef779290825df897 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Fri, 13 Jul 2012 11:44:55 +0800 Subject: [PATCH] MDL-34256: Grading table shows users with no submissions with "requires grading" filter Also hide the filters completely if there are no submission plugins enabled (offline assignment). --- mod/assign/gradingoptionsform.php | 4 +++- mod/assign/gradingtable.php | 2 +- mod/assign/locallib.php | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mod/assign/gradingoptionsform.php b/mod/assign/gradingoptionsform.php index cf90c867108..3e6e54b14d5 100644 --- a/mod/assign/gradingoptionsform.php +++ b/mod/assign/gradingoptionsform.php @@ -52,7 +52,9 @@ class mod_assign_grading_options_form extends moodleform { $options = array('' => get_string('filternone', 'assign'), ASSIGN_FILTER_SUBMITTED => get_string('filtersubmitted', 'assign'), ASSIGN_FILTER_REQUIRE_GRADING => get_string('filterrequiregrading', 'assign')); - $mform->addElement('select', 'filter', get_string('filter', 'assign'), $options); + if ($instance['submissionsenabled']) { + $mform->addElement('select', 'filter', get_string('filter', 'assign'), $options); + } // quickgrading if ($instance['showquickgrading']) { diff --git a/mod/assign/gradingtable.php b/mod/assign/gradingtable.php index abd5b7212b1..be0eb3d792f 100644 --- a/mod/assign/gradingtable.php +++ b/mod/assign/gradingtable.php @@ -105,7 +105,7 @@ class assign_grading_table extends table_sql implements renderable { $where .= ' AND s.timecreated > 0 '; } if ($filter == ASSIGN_FILTER_REQUIRE_GRADING) { - $where .= ' AND (s.timemodified > g.timemodified OR g.timemodified IS NULL)'; + $where .= ' AND (s.timemodified > g.timemodified OR (s.timemodified IS NOT NULL AND g.timemodified IS NULL))'; } if (strpos($filter, ASSIGN_FILTER_SINGLE_USER) === 0) { $userfilter = (int) array_pop(explode('=', $filter)); diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 2fc41952b0f..8c538fd71b1 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -1745,6 +1745,7 @@ class assign { array('cm'=>$this->get_course_module()->id, 'contextid'=>$this->context->id, 'userid'=>$USER->id, + 'submissionsenabled'=>$this->is_any_submission_plugin_enabled(), 'showquickgrading'=>$showquickgrading, 'quickgrading'=>$quickgrading), 'post', '', @@ -2673,7 +2674,11 @@ class assign { // Need submit permission to submit an assignment require_capability('mod/assign:grade', $this->context); - $mform = new mod_assign_grading_options_form(null, array('cm'=>$this->get_course_module()->id, 'contextid'=>$this->context->id, 'userid'=>$USER->id, 'showquickgrading'=>false)); + $mform = new mod_assign_grading_options_form(null, array('cm'=>$this->get_course_module()->id, + 'contextid'=>$this->context->id, + 'userid'=>$USER->id, + 'submissionsenabled'=>$this->is_any_submission_plugin_enabled(), + 'showquickgrading'=>false)); if ($formdata = $mform->get_data()) { set_user_preference('assign_perpage', $formdata->perpage); set_user_preference('assign_filter', $formdata->filter);