From 085bd98e7e9435c22354000d05d8f97b50beccd6 Mon Sep 17 00:00:00 2001 From: moodler Date: Fri, 15 Nov 2002 03:32:30 +0000 Subject: [PATCH] Add option that allows students to resubmit after being graded --- lang/en/assignment.php | 1 + lang/en/help/assignment/resubmit.html | 9 +++++++++ mod/assignment/db/mysql.php | 3 +++ mod/assignment/db/mysql.sql | 1 + mod/assignment/mod.html | 10 ++++++++++ mod/assignment/upload.php | 2 +- mod/assignment/version.php | 2 +- mod/assignment/view.php | 3 ++- 8 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 lang/en/help/assignment/resubmit.html diff --git a/lang/en/assignment.php b/lang/en/assignment.php index b952511cba..00e5f63bcf 100644 --- a/lang/en/assignment.php +++ b/lang/en/assignment.php @@ -2,6 +2,7 @@ // assignment.php - created with Moodle 1.0.5 dev (2002092300) +$string['allowresubmit'] = "Allow resubmitting"; $string['assignmentdetails'] = "Assignment details"; $string['assignmentname'] = "Assignment name"; $string['assignmenttype'] = "Assignment type"; diff --git a/lang/en/help/assignment/resubmit.html b/lang/en/help/assignment/resubmit.html new file mode 100644 index 0000000000..1d4d3b178e --- /dev/null +++ b/lang/en/help/assignment/resubmit.html @@ -0,0 +1,9 @@ +

Resubmitting assignments

+ +

By default, students cannot resubmit assignments once the teacher has graded them

+ +

If you turn this option on, then students will be allowed to resubmit assignments + after they have been graded (for you to re-grade). This may be useful if the + teacher wants to encourage students to do better work in an iterative process.

+ +

Obviously, this option is not relevant for offline assignments.

diff --git a/mod/assignment/db/mysql.php b/mod/assignment/db/mysql.php index de0d5b3430..5a5a6bda55 100644 --- a/mod/assignment/db/mysql.php +++ b/mod/assignment/db/mysql.php @@ -85,6 +85,9 @@ function assignment_upgrade($oldversion) { if ($oldversion < 2002110302) { execute_sql(" UPDATE `assignment` SET `type` = '1'"); } + if ($oldversion < 2002111500) { + execute_sql(" ALTER TABLE `assignment` ADD `resubmit` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL AFTER `format` "); + } return true; } diff --git a/mod/assignment/db/mysql.sql b/mod/assignment/db/mysql.sql index 812a92eded..2ce6431cf4 100644 --- a/mod/assignment/db/mysql.sql +++ b/mod/assignment/db/mysql.sql @@ -8,6 +8,7 @@ CREATE TABLE `assignment` ( `name` varchar(255) NOT NULL default '', `description` text NOT NULL, `format` tinyint(2) unsigned NOT NULL default '0', + `resubmit` tinyint(2) unsigned NOT NULL default '0', `type` int(10) unsigned NOT NULL default '1', `maxbytes` int(10) unsigned NOT NULL default '100000', `timedue` int(10) unsigned NOT NULL default '0', diff --git a/mod/assignment/mod.html b/mod/assignment/mod.html index 368ecd49d4..ab6573b31b 100644 --- a/mod/assignment/mod.html +++ b/mod/assignment/mod.html @@ -50,6 +50,16 @@ ?> + +

:

+ + resubmit, ""); + helpbutton("resubmit", get_string("allowresubmit", "assignment"), "assignment"); + ?> + +

:

diff --git a/mod/assignment/upload.php b/mod/assignment/upload.php index 0ed3becc56..b1dbc04a72 100644 --- a/mod/assignment/upload.php +++ b/mod/assignment/upload.php @@ -32,7 +32,7 @@ "", "", true); if ($submission = assignment_get_submission($assignment, $USER)) { - if ($submission->grade) { + if ($submission->grade and !$assignment->resubmit) { error("You've already been graded - there's no point in uploading anything"); } } diff --git a/mod/assignment/version.php b/mod/assignment/version.php index 60cd7f3fd5..114d6377a8 100644 --- a/mod/assignment/version.php +++ b/mod/assignment/version.php @@ -5,7 +5,7 @@ // This fragment is called by /admin/index.php //////////////////////////////////////////////////////////////////////////////// -$module->version = 2002110602; +$module->version = 2002111500; $module->cron = 60; ?> diff --git a/mod/assignment/view.php b/mod/assignment/view.php index 9ad6df9fcd..9eb6aad93c 100644 --- a/mod/assignment/view.php +++ b/mod/assignment/view.php @@ -100,7 +100,8 @@ if ($submission and $submission->timemarked) { print_heading(get_string("submissionfeedback", "assignment").":", "CENTER"); assignment_print_feedback($course, $submission); - } else { + } + if (!$submission->timemarked or $assignment->resubmit) { if ($submission and $submission->timemodified) { echo "

".get_string("overwritewarning", "assignment")."

"; } -- 2.39.5