MDL-36908 Assignment: Additional fixes for preventing empty submissions

This commit is contained in:
Damyon Wiese
2012-12-11 10:12:23 +13:00
committed by Sam Hemelryk
parent 473eadfe10
commit 5b2313c26c
5 changed files with 20 additions and 14 deletions
+1 -1
View File
@@ -592,7 +592,7 @@ abstract class assign_plugin {
/**
* If this plugin should not include a column in the grading table or a row on the summary page
* return false
* then return false
*
* @return bool
*/
+11 -9
View File
@@ -1131,21 +1131,22 @@ class assign {
/**
* 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.
* grading modification time and the status is SUBMITTED.
*
* @return int number of matching submissions
*/
public function count_submissions_need_grading() {
global $DB;
$params = array($this->get_course_module()->instance);
$params = array($this->get_course_module()->instance, ASSIGN_SUBMISSION_STATUS_SUBMITTED);
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)",
AND (s.timemodified > g.timemodified OR g.timemodified IS NULL)
AND s.status = ?",
$params);
}
@@ -1972,12 +1973,7 @@ class assign {
$submission->userid = $userid;
$submission->timecreated = time();
$submission->timemodified = $submission->timecreated;
if ($this->get_instance()->submissiondrafts) {
$submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
} else {
$submission->status = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
}
$submission->status = ASSIGN_SUBMISSION_STATUS_DRAFT;
$sid = $DB->insert_record('assign_submission', $submission);
$submission->id = $sid;
return $submission;
@@ -2122,6 +2118,9 @@ class assign {
} else {
$showsubmit = $showedit && $submission && ($submission->status == ASSIGN_SUBMISSION_STATUS_DRAFT);
}
if (!$this->get_instance()->submissiondrafts) {
$showsubmit = false;
}
$viewfullnames = has_capability('moodle/site:viewfullnames', $this->get_course_context());
$o .= $this->get_renderer()->render(new assign_submission_status($this->get_instance()->allowsubmissionsfromdate,
@@ -2661,6 +2660,9 @@ class assign {
if ($submission && ($submission->status == ASSIGN_SUBMISSION_STATUS_SUBMITTED)) {
$showsubmit = false;
}
if (!$this->get_instance()->submissiondrafts) {
$showsubmit = false;
}
$extensionduedate = null;
if ($grade) {
$extensionduedate = $grade->extensionduedate;
+2 -1
View File
@@ -572,10 +572,11 @@ class mod_assign_renderer extends plugin_renderer_base {
$t->data[] = $row;
foreach ($status->submissionplugins as $plugin) {
$pluginshowsummary = !$plugin->is_empty($submission) || !$plugin->allow_submissions();
if ($plugin->is_enabled() &&
$plugin->is_visible() &&
$plugin->has_user_summary() &&
!$plugin->is_empty($submission)) {
$pluginshowsummary) {
$row = new html_table_row();
$cell1 = new html_table_cell($plugin->get_name());
+3 -2
View File
@@ -78,12 +78,13 @@ class assign_submission_comments extends assign_submission_plugin {
}
/**
* Always return false because at a minimum there is the comments control
* Always return true because the submission comments are not part of the submission form.
*
* @param stdClass $submission
* @return bool
*/
public function is_empty(stdClass $submission) {
return false;
return true;
}
/**
@@ -422,7 +422,9 @@ class assign_submission_onlinetext extends assign_submission_plugin {
* @return bool
*/
public function is_empty(stdClass $submission) {
return $this->view($submission) == '';
$onlinetextsubmission = $this->get_onlinetext_submission($submission->id);
return empty($onlinetextsubmission->onlinetext);
}
/**