]> git.mjollnir.org Git - moodle.git/commitdiff
Fixes for displaying numbers of assignment submissions when
authormoodler <moodler>
Tue, 16 Mar 2004 13:54:29 +0000 (13:54 +0000)
committermoodler <moodler>
Tue, 16 Mar 2004 13:54:29 +0000 (13:54 +0000)
groups are active

mod/assignment/index.php
mod/assignment/lib.php
mod/assignment/view.php

index 5c16ee08225a2df73c28f40c7d20a836c8a5b8bd..3956110ddb5e9ace4a4795443809f9e105c21b9d 100644 (file)
         $table->align = array ("left", "left", "left");
     }
 
+    $currentgroup = get_current_group($course->id);
+    if ($currentgroup and isteacheredit($course->id)) {
+        $group = get_record("groups", "id", $currentgroup);
+        $groupname = " ($group->name)";
+    } else {
+        $groupname = "";
+    }
+
     $currentsection = "";
 
     foreach ($assignments as $assignment) {
@@ -53,9 +61,9 @@
                 $submitted =  "<a href=\"submissions.php?id=$assignment->id\">" .
                                 get_string("viewfeedback", "assignment") . "</a>";
             } else {
-                $count = assignment_count_real_submissions($assignment);
+                $count = assignment_count_real_submissions($assignment, $currentgroup);
                 $submitted = "<a href=\"submissions.php?id=$assignment->id\">" .
-                             get_string("viewsubmissions", "assignment", $count) . "</A>";
+                             get_string("viewsubmissions", "assignment", $count) . "</a>$groupname";
             }
         } else {
             if ($submission = assignment_get_submission($assignment, $USER)) {
index 8eb035dfefde99519bfb81d7ca206f1007e1bd21..e742b407ac6b8ba99aceac45500b4261a00e6ba4 100644 (file)
@@ -308,19 +308,27 @@ function assignment_log_info($log) {
                               AND u.id = '$log->userid'");
 }
 
-function assignment_count_real_submissions($assignment) {
+function assignment_count_real_submissions($assignment, $groupid=0) {
 /// Return all real assignment submissions by ENROLLED students (not empty ones)
     global $CFG;
 
-    return count_records_sql("SELECT count(a.id)
-                              FROM {$CFG->prefix}assignment_submissions a, 
-                                   {$CFG->prefix}user_students s,
-                                   {$CFG->prefix}user u
-                             WHERE a.userid = s.userid
-                               AND u.id = a.userid
-                               AND s.course = '$assignment->course'
-                               AND a.assignment = '$assignment->id' 
-                               AND a.timemodified > 0");
+    if ($groupid) {     /// How many in a particular group?
+        return count_records_sql("SELECT COUNT(*) 
+                                     FROM {$CFG->prefix}assignment_submissions a,
+                                          {$CFG->prefix}groups_members g
+                                    WHERE a.assignment = $assignment->id 
+                                      AND a.timemodified > 0
+                                      AND g.groupid = '$groupid' 
+                                      AND a.userid = g.userid ");
+    } else {                                  
+        return count_records_sql("SELECT COUNT(*)
+                                  FROM {$CFG->prefix}assignment_submissions a, 
+                                       {$CFG->prefix}user_students s
+                                 WHERE a.assignment = '$assignment->id' 
+                                   AND a.timemodified > 0
+                                   AND s.course = '$assignment->course'
+                                   AND a.userid = s.userid ");
+    }
 }
 
 function assignment_get_all_submissions($assignment, $sort="", $dir="DESC") {
index 9775749d5cc9cc8b8874869652580ce97945bddf..b286bffee0977f97610ea2e2c326d140b07a3600 100644 (file)
             echo "<a href=\"submissions.php?id=$assignment->id\">".
                   get_string("viewfeedback", "assignment")."</a>";
         } else {
-            $count = assignment_count_real_submissions($assignment);
+            $currentgroup = get_current_group($course->id);
+            if ($currentgroup and isteacheredit($course->id)) {
+                $group = get_record("groups", "id", $currentgroup);
+                $groupname = " ($group->name)";
+            } else {
+                $groupname = "";
+            }
+            $count = assignment_count_real_submissions($assignment, $currentgroup);
             echo "<a href=\"submissions.php?id=$assignment->id\">".
-                  get_string("viewsubmissions", "assignment", $count)."</a>";
+                  get_string("viewsubmissions", "assignment", $count)."</a>$groupname";
         }
         echo '</p>';
     } else if (!$cm->visible) {