$output .= '<script type="text/javascript">'."\n<!--\n";
if (empty($SESSION->flextable['mod-assignment-submissions']->collapse['submissioncomment'])) {
if ($quickgrade){
- $output.= 'opener.document.getElementById("submissioncomment['.$submission->userid.']").value="'
+ $output.= 'opener.document.getElementById("submissioncomment'.$submission->userid.'").value="'
.trim($submission->submissioncomment).'";'."\n";
} else {
$output.= 'opener.document.getElementById("com'.$submission->userid.
if (empty($SESSION->flextable['mod-assignment-submissions']->collapse['grade'])) {
//echo optional_param('menuindex');
if ($quickgrade){
- $output.= 'opener.document.getElementById("menumenu['.$submission->userid.
- ']").selectedIndex="'.optional_param('menuindex', 0, PARAM_INT).'";'."\n";
+ $output.= 'opener.document.getElementById("menumenu'.$submission->userid.
+ '").selectedIndex="'.optional_param('menuindex', 0, PARAM_INT).'";'."\n";
} else {
$output.= 'opener.document.getElementById("g'.$submission->userid.'").innerHTML="'.
$this->display_grade($submission->grade)."\";\n";
if (empty($SESSION->flextable['mod-assignment-submissions']->collapse['status'])) {
$output.= 'opener.document.getElementById("up'.$submission->userid.'").className="s1";';
$buttontext = get_string('update');
- $button = link_to_popup_window ('/mod/assignment/submissions.php?id='.$this->cm->id.'&userid='.$submission->userid.'&mode=single'.'&offset='.optional_param('offset', '', PARAM_INT),
+ $button = link_to_popup_window ('/mod/assignment/submissions.php?id='.$this->cm->id.'&userid='.$submission->userid.'&mode=single'.'&offset='.(optional_param('offset', '', PARAM_INT)-1),
'grade'.$submission->userid, $buttontext, 450, 700, $buttontext, 'none', true, 'button'.$submission->userid);
$output.= 'opener.document.getElementById("up'.$submission->userid.'").innerHTML="'.addslashes($button).'";';
}
if (!$submission = $this->get_submission($user->id)) {
$submission = $this->prepare_new_submission($userid);
}
-
if ($submission->timemodified > $submission->timemarked) {
$subtype = 'assignmentnew';
} else {
$course = $this->course;
$assignment = $this->assignment;
$cm = $this->cm;
-
+ $context = get_context_instance(CONTEXT_MODULE, $cm->id);
/// Get all teachers and students
if ($currentgroup) {
$users = get_group_users($currentgroup);
} else {
- $users = get_course_users($course->id);
+ $users = get_users_by_capability($context, 'mod/assignment:submit', 'u.id, u.id', '',
+ '', '', '', '', false);
}
$select = 'SELECT u.id, u.id, u.firstname, u.lastname, u.picture,
if (($auser = get_records_sql($select.$sql.$sort, $offset+1, 1)) !== false) {
$nextuser = array_shift($auser);
/// Calculate user status
- $nextuser->status = ($nextuser->timemarked > 0) && ($nextuser->timemarked >= $nextuser->timemodified);
+ $nextuser->status = ($nextuser->timemarked > 0) && ($nextuser->timemarked >= $nextuser->timemodified);
$nextid = $nextuser->id;
}
echo '<script type="text/javascript">'."\n";
echo 'function setNext(){'."\n";
- echo 'getElementById(\'submitform\').mode.value=\'next\';'."\n";
- echo 'getElementById(\'submitform\').userid.value="'.$nextid.'";'."\n";
+ echo 'document.getElementById(\'submitform\').mode.value=\'next\';'."\n";
+ echo 'document.getElementById(\'submitform\').userid.value="'.$nextid.'";'."\n";
echo '}'."\n";
echo 'function saveNext(){'."\n";
- echo 'getElementById(\'submitform\').mode.value=\'saveandnext\';'."\n";
- echo 'getElementById(\'submitform\').userid.value="'.$nextid.'";'."\n";
- echo 'getElementById(\'submitform\').saveuserid.value="'.$userid.'";'."\n";
- echo 'getElementById(\'submitform\').menuindex.value = getElementById(\'submitform\').grade.selectedIndex;'."\n";
+ echo 'document.getElementById(\'submitform\').mode.value=\'saveandnext\';'."\n";
+ echo 'document.getElementById(\'submitform\').userid.value="'.$nextid.'";'."\n";
+ echo 'document.getElementById(\'submitform\').saveuserid.value="'.$userid.'";'."\n";
+ echo 'document.getElementById(\'submitform\').menuindex.value = document.getElementById(\'submitform\').grade.selectedIndex;'."\n";
echo '}'."\n";
echo '</script>'."\n";
echo '<td class="content">';
echo '<form id="submitform" action="submissions.php" method="post">';
echo '<fieldset class="invisiblefieldset">';
- echo '<input type="hidden" name="offset" value="'.++$offset.'" />';
+ echo '<input type="hidden" name="offset" value="'.($offset+1).'" />';
echo '<input type="hidden" name="userid" value="'.$userid.'" />';
echo '<input type="hidden" name="id" value="'.$this->cm->id.'" />';
echo '<input type="hidden" name="mode" value="grade" />';
///Print Buttons in Single View
echo '<div class="buttons">';
- echo '<input type="submit" name="submit" value="'.get_string('savechanges').'" onclick = "getElementById(\'submitform\').menuindex.value = getElementById(\'submitform\').grade.selectedIndex" />';
+ echo '<input type="submit" name="submit" value="'.get_string('savechanges').'" onclick = "document.getElementById(\'submitform\').menuindex.value = document.getElementById(\'submitform\').grade.selectedIndex" />';
echo '<input type="submit" name="cancel" value="'.get_string('cancel').'" />';
//if there are more to be graded.
if ($nextid) {
unset($submission->data2); // Don't need to update this.
if (empty($submission->timemodified)) { // eg for offline assignments
- $submission->timemodified = time();
+ // $submission->timemodified = time();
}
if (! update_record('assignment_submissions', $submission)) {
$submission = new Object;
$submission->assignment = $this->assignment->id;
$submission->userid = $userid;
- $submission->timecreated = time();
+ //$submission->timecreated = time();
+ $submission->timecreated = '';
+ // teachers should not be modifying modified date, except offline assignments
$submission->timemodified = $submission->timecreated;
$submission->numfiles = 0;
$submission->data1 = '';
function print_student_answer($studentid){
return '';//does nothing!
}
+
+ function prepare_new_submission($userid) {
+ $submission = new Object;
+ $submission->assignment = $this->assignment->id;
+ $submission->userid = $userid;
+ $submission->timecreated = time(); // needed for offline assignments
+ $submission->timemodified = $submission->timecreated;
+ $submission->numfiles = 0;
+ $submission->data1 = '';
+ $submission->data2 = '';
+ $submission->grade = -1;
+ $submission->submissioncomment = '';
+ $submission->format = 0;
+ $submission->teacher = 0;
+ $submission->timemarked = 0;
+ $submission->mailed = 0;
+ return $submission;
+ }
+
+ // needed for the timemodified override
+ function process_feedback() {
+
+ global $USER;
+
+ if (!$feedback = data_submitted()) { // No incoming data?
+ return false;
+ }
+
+ ///For save and next, we need to know the userid to save, and the userid to go
+ ///We use a new hidden field in the form, and set it to -1. If it's set, we use this
+ ///as the userid to store
+ if ((int)$feedback->saveuserid !== -1){
+ $feedback->userid = $feedback->saveuserid;
+ }
+
+ if (!empty($feedback->cancel)) { // User hit cancel button
+ return false;
+ }
+
+ $submission = $this->get_submission($feedback->userid, true); // Get or make one
+
+ $submission->grade = $feedback->grade;
+ $submission->submissioncomment = $feedback->submissioncomment;
+ $submission->format = $feedback->format;
+ $submission->teacher = $USER->id;
+ $submission->mailed = 0; // Make sure mail goes out (again, even)
+ $submission->timemarked = time();
+
+ unset($submission->data1); // Don't need to update this.
+ unset($submission->data2); // Don't need to update this.
+
+ if (empty($submission->timemodified)) { // eg for offline assignments
+ $submission->timemodified = time();
+ }
+
+ if (! update_record('assignment_submissions', $submission)) {
+ return false;
+ }
+
+ add_to_log($this->course->id, 'assignment', 'update grades',
+ 'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id);
+
+ return $submission;
+
+ }
}