Merge branch 'MDL-2283' of git://github.com/netspotau/moodle-mod_assign

This commit is contained in:
Sam Hemelryk 2012-07-23 10:54:55 +12:00
commit f3a6fa396e
4 changed files with 32 additions and 2 deletions

View File

@ -173,6 +173,7 @@ $string['nousersselected'] = 'No users selected';
$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}';

View File

@ -967,6 +967,27 @@ class assign {
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)
*
@ -2091,7 +2112,8 @@ class assign {
$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);

View File

@ -405,6 +405,8 @@ class assign_grading_summary implements renderable {
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 */
@ -421,7 +423,9 @@ class assign_grading_summary implements renderable {
* @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;
@ -429,6 +433,7 @@ class assign_grading_summary implements renderable {
$this->submissionssubmittedcount = $submissionssubmittedcount;
$this->duedate = $duedate;
$this->coursemoduleid = $coursemoduleid;
$this->submissionsneedgradingcount = $submissionsneedgradingcount;
}

View File

@ -248,6 +248,8 @@ class mod_assign_renderer extends plugin_renderer_base {
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();