Fixes for displaying numbers of assignment submissions when
[moodle.git] / mod / assignment / view.php
blobb286bffee0977f97610ea2e2c326d140b07a3600
1 <?PHP // $Id$
3 require_once("../../config.php");
4 require_once("lib.php");
6 optional_variable($id); // Course Module ID
7 optional_variable($a); // Assignment ID
9 if ($id) {
10 if (! $cm = get_record("course_modules", "id", $id)) {
11 error("Course Module ID was incorrect");
14 if (! $course = get_record("course", "id", $cm->course)) {
15 error("Course is misconfigured");
18 if (! $assignment = get_record("assignment", "id", $cm->instance)) {
19 error("Course module is incorrect");
22 } else {
23 if (! $assignment = get_record("assignment", "id", $a)) {
24 error("Course module is incorrect");
26 if (! $course = get_record("course", "id", $assignment->course)) {
27 error("Course is misconfigured");
29 if (! $cm = get_coursemodule_from_instance("assignment", $assignment->id, $course->id)) {
30 error("Course Module ID was incorrect");
34 require_login($course->id);
36 add_to_log($course->id, "assignment", "view", "view.php?id=$cm->id", $assignment->id, $cm->id);
38 if ($course->category) {
39 $navigation = "<A HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->";
42 $strassignments = get_string("modulenameplural", "assignment");
43 $strassignment = get_string("modulename", "assignment");
45 print_header("$course->shortname: $assignment->name", "$course->fullname",
46 "$navigation <A HREF=index.php?id=$course->id>$strassignments</A> -> $assignment->name",
47 "", "", true, update_module_button($cm->id, $course->id, $strassignment), navmenu($course, $cm));
49 if (isteacher($course->id)) {
50 echo '<p align="right">';
51 if ($assignment->type == OFFLINE) {
52 echo "<a href=\"submissions.php?id=$assignment->id\">".
53 get_string("viewfeedback", "assignment")."</a>";
54 } else {
55 $currentgroup = get_current_group($course->id);
56 if ($currentgroup and isteacheredit($course->id)) {
57 $group = get_record("groups", "id", $currentgroup);
58 $groupname = " ($group->name)";
59 } else {
60 $groupname = "";
62 $count = assignment_count_real_submissions($assignment, $currentgroup);
63 echo "<a href=\"submissions.php?id=$assignment->id\">".
64 get_string("viewsubmissions", "assignment", $count)."</a>$groupname";
66 echo '</p>';
67 } else if (!$cm->visible) {
68 notice(get_string("activityiscurrentlyhidden"));
71 print_simple_box_start("CENTER");
72 print_heading($assignment->name, "CENTER");
74 $timedifference = $assignment->timedue - time();
75 if ($timedifference < 31536000) { // Don't bother showing dates over a year in the future
76 $strdifference = format_time($timedifference);
77 if ($timedifference < 0) {
78 $strdifference = "<font color=\"red\">$strdifference</font>";
80 $strduedate = userdate($assignment->timedue)." ($strdifference)";
81 echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />";
84 if ($assignment->grade < 0) {
85 $scaleid = - ($assignment->grade);
86 if ($scale = get_record("scale", "id", $scaleid)) {
87 $scalegrades = make_menu_from_list($scale->scale);
88 echo "<b>".get_string("grade")."</b>: $scale->name ";
89 print_scale_menu_helpbutton($course->id, $scale);
90 echo "<br />";
92 } else if ($assignment->grade > 0) {
93 echo "<b>".get_string("maximumgrade")."</b>: $assignment->grade<br>";
96 echo "<br />";
97 echo format_text($assignment->description, $assignment->format);
98 print_simple_box_end();
99 echo "<br />";
101 if (!isteacher($course->id) and !isguest()) {
102 $submission = assignment_get_submission($assignment, $USER);
104 if ($assignment->type == OFFLINE) {
105 if ($submission->timemarked) {
106 if (isset($scalegrades)) {
107 $submission->grade = $scalegrades[$submission->grade];
109 assignment_print_feedback($course, $submission);
111 } else {
112 if ($submission and $submission->timemodified) {
113 print_simple_box_start("center");
114 echo "<center>";
115 print_heading(get_string("yoursubmission","assignment").":", "center");
116 echo "<p><font size=-1><b>".get_string("lastmodified")."</b>: ".userdate($submission->timemodified)."</font></p>";
117 assignment_print_user_files($assignment, $USER);
118 print_simple_box_end();
119 } else {
120 print_heading(get_string("notsubmittedyet","assignment"));
123 echo "<hr size=1 noshade>";
125 if ($submission and $submission->timemarked) {
126 print_heading(get_string("submissionfeedback", "assignment").":", "center");
127 if (isset($scalegrades)) {
128 $submission->grade = $scalegrades[$submission->grade];
130 assignment_print_feedback($course, $submission);
132 if (!$submission->timemarked or $assignment->resubmit) {
133 if ($submission and $submission->timemodified) {
134 echo "<p align=\"center\">".get_string("overwritewarning", "assignment")."</p>";
136 print_heading(get_string("submitassignment", "assignment").":", "center");
137 assignment_print_upload_form($assignment);
142 print_footer($course);