From 381472290516974ce5693292e3cf6c19e6f6e274 Mon Sep 17 00:00:00 2001 From: moodler Date: Wed, 27 Apr 2005 09:37:52 +0000 Subject: [PATCH] Shane and I fixed a few things: - preventlate works - dates can be set to not be used - optional assignment fields all getting passed to second screen now 8-I --- mod/assignment/lib.php | 48 +++++++++---- mod/assignment/mod.html | 65 +++++++++++++++-- mod/assignment/type/common.html | 15 ++++ .../type/uploadsingle/assignment.class.php | 70 ++++++++++--------- mod/assignment/type/uploadsingle/mod.html | 2 +- 5 files changed, 145 insertions(+), 55 deletions(-) diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 6e3af37f17f..7f02446f2de 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -326,14 +326,23 @@ class assignment_base { // of the new instance. $assignment->timemodified = time(); - $assignment->timedue = make_timestamp($assignment->dueyear, $assignment->duemonth, - $assignment->dueday, $assignment->duehour, - $assignment->dueminute); - $assignment->timeavailable = make_timestamp($assignment->availableyear, $assignment->availablemonth, - $assignment->availableday, $assignment->availablehour, - $assignment->availableminute); + if (empty($assignment->dueenable)) { + $assignment->timedue = 0; + } else { + $assignment->timedue = make_timestamp($assignment->dueyear, $assignment->duemonth, + $assignment->dueday, $assignment->duehour, + $assignment->dueminute); + } + if (empty($assignment->availableenable)) { + $assignment->timeavailable = 0; + $assignment->preventlate = 0; + } else { + $assignment->timeavailable = make_timestamp($assignment->availableyear, $assignment->availablemonth, + $assignment->availableday, $assignment->availablehour, + $assignment->availableminute); + } - return insert_record("assignment", $assignment); + return insert_record('assignment', $assignment); } function delete_instance($assignment) { @@ -347,14 +356,25 @@ class assignment_base { // of the new instance. $assignment->timemodified = time(); - $assignment->timedue = make_timestamp($assignment->dueyear, $assignment->duemonth, - $assignment->dueday, $assignment->duehour, - $assignment->dueminute); - $assignment->timeavailable = make_timestamp($assignment->availableyear, $assignment->availablemonth, - $assignment->availableday, $assignment->availablehour, - $assignment->availableminute); + $assignment->timemodified = time(); + if (empty($assignment->dueenable)) { + $assignment->timedue = 0; + } else { + $assignment->timedue = make_timestamp($assignment->dueyear, $assignment->duemonth, + $assignment->dueday, $assignment->duehour, + $assignment->dueminute); + } + if (empty($assignment->availableenable)) { + $assignment->timeavailable = 0; + $assignment->preventlate = 0; + } else { + $assignment->timeavailable = make_timestamp($assignment->availableyear, $assignment->availablemonth, + $assignment->availableday, $assignment->availablehour, + $assignment->availableminute); + } + $assignment->id = $assignment->instance; - return update_record("assignment", $assignment); + return update_record('assignment', $assignment); } diff --git a/mod/assignment/mod.html b/mod/assignment/mod.html index d89054f301b..f957d7030db 100644 --- a/mod/assignment/mod.html +++ b/mod/assignment/mod.html @@ -25,6 +25,9 @@ if (!isset($form->timeavailable)) { $form->timeavailable = time(); } + if (!isset($form->preventlate)) { + $form->preventlate = 0; + } if (!isset($form->grade)) { $form->grade = 100; } @@ -36,6 +39,11 @@ } ?> + +
@@ -90,20 +98,47 @@ - + ?> + + + + + + - + ?> + + + + + + + + + + + @@ -115,8 +150,8 @@ @@ -125,6 +160,14 @@
+ + + + + + + + @@ -133,6 +176,14 @@ - +
+ + + diff --git a/mod/assignment/type/common.html b/mod/assignment/type/common.html index e0ba22c4db1..045621c27fb 100644 --- a/mod/assignment/type/common.html +++ b/mod/assignment/type/common.html @@ -14,13 +14,28 @@ + + + + + + + + + + + + + + + diff --git a/mod/assignment/type/uploadsingle/assignment.class.php b/mod/assignment/type/uploadsingle/assignment.class.php index 153b71158e9..326b10e914e 100644 --- a/mod/assignment/type/uploadsingle/assignment.class.php +++ b/mod/assignment/type/uploadsingle/assignment.class.php @@ -59,41 +59,45 @@ class assignment_uploadsingle extends assignment_base { $this->view_header(get_string('upload')); - if ($submission = $this->get_submission($USER->id)) { - if ($submission->grade and !$this->assignment->resubmit) { - notify(get_string('alreadygraded', 'assignment')); - } - } - - $dir = $this->file_area_name($USER->id); - - require_once($CFG->dirroot.'/lib/uploadlib.php'); - $um = new upload_manager('newfile',true,false,$course,false,$this->assignment->maxbytes); - if ($um->process_file_uploads($dir)) { - $newfile_name = $um->get_new_filename(); - if ($submission) { - $submission->timemodified = time(); - $submission->numfiles = 1; - $submission->comment = addslashes($submission->comment); - if (update_record("assignment_submissions", $submission)) { - $this->email_teachers($submission); - print_heading(get_string('uploadedfile')); - } else { - notify(get_string("uploadfailnoupdate", "assignment")); + if (!$this->isopen()) { + notify(get_string("uploadfailnoupdate", "assignment")); + } else { + if ($submission = $this->get_submission($USER->id)) { + if ($submission->grade and !$this->assignment->resubmit) { + notify(get_string('alreadygraded', 'assignment')); } - } else { - $newsubmission->assignment = $this->assignment->id; - $newsubmission->userid = $USER->id; - $newsubmission->timecreated = time(); - $newsubmission->timemodified = time(); - $newsubmission->numfiles = 1; - if (insert_record('assignment_submissions', $newsubmission)) { - add_to_log($this->course->id, 'assignment', 'upload', - 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); - $this->email_teachers($newsubmission); - print_heading(get_string('uploadedfile')); + } + + $dir = $this->file_area_name($USER->id); + + require_once($CFG->dirroot.'/lib/uploadlib.php'); + $um = new upload_manager('newfile',true,false,$course,false,$this->assignment->maxbytes); + if ($um->process_file_uploads($dir)) { + $newfile_name = $um->get_new_filename(); + if ($submission) { + $submission->timemodified = time(); + $submission->numfiles = 1; + $submission->comment = addslashes($submission->comment); + if (update_record("assignment_submissions", $submission)) { + $this->email_teachers($submission); + print_heading(get_string('uploadedfile')); + } else { + notify(get_string("uploadfailnoupdate", "assignment")); + } } else { - notify(get_string("uploadnotregistered", "assignment", $newfile_name) ); + $newsubmission->assignment = $this->assignment->id; + $newsubmission->userid = $USER->id; + $newsubmission->timecreated = time(); + $newsubmission->timemodified = time(); + $newsubmission->numfiles = 1; + if (insert_record('assignment_submissions', $newsubmission)) { + add_to_log($this->course->id, 'assignment', 'upload', + 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id); + $this->email_teachers($newsubmission); + print_heading(get_string('uploadedfile')); + } else { + notify(get_string("uploadnotregistered", "assignment", $newfile_name) ); + } } } } diff --git a/mod/assignment/type/uploadsingle/mod.html b/mod/assignment/type/uploadsingle/mod.html index 706575e80f6..6e583603d85 100644 --- a/mod/assignment/type/uploadsingle/mod.html +++ b/mod/assignment/type/uploadsingle/mod.html @@ -1,6 +1,6 @@ resubmit)) { - $form->resubmit = ''; + $form->resubmit = 0; } if (empty($form->maxbytes)) { $form->maxbytes = $CFG->assignment_maxbytes;
: + timeavailable) echo 'checked="checked"' ?> /> + timeavailable); echo " - "; print_time_selector("availablehour", "availableminute", $form->timeavailable); - ?>
: + timedue) echo 'checked="checked"' ?> /> + timedue); echo " - "; print_time_selector("duehour", "dueminute", $form->timedue); - ?>
 : + preventlate, ''); + ?> + +
assignmenttype, ""); - helpbutton("assignment/types", get_string("assignmenttype", "assignment"), "moodle"); + choose_from_menu($ASSIGNMENT_TYPES, 'assignmenttype', $form->assignmenttype, ''); + helpbutton('assignment/types', get_string('assignmenttype', 'assignment'), 'moodle'); ?>