dirroot.'/mod/lesson/lib.php'); require_once($CFG->dirroot.'/mod/lesson/locallib.php'); if (! $lesson = get_record("lesson", "id", $iid)) { error("Course module is incorrect"); } if (! $cm = get_coursemodule_from_instance("lesson", $lesson->id, $course->id)) { error("Course Module ID was incorrect"); } if (!isteacher($course->id)) { error("Only teachers can look at this page"); } /// 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; } $submissions = array(); /// Make some easy ways to reference submissions // get lesson pages that are essay if (!$pages = get_records_select("lesson_pages", "lessonid = $lesson->id AND qtype = ".LESSON_ESSAY)) { error("Error: could not find lesson essay pages"); } $submissionbyuser = array(); $submissionbypage = array(); $pageids = implode(",", array_keys($pages)); // all the pageids in comma seperated list $userids = implode(',', array_keys($users)); $select = 'lessonid = '.$lesson->id.' AND pageid IN ('.$pageids.') AND '.'userid IN ('.$userids.')'; if ($submissions = get_records_select("lesson_attempts", $select)) { foreach ($submissions as $submission) { $submissionbyuser[$submission->userid][$submission->pageid] = $submission; $submissionbypage[$submission->pageid][$submission->userid] = $submission; } } $unsubmitted = array(); foreach ($users as $userid => $user) { if (!isset($submissionbyuser[$userid])) { $unsubmitted[] = $user; } } /// If data is being submitted, then process it if ($data = data_submitted($CFG->wwwroot.'/blocks/marking/marking.php')) { /// Process incoming data if there is any 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]; // Only update entries where feedback has actually changed. $essayinfo = unserialize($submission->useranswer); if (($data->grade[$sub_id] <> $essayinfo->score) || ($data->comment[$sub_id] <> addslashes($essayinfo->response))) { $essayinfo->score = $data->grade[$sub_id]; $essayinfo->graded = 1; $essayinfo->response = $data->comment[$sub_id]; $submission->useranswer = addslashes(serialize($essayinfo)); if (! update_record("lesson_attempts", $submission)) { notify(get_string("failedupdatefeedback", "lesson", $submission->userid)); } else { $count++; $submissions[$sub_id] = $submission; } } } add_to_log($course->id, "lesson", "update grades", "marking.php?id=$lesson->id", "$count users", $cm->id); if (isset($data->submitsub)) { $message = get_string('feedbackupdated', 'block_marking', fullname($users[$submission->userid])); } else { $message = get_string('allfeedbackupdated', 'block_marking'); } redirect('marking.php?id='.$id.'&mid='.$mid, $message, 3); } else { add_to_log($course->id, "lesson", "view essay", "marking.php?id=$lesson->id", "$lesson->id", $cm->id); } /// Print out the lesson entries $strsavefeedback = get_string('savefeedback', 'block_marking'); $teachers = get_course_teachers($course->id); $allowedtograde = ($groupmode != VISIBLEGROUPS or isteacheredit($course->id) or ismember($currentgroup)); foreach ($submissionbypage as $pageid => $submissions) { $score = get_field('lesson_answers', 'score', 'pageid', $pageid); $grades = make_grades_menu($score); print_simple_box_start('', '', '', 10, 'generalbox'); echo '

'.get_string("duedate", "assignment").':'.userdate($lesson->deadline). '
'.get_string("maximumgrade").': '.$score.'
'. get_string('markingcriteria', 'block_marking').': '.s($pages[$pageid]->contents); echo '
'.get_string('turnaroundunknown', 'block_marking'); echo '

'; if ($allowedtograde) { echo '
'; echo ""; } foreach ($submissions as $userid => $submission) { echo "\n"; /// Begin Submission Area: echo "\n"; echo "\n"; echo ''; echo ""; echo "\n"; /// Begin Marking / Feedback Area: echo "\n"; echo "
"; print_user_picture($userid, $course->id, $users[$userid]->picture); echo "'.fullname($users[$userid], true).'
"; $essayinfo = unserialize($submission->useranswer); echo '
'; echo format_text($essayinfo->answer); echo "
"; if ($allowedtograde) { echo 'id.'] value="'.$submission->id.'">'; echo '"; echo "
'; echo get_string("feedback", "assignment").":"; choose_from_menu($grades, "grade[{$submission->id}]", $essayinfo->score, get_string("nograde")); } else { echo '
'; echo get_string("feedback", "assignment").":"; p($essayinfo->score); } if ($essayinfo->graded) { echo ''.print_string('turnaroundunknown', 'block_marking').''; } else { echo ''; print_string('notmarkedyet', 'block_marking'); echo ''; } echo ''; if ($allowedtograde) echo ' '; echo '
'; if ($allowedtograde) { echo '
"; } else { p(stripslashes($essayinfo->response)); } echo "

\n"; } if ($allowedtograde) { echo '
'; echo ''; } if (is_array($unsubmitted) && !empty($unsubmitted)) { echo '

The following students have not submitted this lesson essay:

'; echo '
'; echo ''; foreach ($unsubmitted as $user) { if (isset($users[$user->id])) { echo "\n".''; echo "\n"; echo "\n"; echo "\n"; echo ''."\n"; echo "
"; print_user_picture($user->id, $lesson->course, $user->picture); echo "".fullname($user, true)."'; 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 '
'; echo '
'; } print_simple_box_end(); } ?>