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
This commit is contained in:
moodler
2005-04-27 09:37:52 +00:00
parent a4350fccf9
commit 3814722905
5 changed files with 145 additions and 55 deletions
+34 -14
View File
@@ -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);
}
+58 -7
View File
@@ -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 @@
}
?>
<script type="text/javascript" language="javascript">
var dueitems = ['dueday','duemonth','dueyear','duehour', 'dueminute', 'preventlate'];
var availableitems = ['availableday','availablemonth','availableyear','availablehour', 'availableminute'];
</script>
<form name="form" method="post" action="../mod/assignment/details.php">
<table cellpadding="5">
<tr valign="top">
@@ -90,20 +98,47 @@
<tr valign=top>
<td align="right"><b><?php print_string("availabledate","assignment") ?>:</b></td>
<td><?php
<td>
<input name="availableenable" type="checkbox" value="1" alt="<?php print_string('availabledate', 'assignment') ?>" onclick="return lockoptions('form', 'availableenable', availableitems)" <?php if ($form->timeavailable) echo 'checked="checked"' ?> />
<?php
print_date_selector("availableday", "availablemonth", "availableyear", $form->timeavailable);
echo "&nbsp;-&nbsp;";
print_time_selector("availablehour", "availableminute", $form->timeavailable);
?></td>
?>
<input type="hidden" name="havailableday" value="0" />
<input type="hidden" name="havailablemonth" value="0" />
<input type="hidden" name="havailableyear" value="0" />
<input type="hidden" name="havailablehour" value="0" />
<input type="hidden" name="havailableminute" value="0" />
</td>
</tr>
<tr valign=top>
<td align="right"><b><?php print_string("duedate", "assignment") ?>:</b></td>
<td><?php
<td>
<input name="dueenable" type="checkbox" value="1" alt="<?php print_string('duedate', 'assignment') ?>" onclick="return lockoptions('form', 'dueenable', dueitems)" <?php if ($form->timedue) echo 'checked="checked"' ?> />
<?php
print_date_selector("dueday", "duemonth", "dueyear", $form->timedue);
echo "&nbsp;-&nbsp;";
print_time_selector("duehour", "dueminute", $form->timedue);
?></td>
?>
<input type="hidden" name="hdueday" value="0" />
<input type="hidden" name="hduemonth" value="0" />
<input type="hidden" name="hdueyear" value="0" />
<input type="hidden" name="hduehour" value="0" />
<input type="hidden" name="hdueminute" value="0" />
</td>
</tr>
<tr valign="top">
<td>&nbsp;</td>
<td><?php print_string('preventlate', 'assignment') ?>:
<?php
$options[0] = get_string('no'); $options[1] = get_string('yes');
choose_from_menu($options, 'preventlate', $form->preventlate, '');
?>
<input type="hidden" name="hpreventlate" value="0" />
</td>
</tr>
<tr valign="top">
@@ -115,8 +150,8 @@
<td>
<?php
$ASSIGNMENT_TYPES = assignment_types();
choose_from_menu($ASSIGNMENT_TYPES, "assignmenttype", $form->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');
?>
</td>
</tr>
@@ -125,6 +160,14 @@
<br />
<center>
<!-- <input type="hidden" name=grade value="<?php p($form->grade) ?>" /> -->
<input type="hidden" name="resubmit" value="<?php p($form->resubmit) ?>" />
<input type="hidden" name="emailteachers" value="<?php p($form->emailteachers) ?>" />
<input type="hidden" name="maxbytes" value="<?php p($form->maxbytes) ?>" />
<input type="hidden" name="var1" value="<?php p($form->var1) ?>" />
<input type="hidden" name="var2" value="<?php p($form->var2) ?>" />
<input type="hidden" name="var3" value="<?php p($form->var3) ?>" />
<input type="hidden" name="var4" value="<?php p($form->var4) ?>" />
<input type="hidden" name="var5" value="<?php p($form->var5) ?>" />
<input type="hidden" name="course" value="<?php p($form->course) ?>" />
<input type="hidden" name="coursemodule" value="<?php p($form->coursemodule) ?>" />
<input type="hidden" name="section" value="<?php p($form->section) ?>" />
@@ -133,6 +176,14 @@
<input type="hidden" name="instance" value="<?php p($form->instance) ?>" />
<input type="hidden" name="mode" value="<?php p($form->mode) ?>" />
<input type="submit" value="<?php print_string('next') ?> &raquo;" />
<input type="submit" name=cancel value="<?php print_string('cancel') ?>" />
<input type="submit" name="cancel" value="<?php print_string('cancel') ?>" />
</center>
</form>
<script type="text/javascript">
<?php
if (!$form->timedue) echo "lockoptions('form','dueenable', dueitems);";
if (!$form->timeavailable) echo "lockoptions('form','availableenable', availableitems);";
?>
</script>
+15
View File
@@ -14,13 +14,28 @@
<input type="hidden" name="description" value="<?php p($form->description) ?>" />
<input type="hidden" name="format" value="<?php p($form->format) ?>" />
<input type="hidden" name="assignmenttype" value="<?php p($form->assignmenttype) ?>" />
<input type="hidden" name="resubmit" value="<?php p($form->resubmit) ?>" />
<input type="hidden" name="emailteachers" value="<?php p($form->emailteachers) ?>" />
<input type="hidden" name="maxbytes" value="<?php p($form->maxbytes) ?>" />
<input type="hidden" name="var1" value="<?php p($form->var1) ?>" />
<input type="hidden" name="var2" value="<?php p($form->var2) ?>" />
<input type="hidden" name="var3" value="<?php p($form->var3) ?>" />
<input type="hidden" name="var4" value="<?php p($form->var4) ?>" />
<input type="hidden" name="var5" value="<?php p($form->var5) ?>" />
<input type="hidden" name="availableenable" value="<?php p($form->availableenable) ?>" />
<input type="hidden" name="availableday" value="<?php p($form->availableday) ?>" />
<input type="hidden" name="availablemonth" value="<?php p($form->availablemonth) ?>" />
<input type="hidden" name="availableyear" value="<?php p($form->availableyear) ?>" />
<input type="hidden" name="availablehour" value="<?php p($form->availablehour) ?>" />
<input type="hidden" name="availableminute" value="<?php p($form->availableminute) ?>" />
<input type="hidden" name="dueenable" value="<?php p($form->dueenable) ?>" />
<input type="hidden" name="dueday" value="<?php p($form->dueday) ?>" />
<input type="hidden" name="duemonth" value="<?php p($form->duemonth) ?>" />
<input type="hidden" name="dueyear" value="<?php p($form->dueyear) ?>" />
<input type="hidden" name="duehour" value="<?php p($form->duehour) ?>" />
<input type="hidden" name="dueminute" value="<?php p($form->dueminute) ?>" />
<input type="hidden" name="preventlate" value="<?php p($form->preventlate) ?>" />
@@ -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) );
}
}
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
if (empty($form->resubmit)) {
$form->resubmit = '';
$form->resubmit = 0;
}
if (empty($form->maxbytes)) {
$form->maxbytes = $CFG->assignment_maxbytes;