[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm lonquickgrades.pm

bowersj2 lon-capa-cvs@mail.lon-capa.org
Fri, 15 Nov 2002 19:32:10 -0000


bowersj2		Fri Nov 15 14:32:10 2002 EDT

  Modified files:              
    /loncom/interface	lonnavmaps.pm lonquickgrades.pm 
  Log:
  /adm/quickgrades is now functional, albiet minimal. A couple of changes
  to lonnavmaps to accomodate reading more values from the return hash.
  
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.108 loncom/interface/lonnavmaps.pm:1.109
--- loncom/interface/lonnavmaps.pm:1.108	Fri Nov 15 13:10:22 2002
+++ loncom/interface/lonnavmaps.pm	Fri Nov 15 14:32:09 2002
@@ -2,7 +2,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Handler
 #
-# $Id: lonnavmaps.pm,v 1.108 2002/11/15 18:10:22 bowersj2 Exp $
+# $Id: lonnavmaps.pm,v 1.109 2002/11/15 19:32:09 bowersj2 Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -526,7 +526,6 @@
                 }
 
                 $r->print("  ${newBranchText}${linkopen}$icon${linkclose}\n");
-                #$r->print($curRes->awarded($part));
 
                 my $curMarkerBegin = "";
                 my $curMarkerEnd = "";
@@ -2040,8 +2039,8 @@
     (my $self, my $part) = @_;
     return $self->parmval("type", $part);
 }
-sub weight {
-    (my $self, my $part) = @_;
+sub weight { 
+    my $self = shift; my $part = shift;
     return $self->parmval("weight", $part);
 }
 
Index: loncom/interface/lonquickgrades.pm
diff -u loncom/interface/lonquickgrades.pm:1.1 loncom/interface/lonquickgrades.pm:1.2
--- loncom/interface/lonquickgrades.pm:1.1	Thu Nov 14 16:36:23 2002
+++ loncom/interface/lonquickgrades.pm	Fri Nov 15 14:32:09 2002
@@ -60,7 +60,7 @@
     # Create the nav map
     my $navmap = Apache::lonnavmaps::navmap->new(
                         $ENV{"request.course.fn"}.".db",
-                        $ENV{"request.course.fn"}."_parms.db", 0, 0);
+                        $ENV{"request.course.fn"}."_parms.db", 1, 0);
 
     if (!defined($navmap)) {
         my $requrl = $r->uri;
@@ -69,15 +69,28 @@
     }
  
     # Header
-    $r->print(&Apache::loncommon::bodytag('Navigate Course Map','',
+    $r->print(&Apache::loncommon::bodytag('Quick Score Display','',
                                           ''));
 
+    $navmap->init();
+
     # End navmap using boilerplate
 
+    # Col labels
+    $r->print(<<TABLETOP);
+<table border="1" cellpadding="3" cellspacing="0">
+  <tr>
+    <td align="center"><b>Problem</b></td>
+    <td align="center"><b>Score</b></td>
+  </tr>
+TABLETOP
+
     my $iterator = $navmap->getIterator(undef, undef, undef, 1);
     my $depth = 1;
     $iterator->next(); # ignore first BEGIN_MAP
     my $curRes = $iterator->next();
+    my $totalAvailable = 0;
+    my $total = 0;
    
     while ( $depth > 0 ) {
         if ($curRes == $iterator->BEGIN_MAP()) {$depth++;}
@@ -85,11 +98,37 @@
 
         if (ref($curRes) && $curRes->is_problem()) {
             my $title = $curRes->compTitle();
-            $r->print($title . '<br />' . "\n");
+            $r->print('    <tr>');
+            my $stack = $iterator->getStack();
+            my $src = Apache::lonnavmaps::getLinkForResource($stack);
+            my $srcHasQuestion = $src =~ /\?/;
+            my $link = $src.
+                ($srcHasQuestion?'&':'?') .
+                'symb='.&Apache::lonnet::escape($curRes->symb()).
+                '"';
+            $r->print("<td><a href=\"$link\">$title</td>");
+            
+            my $avail = 0;
+            my $score = 0;
+            my $parts = $curRes->parts();
+            for my $part (@{$parts}) {
+                my $partAvail = $curRes->weight($part);
+                my $partScore = $curRes->awarded($part) * $partAvail;
+                $avail += $partAvail;
+                $score += $partScore;
+            }
+            
+            $r->print("<td align=\"right\">$score / $avail</td></tr>\n");
+            $totalAvailable += $avail;
+            $total += $score;
         }
 
         $curRes = $iterator->next();
     }
+
+    $r->print("<td colspan=\"2\" align=\"right\">Total Points Scored: <b>$total</b>");
+    $r->print("<br />Total Points Available: <b>$totalAvailable</b>");
+    $r->print("</td></tr></table>\n\n");
 
     $r->print("</body></html>");