From deba4dc328d478cbc6d0be2c1de0e3f77ef63c91 Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Wed, 3 Oct 2012 16:23:21 +0800 Subject: [PATCH] MDL-29689 Assignment 2.2: A student can see feedback for assignments with no-grades --- mod/assignment/lib.php | 40 +++++++++++-------- .../type/upload/assignment.class.php | 15 +++---- .../type/uploadsingle/assignment.class.php | 15 +++---- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 2dd715e4508..33ce9bd24b4 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -269,7 +269,7 @@ class assignment_base { * @global object * @global object * @param object $submission The submission object or NULL in which case it will be loaded - * @return boolean + * @return bool */ function view_feedback($submission=NULL) { global $USER, $CFG, $DB, $OUTPUT, $PAGE; @@ -298,36 +298,40 @@ class assignment_base { $item = $grading_info->items[0]; $grade = $item->grades[$userid]; - $fs = get_file_storage(); - $noresponsefiles = $fs->is_area_empty($this->context->id, 'mod_assignment', 'response', $submission->id); + if ($grade->hidden or $grade->grade === false) { // hidden or error + return false; + } - if ($grade->grade === null ) { // No grade to show yet + if ($grade->grade === null and empty($grade->str_feedback)) { // No grade to show yet + // If sumbission then check if feedback is avaiable to show else return. + if (!$submission) { + return false; + } + + $fs = get_file_storage(); + $noresponsefiles = $fs->is_area_empty($this->context->id, 'mod_assignment', 'response', $submission->id); if (empty($submission->submissioncomment) && $noresponsefiles) { // Nothing to show yet return false; } - + // We need the teacher info if (!$teacher = $DB->get_record('user', array('id'=>$submission->teacher))) { print_error('cannotfindteacher'); } - $feedback_date = $submission->timemarked; - $feedback = $submission->submissioncomment; - $str_long_grade = '-'; + $feedbackdate = $submission->timemarked; + $feedback = format_text($submission->submissioncomment, $submission->format); + $strlonggrade = '-'; } else { - if ($grade->hidden or $grade->grade === false) { // hidden or error - return false; - } - // We need the teacher info if (!$teacher = $DB->get_record('user', array('id'=>$grade->usermodified))) { print_error('cannotfindteacher'); } - $feedback_date = $grade->dategraded; + $feedbackdate = $grade->dategraded; $feedback = $grade->str_feedback; - $str_long_grade = $grade->str_long_grade; + $strlonggrade = $grade->str_long_grade; } // Print the feedback @@ -346,7 +350,7 @@ class assignment_base { if ($teacher) { echo '
'.fullname($teacher).'
'; } - echo '
'.userdate($feedback_date).'
'; + echo '
'.userdate($feedbackdate).'
'; echo ''; echo ''; echo ''; @@ -356,7 +360,7 @@ class assignment_base { echo ''; if ($this->assignment->grade) { - $gradestr = '
'. get_string("grade").': '.$str_long_grade. '
'; + $gradestr = '
'. get_string("grade").': '.$strlonggrade. '
'; if (!empty($submission) && $controller = get_grading_manager($this->context, 'mod_assignment', 'submission')->get_active_controller()) { $controller->set_grade_range(make_grades_menu($this->assignment->grade)); echo $controller->render_grade($PAGE, $submission->id, $item, $gradestr, has_capability('mod/assignment:grade', $this->context)); @@ -370,7 +374,9 @@ class assignment_base { echo $feedback; echo ''; echo ''; - + if (method_exists($this, 'view_responsefile')) { + $this->view_responsefile($submission); + } echo ''; return true; diff --git a/mod/assignment/type/upload/assignment.class.php b/mod/assignment/type/upload/assignment.class.php index 85a9633313e..25446f6fcb8 100644 --- a/mod/assignment/type/upload/assignment.class.php +++ b/mod/assignment/type/upload/assignment.class.php @@ -65,9 +65,7 @@ class assignment_upload extends assignment_base { if (is_enrolled($this->context, $USER)) { if ($submission = $this->get_submission($USER->id)) { if ($submission->timemarked) { - if($this->view_feedback($submission)) { - $this->view_responsefile($submission); - } + $this->view_feedback($submission); } $filecount = $this->count_user_files($submission->id); @@ -113,15 +111,14 @@ class assignment_upload extends assignment_base { * @param object $submission The submission object */ function view_responsefile($submission) { - $responsefiles = $this->print_responsefiles($submission->userid, true); - if (!empty($responsefiles)) { - echo ''; + $fs = get_file_storage(); + $noresponsefiles = $fs->is_area_empty($this->context->id, 'mod_assignment', 'response', $submission->id); + if (!$noresponsefiles) { echo ''; echo ''; echo ''; - echo '
 '; - echo $responsefiles; - echo '
'; + echo $this->print_responsefiles($submission->userid); + echo ''; } } diff --git a/mod/assignment/type/uploadsingle/assignment.class.php b/mod/assignment/type/uploadsingle/assignment.class.php index 4332c3475bc..b37c24f7567 100644 --- a/mod/assignment/type/uploadsingle/assignment.class.php +++ b/mod/assignment/type/uploadsingle/assignment.class.php @@ -78,9 +78,7 @@ class assignment_uploadsingle extends assignment_base { if ($submission = $this->get_submission($USER->id)) { $filecount = $this->count_user_files($submission->id); if ($submission->timemarked) { - if($this->view_feedback($submission)) { - $this->view_responsefile($submission); - } + $this->view_feedback($submission); } if ($filecount) { echo $OUTPUT->box($this->print_user_files($USER->id, true), 'generalbox boxaligncenter'); @@ -102,15 +100,14 @@ class assignment_uploadsingle extends assignment_base { * @param object $submission The submission object */ function view_responsefile($submission) { - $responsefiles = $this->print_responsefiles($submission->userid, true); - if (!empty($responsefiles)) { - echo ''; + $fs = get_file_storage(); + $noresponsefiles = $fs->is_area_empty($this->context->id, 'mod_assignment', 'response', $submission->id); + if (!$noresponsefiles) { echo ''; echo ''; echo ''; - echo '
 '; - echo $responsefiles; - echo '
'; + echo $this->print_responsefiles($submission->userid); + echo ''; } }