$string['numberofdraftsubmissions'] = 'Drafts';
$string['numberofparticipants'] = 'Participants';
$string['numberofsubmittedassignments'] = 'Submitted';
+$string['numberofsubmissionsneedgrading'] = 'Needs grading';
$string['offline'] = 'No online submissions required';
$string['overdue'] = '<font color="red">Assignment is overdue by: {$a}</font>';
$string['outlinegrade'] = 'Grade: {$a}';
return count_enrolled_users($this->context, "mod/assign:submit", $currentgroup);
}
+ /**
+ * Load a count of users submissions in the current module that require grading
+ * This means the submission modification time is more recent than the
+ * grading modification time.
+ *
+ * @return int number of matching submissions
+ */
+ public function count_submissions_need_grading() {
+ global $DB;
+
+ $params = array($this->get_course_module()->instance);
+
+ return $DB->count_records_sql("SELECT COUNT('x')
+ FROM {assign_submission} s
+ LEFT JOIN {assign_grades} g ON s.assignment = g.assignment AND s.userid = g.userid
+ WHERE s.assignment = ?
+ AND s.timemodified IS NOT NULL
+ AND (s.timemodified > g.timemodified OR g.timemodified IS NULL)",
+ $params);
+ }
+
/**
* Load a count of users enrolled in the current course with the specified permission and group (optional)
*
$this->is_any_submission_plugin_enabled(),
$this->count_submissions_with_status(ASSIGN_SUBMISSION_STATUS_SUBMITTED),
$this->get_instance()->duedate,
- $this->get_course_module()->id
+ $this->get_course_module()->id,
+ $this->count_submissions_need_grading()
));
}
$grade = $this->get_user_grade($USER->id, false);
var $submissionsenabled = false;
/** @var int submissionssubmittedcount - The number of submissions in submitted status */
var $submissionssubmittedcount = 0;
+ /** @var int submissionsneedgradingcount - The number of submissions that need grading */
+ var $submissionsneedgradingcount = 0;
/** @var int duedate - The assignment due date (if one is set) */
var $duedate = 0;
/** @var int coursemoduleid - The assignment course module id */
* @param int $duedate
* @param int $coursemoduleid
*/
- public function __construct($participantcount, $submissiondraftsenabled, $submissiondraftscount, $submissionsenabled, $submissionssubmittedcount, $duedate, $coursemoduleid) {
+ public function __construct($participantcount, $submissiondraftsenabled, $submissiondraftscount,
+ $submissionsenabled, $submissionssubmittedcount,
+ $duedate, $coursemoduleid, $submissionsneedgradingcount) {
$this->participantcount = $participantcount;
$this->submissiondraftsenabled = $submissiondraftsenabled;
$this->submissiondraftscount = $submissiondraftscount;
$this->submissionssubmittedcount = $submissionssubmittedcount;
$this->duedate = $duedate;
$this->coursemoduleid = $coursemoduleid;
+ $this->submissionsneedgradingcount = $submissionsneedgradingcount;
}
if ($summary->submissionsenabled) {
$this->add_table_row_tuple($t, get_string('numberofsubmittedassignments', 'assign'),
$summary->submissionssubmittedcount);
+ $this->add_table_row_tuple($t, get_string('numberofsubmissionsneedgrading', 'assign'),
+ $summary->submissionsneedgradingcount);
}
$time = time();