Skip to content

Commit

Permalink
MDL-13899 assignments should be now sending proper submissions and gr…
Browse files Browse the repository at this point in the history
…ading dates into gradebook
  • Loading branch information
skodak committed Mar 19, 2008
1 parent 28df24f commit 5db52de
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 38 deletions.
16 changes: 9 additions & 7 deletions mod/assignment/lib.php
Expand Up @@ -231,10 +231,12 @@ function view_feedback($submission=NULL) {
}

$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
Expand Down Expand Up @@ -1043,10 +1045,10 @@ function display_submissions($message='') {
$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>';
}

Expand Down Expand Up @@ -1236,7 +1238,7 @@ function display_submissions($message='') {
$teachermodified = '<div id="tt'.$auser->id.'">&nbsp;</div>';
$status = '<div id="st'.$auser->id.'">&nbsp;</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),
Expand Down Expand Up @@ -2795,13 +2797,13 @@ function assignment_get_coursemodule_info($coursemodule) {
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);
Expand Down
20 changes: 13 additions & 7 deletions mod/assignment/type/online/assignment.class.php
Expand Up @@ -107,12 +107,12 @@ function view() {
}
}
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>";
}

}

Expand Down Expand Up @@ -167,7 +167,13 @@ function update_submission($data) {
$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;
}


Expand Down
45 changes: 37 additions & 8 deletions mod/assignment/type/upload/assignment.class.php
Expand Up @@ -72,7 +72,8 @@ function view() {


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);
Expand All @@ -87,8 +88,23 @@ function view_feedback($submission=NULL) {
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');
}

Expand All @@ -104,7 +120,7 @@ function view_feedback($submission=NULL) {
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>';
Expand All @@ -114,13 +130,13 @@ function view_feedback($submission=NULL) {
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>';

Expand All @@ -140,7 +156,7 @@ function view_upload_form() {
$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)) {
Expand Down Expand Up @@ -498,6 +514,9 @@ function upload_notes() {
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'));
Expand Down Expand Up @@ -580,6 +599,9 @@ function upload_file() {
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'));
Expand All @@ -601,7 +623,6 @@ function upload_file() {
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);
Expand All @@ -628,6 +649,8 @@ function finalize() {
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'));
Expand All @@ -645,7 +668,7 @@ function finalizeclose() {
$offset = required_param('offset', PARAM_INT);
$returnurl = "submissions.php?id={$this->cm->id}&amp;userid=$userid&amp;mode=$mode&amp;offset=$offset&amp;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)) {
Expand All @@ -659,6 +682,8 @@ function finalizeclose() {
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);
}
Expand All @@ -681,6 +706,8 @@ function unfinalize() {
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'));
Expand Down Expand Up @@ -809,6 +836,8 @@ function delete_file() {
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);
}
Expand Down
36 changes: 20 additions & 16 deletions mod/assignment/type/uploadsingle/assignment.class.php
Expand Up @@ -5,38 +5,38 @@
*
*/
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) {
Expand All @@ -45,12 +45,12 @@ function assignment_uploadsingle($cmid='staticonly', $assignment=NULL, $cm=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();
Expand Down Expand Up @@ -82,7 +82,7 @@ function view_upload_form() {
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">';
Expand All @@ -101,9 +101,9 @@ function view_upload_form() {


function upload() {

global $CFG, $USER;

require_capability('mod/assignment:submit', get_context_instance(CONTEXT_MODULE, $this->cm->id));

$this->view_header(get_string('upload'));
Expand Down Expand Up @@ -131,8 +131,10 @@ function 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 {
Expand All @@ -143,8 +145,10 @@ function upload() {
$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 {
Expand Down

0 comments on commit 5db52de

Please sign in to comment.