id, $course->id)) { error("Course Module ID was incorrect"); } if (!isteacher($course->id)) { error("Only teachers can look at this page"); } $strassignments = get_string("modulenameplural", "newassignment"); $strassignment = get_string("modulename", "newassignment"); $strsubmissions = get_string("submissions", "newassignment"); $strsaveallfeedback = get_string("saveallfeedback", "newassignment"); $strsendreminder = get_string('sendreminder', 'block_marking'); $strnumreminderssent = get_string('numreminderssent', 'block_marking'); $strlastremindersent = get_string('lastremindersent', 'block_marking'); /// Check to see if groups are being used in this assignment if ($groupmode = groupmode($course, $cm)) { // Groups are being used if (empty($currentgroup)) { $currentgroup = setup_and_print_groups($course, $groupmode, "marking.php?id=$id&mid=$mid&sort=$sort&dir=$dir"); } else { setup_and_print_groups($course, $groupmode, "marking.php?id=$id&mid=$mid&sort=$sort&dir=$dir"); } } else { $currentgroup = false; } /// Get all teachers and students $teachers = get_course_teachers($course->id); /// Show any specific group of users requested. if ($currentgroup) { $users = get_group_students($currentgroup); } else { $users = get_course_students($course->id); } if (!$users) { print_heading(get_string("nostudentsyet")); exit; } /// create empty entries in in db (neccessary) newassignment_create_empty_db_entries($assignment); /// Make some easy ways to reference submissions if ($submissions = newassignment_get_all_submissions($assignment, $sort, $dir)) { foreach ($submissions as $submission) { if (($submission->timemodified <= 0) || $submission->latest) { $submissionbyuser[$submission->userid] = $submission; } } } /// If data is being submitted, then process it if ($data = data_submitted($CFG->wwwroot.'/blocks/marking/marking.php')) { if (isset($data->sendreminders)) { mb_send_all_reminders($data, $users, $course, $cm); $message = get_string('sentreminders', 'block_marking'); redirect('marking.php?id='.$id.'&mid='.$mid, $message, 3); } /// If we're only submitting a single feedback, set the submittal array to just that one. if (isset($data->submitsub)) { $data->sub_id = array(key($data->submitsub)); } foreach ($data->sub_id as $sub_id) { $submission = $submissions[$sub_id]; $reqresubmit = isset($data->reqresubmit[$sub_id]) ? 1 : 0; // Only update entries where feedback has actually changed. if (($data->grade[$sub_id] <> $submission->grade) || ($data->comment[$sub_id] <> addslashes($submission->comment)) || $reqresubmit) { unset($newsubmission); $newsubmission->grade = $data->grade[$sub_id]; $newsubmission->comment = $data->comment[$sub_id]; $newsubmission->teacher = $USER->id; $newsubmission->timemarked = $timenow; $newsubmission->mailed = 0; // Make sure mail goes out (again, even) $newsubmission->id = $sub_id; if ($reqresubmit) { $newsubmission->comment .= "\n\n".'
'. get_string('resubmitmessage', 'block_marking').'
'; } // Make sure that we aren't overwriting any recent feedback from other teachers. (see bug #324) if ($timewas < $submission->timemarked && (!empty($submission->grade)) && (!empty($submission->comment))) { notify(get_string("failedupdatefeedback", "assignment", fullname($users[$submission->userid])) . "'.get_string("duedate", "assignment").':'.$strduedate.
'
'.$gradetext.'
'.get_string('markingcriteria', 'block_marking').': '.
format_text($assignment->description, $assignment->format);
if ($averageturnaround) {
echo '
'.get_string('averageturnaround', 'block_marking', (int)$averageturnaround);
} else {
echo '
'.get_string('noaverageturnaround', 'block_marking');
}
echo '
'.get_string('studentsnotsubmitted', 'block_marking').':
'; foreach ($unsubmitted as $submission) { if (isset($users[$submission->userid])) { $user = $users[$submission->userid]; echo "\n".'"; print_user_picture($user->id, $assignment->course, $user->picture); echo " | "; echo "".fullname($user, true)." | \n"; echo '';
echo '';
$reminfo = mb_get_reminder_info($USER, $user, $course->id, $cm->id);
echo $reminfo->numrems.' '.$strnumreminderssent.'. '; if ($reminfo->numrems > 0) { echo $strlastremindersent.' '.userdate($reminfo->lastrem).'. '; } echo ' '.$strsendreminder; echo ''; echo ' | '."\n";
echo "
"; } else { echo "\n | "; } print_user_picture($user->id, $assignment->course, $user->picture); echo " | "; echo "";
echo '
| ||||
"; if ($submission->timemodified) { newassignment_print_latest_user_file($assignment, $user); if ($submission->filenum>1) { // ELF -js- echo "[ "; link_to_popup_window("/mod/newassignment/user_detail.php?id={$assignment->id}&sid={$submission->userid}", "user_submissions_details", get_string('totalfiles','newassignment',$submission->filenum), 500, 800); echo " ]"; } // ELF -js- } else { print_string("notsubmittedyet", "newassignment"); } echo " | ||||||
"; if ($submission->feedbackfile) { print_user_picture($submission->feedbackfileteacher, $assignment->course, $teachers[$submission->feedbackfileteacher]->picture); } else { print_user_picture($USER->id, $assignment->course, $USER->picture); } if ($submission->timemodified > $submission->feedbacktimeuploaded or (!$submission->timemodified and !$submission->feedbacktimeuploaded)) { echo " | "; } else { echo " | ";
}
echo get_string("feedbackfile", "newassignment").": ";
if ($submission->feedbacktimeuploaded) {
echo " "; newassignment_print_feedback_files($assignment, $user, $teachers, $submission, 1, 1); } else { print_string("notsubmittedfeedbackyet", "newassignment"); } echo " [ "; link_to_popup_window("/mod/newassignment/feedbackupl.php?id=". "$assignment->id&studentid=$user->id&filenum=$submission->filenum", "feedback", get_string("uploadfeedbackfile", "newassignment"), 150, 600); echo "] \n | ||||
"; print_user_picture($submission->teacher, $assignment->course, $teachers[$submission->teacher]->picture); if ($submission->timemodified > $submission->timemarked or (!$submission->timemodified and !$submission->timemarked)) { echo " | "; } else { echo " | ";
}
echo '';
echo '
"; echo " |