diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 3411192bad2..f1b9f075a4f 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -151,9 +151,10 @@ class assignment_base { if (!$submission) { /// Get submission for this assignment $submission = $this->get_submission($USER->id); - if (empty($submission->timemarked)) { /// Nothing to show, so print nothing - return; - } + } + + if (empty($submission->timemarked)) { /// Nothing to show, so print nothing + return; } /// We need the teacher info @@ -172,8 +173,12 @@ class assignment_base { print_user_picture($teacher->id, $this->course->id, $teacher->picture); echo ''; echo ''; + echo '
'; echo '
'.fullname($teacher).'
'; echo '
'.userdate($submission->timemarked).'
'; + echo '
'; + $this->print_user_files($submission->userid); + echo ''; echo ''; echo ''; @@ -182,11 +187,7 @@ class assignment_base { echo ''; if ($this->assignment->grade) { echo '
'; - if ($submission->grade or $submission->timemarked) { - echo get_string("grade").': '.$this->display_grade($submission->grade); - } else { - echo get_string("nograde"); - } + echo get_string("grade").': '.$this->display_grade($submission->grade); echo '
'; } @@ -411,9 +412,15 @@ class assignment_base { echo ''; print_user_picture($user->id, $this->course->id, $user->picture); echo ''; - echo ''; + echo ''; + echo '
'; echo '
'.fullname($user, true).'
'; - $this->print_user_files($user); + if ($submission->timemodified) { + echo '
'.userdate($submission->timemodified). + $this->display_lateness($submission->timemodified).'
'; + } + echo '
'; + $this->print_user_files($user->id); echo ''; echo ''; @@ -822,15 +829,15 @@ class assignment_base { } } - function print_user_files($user, $return=false) { + function print_user_files($userid, $return=false) { global $CFG; - $filearea = $this->file_area_name($user); + $filearea = $this->file_area_name($userid); $output = ''; - if ($basedir = $this->file_area($user)) { + if ($basedir = $this->file_area($userid)) { if ($files = get_directory_list($basedir)) { foreach ($files as $key => $file) { require_once($CFG->libdir.'/filelib.php'); @@ -856,16 +863,28 @@ class assignment_base { echo $output; } + function count_user_files($userid) { + global $CFG; - function file_area_name($user) { + $filearea = $this->file_area_name($userid); + + if ($basedir = $this->file_area($userid)) { + if ($files = get_directory_list($basedir)) { + return count($files); + } + } + return 0; + } + + function file_area_name($userid) { // Creates a directory file name, suitable for make_upload_directory() global $CFG; - return $this->course->id.'/'.$CFG->moddata.'/assignment/'.$this->assignment->id.'/'.$user->id; + return $this->course->id.'/'.$CFG->moddata.'/assignment/'.$this->assignment->id.'/'.$userid; } - function file_area($user) { - return make_upload_directory( $this->file_area_name($user) ); + function file_area($userid) { + return make_upload_directory( $this->file_area_name($userid) ); } function user_outline($user) { @@ -882,7 +901,7 @@ class assignment_base { function user_complete($user) { if ($submission = $this->get_submission($user->id)) { - if ($basedir = $this->file_area($user)) { + if ($basedir = $this->file_area($user->id)) { if ($files = get_directory_list($basedir)) { $countfiles = count($files)." ".get_string("uploadedfiles", "assignment"); foreach ($files as $file) { @@ -894,9 +913,9 @@ class assignment_base { print_simple_box_start(); echo get_string("lastmodified").": "; echo userdate($submission->timemodified); - echo $this->display_lateness($this->assignment->timedue - $this->submission->timemodified); + echo $this->display_lateness($submission->timemodified); - $this->print_user_files($user); + $this->print_user_files($user->id); echo '
'; @@ -913,13 +932,14 @@ class assignment_base { } } - function display_lateness($time) { + function display_lateness($timesubmitted) { + $time = $this->assignment->timedue - $timesubmitted; if ($time < 0) { $timetext = get_string('late', 'assignment', format_time($time)); - return ' ('.$timetext.')'; + return ' ('.$timetext.')'; } else { $timetext = get_string('early', 'assignment', format_time($time)); - return ' ('.$timetext.')'; + return ' ('.$timetext.')'; } } diff --git a/mod/assignment/styles.php b/mod/assignment/styles.php index bb91a87f6ee..21598454261 100644 --- a/mod/assignment/styles.php +++ b/mod/assignment/styles.php @@ -1,5 +1,5 @@ #mod-assignment-submissions .submission .content, -#mod-assignment-submissions .submission .heading, +#mod-assignment-submissions .submission .topic, #mod-assignment-submissions .submission .picture { padding: 10px; @@ -8,12 +8,22 @@ border-color:#DDDDDD; } -#mod-assignment-submissions .submission .fullname { +.mod-assignment .topic .files { + float: right; + background-color: #EFEFEF; + padding:5px; +} + +.mod-assignment .topic .from { float: left; } -#mod-assignment-submissions .submission .files { - float: right; +.mod-assignment .topic .time { + font-size: 0.8em; +} + +.mod-assignment .late { + color: red; } #mod-assignment-submissions .generaltable .r1 { diff --git a/mod/assignment/type/uploadsingle/assignment.class.php b/mod/assignment/type/uploadsingle/assignment.class.php index fe4dd1715ae..312fc1c8b62 100644 --- a/mod/assignment/type/uploadsingle/assignment.class.php +++ b/mod/assignment/type/uploadsingle/assignment.class.php @@ -54,6 +54,8 @@ class assignment_uploadsingle extends assignment_base { function view() { + global $USER; + $this->view_header(); print_simple_box_start('center'); @@ -71,7 +73,9 @@ class assignment_uploadsingle extends assignment_base { $this->view_feedback(); - $this->view_upload_form(); + if (!$this->count_user_files($USER->id) || $this->assignment->resubmit) { + $this->view_upload_form(); + } $this->view_footer(); } @@ -83,7 +87,7 @@ class assignment_uploadsingle extends assignment_base { echo '
wwwroot/mod/assignment/upload.php\">"; echo ''; - require_once($CFG->dirroot.'/lib/uploadlib.php'); + require_once($CFG->libdir.'/uploadlib.php'); upload_print_form_fragment(1,array('newfile'),false,null,0,$this->assignment->maxbytes,false); echo ''; echo '
'; @@ -91,32 +95,6 @@ class assignment_uploadsingle extends assignment_base { } - function get_user_file($user) { - global $CFG; - - $tmpfile = ""; - - $filearea = file_area_name($user); - - if ($basedir = file_area($user)) { - if ($files = get_directory_list($basedir)) { - foreach ($files as $file) { // Just gets the first one - $icon = mimeinfo("icon", $file); - if ($CFG->slasharguments) { - $ffurl = "file.php/$filearea/$file"; - } else { - $ffurl = "file.php?file=/$filearea/$file"; - } - $tmpfile->url = $ffurl; - $tmpfile->name = $file; - $tmpfile->icon = $icon; - break; - } - } - } - return $tmpfile; - } - function upload() { global $CFG, $USER; @@ -128,7 +106,7 @@ class assignment_uploadsingle extends assignment_base { } } - $dir = $this->file_area_name($USER); + $dir = $this->file_area_name($USER->id); require_once($CFG->dirroot.'/lib/uploadlib.php'); $um = new upload_manager('newfile',true,false,$course,false,$this->assignment->maxbytes);