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 '';
@@ -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);