From 6e37e120fcaaf9a871396a6790b7dca89311cda8 Mon Sep 17 00:00:00 2001 From: Peter Dias Date: Mon, 20 Jul 2020 10:07:31 +0800 Subject: [PATCH] MDL-69297 assign: Check whether there is content for a submission Confirm there is some content to be submitted for an assignment when processing it. --- mod/assign/locallib.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 4b50121a4b5..029265e4361 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -5129,18 +5129,33 @@ class assign { require_once($CFG->dirroot . '/mod/assign/submissionconfirmform.php'); // Check that all of the submission plugins are ready for this submission. + // Also check whether there is something to be submitted as well against atleast one. $notifications = array(); $submission = $this->get_user_submission($USER->id, false); + if ($this->get_instance()->teamsubmission) { + $submission = $this->get_group_submission($USER->id, 0, false); + } + $plugins = $this->get_submission_plugins(); + $hassubmission = false; foreach ($plugins as $plugin) { if ($plugin->is_enabled() && $plugin->is_visible()) { $check = $plugin->precheck_submission($submission); if ($check !== true) { $notifications[] = $check; } + + if (is_object($submission) && !$plugin->is_empty($submission)) { + $hassubmission = true; + } } } + // If there are no submissions and no existing notifications to be displayed the stop. + if (!$hassubmission && !$notifications) { + $notifications[] = get_string('addsubmission_help', 'assign'); + } + $data = new stdClass(); $adminconfig = $this->get_admin_config(); $requiresubmissionstatement = $this->get_instance()->requiresubmissionstatement;