}
$graded_date = $grade->dategraded;
- $graded_by = $grade->usermodified;
+ $graded_by = $grade->usermodified;
/// We need the teacher info
- $teacher = get_record('user', 'id', $graded_by);
+ if (!$teacher = get_record('user', 'id', $graded_by)) {
+ error('Could not find the teacher');
+ }
/// Print the feedback
print_heading(get_string('feedbackfromteacher', 'assignment', $this->course->teacher)); // TODO: fix teacher string
$navigation = build_navigation($this->strsubmissions, $this->cm);
print_header_simple(format_string($this->assignment->name,true), "", $navigation,
'', '', true, update_module_button($cm->id, $course->id, $this->strassignment), navmenu($course, $cm));
-
+
$course_context = get_context_instance(CONTEXT_COURSE, $course->id);
if (has_capability('gradereport/grader:view', $course_context) && has_capability('moodle/grade:viewall', $course_context)) {
- echo '<div class="allcoursegrades"><a href="' . $CFG->wwwroot . '/grade/report/grader/index.php?id=' . $course->id . '">'
+ echo '<div class="allcoursegrades"><a href="' . $CFG->wwwroot . '/grade/report/grader/index.php?id=' . $course->id . '">'
. get_string('seeallcoursegrades', 'grades') . '</a></div>';
}
}
$tableheaders = array('',
- get_string('fullnameuser'),
+ get_string('fullname'),
get_string('grade'),
get_string('comment', 'assignment'),
get_string('lastmodified').' ('.$course->student.')',
$teachermodified = '<div id="tt'.$auser->id.'"> </div>';
$status = '<div id="st'.$auser->id.'"> </div>';
- if ($final_grade->locked or $final_grade->overridden) {
+ if ($final_grade->locked or $final_grade->overridden) {
$grade = '<div id="g'.$auser->id.'">'.$final_grade->formatted_grade . '</div>';
} else if ($quickgrade) { // allow editing
$menu = choose_from_menu(make_grades_menu($this->assignment->grade),
require_once($libfile);
$assignmentclass = "assignment_$assignment->assignmenttype";
$ass = new $assignmentclass('staticonly');
- if ($result = $ass->get_coursemodule_info($coursemodule)) {
+ if ($result = $ass->get_coursemodule_info($coursemodule)) {
return $result;
} else {
$info = new object();
$info->name = $assignment->name;
return $info;
- }
+ }
} else {
debugging('Incorrect assignment type: '.$assignment->assignmenttype);
}
}
print_simple_box_end();
- if (!$editmode && $editable) {
- echo "<div style='text-align:center'>";
- print_single_button('view.php', array('id'=>$this->cm->id,'edit'=>'1'),
- get_string('editmysubmission', 'assignment'));
- echo "</div>";
- }
+ if (!$editmode && $editable) {
+ echo "<div style='text-align:center'>";
+ print_single_button('view.php', array('id'=>$this->cm->id,'edit'=>'1'),
+ get_string('editmysubmission', 'assignment'));
+ echo "</div>";
+ }
}
$update->data2 = $data->format;
$update->timemodified = time();
- return update_record('assignment_submissions', $update);
+ if (!update_record('assignment_submissions', $update)) {
+ return false;
+ }
+
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
+ return true;
}
function view_feedback($submission=NULL) {
- global $USER;
+ global $USER, $CFG;
+ require_once($CFG->libdir.'/gradelib.php');
if (!$submission) { /// Get submission for this assignment
$submission = $this->get_submission($USER->id);
return;
}
+ $grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $USER->id);
+ $item = $grading_info->items[0];
+ $grade = $item->grades[$USER->id];
+
+ if ($grade->hidden or $grade->grade === false) { // hidden or error
+ return;
+ }
+
+ if ($grade->grade === null and empty($grade->str_feedback)) { /// Nothing to show yet
+ return;
+ }
+
+ $graded_date = $grade->dategraded;
+ $graded_by = $grade->usermodified;
+
/// We need the teacher info
- if (! $teacher = get_record('user', 'id', $submission->teacher)) {
+ if (!$teacher = get_record('user', 'id', $graded_by)) {
error('Could not find the teacher');
}
echo '<td class="topic">';
echo '<div class="from">';
echo '<div class="fullname">'.fullname($teacher).'</div>';
- echo '<div class="time">'.userdate($submission->timemarked).'</div>';
+ echo '<div class="time">'.userdate($graded_date).'</div>';
echo '</div>';
echo '</td>';
echo '</tr>';
echo '<td class="content">';
if ($this->assignment->grade) {
echo '<div class="grade">';
- echo get_string("grade").': '.$this->display_grade($submission->grade);
+ echo get_string("grade").': '.$grade->str_long_grade;
echo '</div>';
echo '<div class="clearer"></div>';
}
echo '<div class="comment">';
- echo format_text($submission->submissioncomment, $submission->format);
+ echo $grade->str_feedback;
echo '</div>';
echo '</tr>';
$submission = $this->get_submission($USER->id);
$struploadafile = get_string('uploadafile');
- $maxbytes = $this->assignment->maxbytes == 0 ? $this->course->maxbytes : $this->assignment->maxbytes;
+ $maxbytes = $this->assignment->maxbytes == 0 ? $this->course->maxbytes : $this->assignment->maxbytes;
$strmaxsize = get_string('maxsize', '', display_size($maxbytes));
if ($this->is_finalized($submission)) {
if (update_record('assignment_submissions', $updated)) {
add_to_log($this->course->id, 'assignment', 'upload', 'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
redirect($returnurl);
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
+
} else {
$this->view_header(get_string('notes', 'assignment'));
notify(get_string('notesupdateerror', 'assignment'));
if (update_record('assignment_submissions', $updated)) {
add_to_log($this->course->id, 'assignment', 'upload',
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
+
} else {
$new_filename = $um->get_new_filename();
$this->view_header(get_string('upload'));
function finalize() {
global $USER;
- $userid = optional_param('userid', 0, PARAM_INT);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$returnurl = 'view.php?id='.$this->cm->id;
$submission = $this->get_submission($USER->id);
if (update_record('assignment_submissions', $updated)) {
add_to_log($this->course->id, 'assignment', 'upload', //TODO: add finalize action to log
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
$this->email_teachers($submission);
} else {
$this->view_header(get_string('submitformarking', 'assignment'));
$offset = required_param('offset', PARAM_INT);
$returnurl = "submissions.php?id={$this->cm->id}&userid=$userid&mode=$mode&offset=$offset&forcerefresh=1";
- // create but do not add student submission date
+ // create but do not add student submission date
$submission = $this->get_submission($userid, true, true);
if (!data_submitted() or !$this->can_finalize($submission)) {
if (update_record('assignment_submissions', $updated)) {
add_to_log($this->course->id, 'assignment', 'upload', //TODO: add finalize action to log
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($userid, false, true);
+ $this->update_grade($submission);
}
redirect($returnurl);
}
if (update_record('assignment_submissions', $updated)) {
//TODO: add unfinalize action to log
add_to_log($this->course->id, 'assignment', 'view submission', 'submissions.php?id='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($userid);
+ $this->update_grade($submission);
} else {
$this->view_header(get_string('submitformarking', 'assignment'));
notify(get_string('unfinalizeerror', 'assignment'));
if (update_record('assignment_submissions', $updated)) {
add_to_log($this->course->id, 'assignment', 'upload', //TODO: add delete action to log
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($userid);
+ $this->update_grade($submission);
}
redirect($returnurl);
}
*
*/
class assignment_uploadsingle extends assignment_base {
-
+
function print_student_answer($userid, $return=false){
global $CFG, $USER;
-
+
$filearea = $this->file_area_name($userid);
$output = '';
-
+
if ($basedir = $this->file_area($userid)) {
if ($files = get_directory_list($basedir)) {
-
+
foreach ($files as $key => $file) {
require_once($CFG->libdir.'/filelib.php');
-
+
$icon = mimeinfo('icon', $file);
-
+
if ($CFG->slasharguments) {
$ffurl = "$CFG->wwwroot/file.php/$filearea/$file";
} else {
$ffurl = "$CFG->wwwroot/file.php?file=/$filearea/$file";
}
//died right here
- //require_once($ffurl);
+ //require_once($ffurl);
$output = '<img src="'.$CFG->pixpath.'/f/'.$icon.'" class="icon" alt="'.$icon.'" />'.
'<a href="'.$ffurl.'" >'.$file.'</a><br />';
}
}
$output = '<div class="files">'.$output.'</div>';
- return $output;
+ return $output;
}
function assignment_uploadsingle($cmid='staticonly', $assignment=NULL, $cm=NULL, $course=NULL) {
}
function view() {
-
+
global $USER;
-
+
$context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
require_capability('mod/assignment:view', $context);
-
+
add_to_log($this->course->id, "assignment", "view", "view.php?id={$this->cm->id}", $this->assignment->id, $this->cm->id);
$this->view_header();
global $CFG;
$struploadafile = get_string("uploadafile");
- $maxbytes = $this->assignment->maxbytes == 0 ? $this->course->maxbytes : $this->assignment->maxbytes;
+ $maxbytes = $this->assignment->maxbytes == 0 ? $this->course->maxbytes : $this->assignment->maxbytes;
$strmaxsize = get_string('maxsize', '', display_size($maxbytes));
echo '<div style="text-align:center">';
function upload() {
-
+
global $CFG, $USER;
-
+
require_capability('mod/assignment:submit', get_context_instance(CONTEXT_MODULE, $this->cm->id));
$this->view_header(get_string('upload'));
unset($submission->data1); // Don't need to update this.
unset($submission->data2); // Don't need to update this.
if (update_record("assignment_submissions", $submission)) {
- add_to_log($this->course->id, 'assignment', 'upload',
+ add_to_log($this->course->id, 'assignment', 'upload',
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
$this->email_teachers($submission);
print_heading(get_string('uploadedfile'));
} else {
$newsubmission->timemodified = time();
$newsubmission->numfiles = 1;
if (insert_record('assignment_submissions', $newsubmission)) {
- add_to_log($this->course->id, 'assignment', 'upload',
+ add_to_log($this->course->id, 'assignment', 'upload',
'view.php?a='.$this->assignment->id, $this->assignment->id, $this->cm->id);
+ $submission = $this->get_submission($USER->id);
+ $this->update_grade($submission);
$this->email_teachers($newsubmission);
print_heading(get_string('uploadedfile'));
} else {