[LON-CAPA-cvs] cvs: loncom /interface loncoursedata.pm /interface/statistics lonpercentage.pm

stredwic lon-capa-cvs@mail.lon-capa.org
Fri, 30 Aug 2002 17:11:44 -0000


stredwic		Fri Aug 30 13:11:44 2002 EDT

  Modified files:              
    /loncom/interface	loncoursedata.pm 
    /loncom/interface/statistics	lonpercentage.pm 
  Log:
  First, was getting a strange warning for doing scalar(split(...)) in 
  lonpercentage.  Second I think I fixed the updating of symbols in
  chart after they have been changed.  I tried it out and it work for
  my test case.  We will see if it works for everyone.  The problem
  is as I suspected, and because I didn't remove the keys when the
  students data was updated it was still using old data.  This
  would occur if the data didn't overwrite, but changed supporting
  information.
  
  
Index: loncom/interface/loncoursedata.pm
diff -u loncom/interface/loncoursedata.pm:1.25 loncom/interface/loncoursedata.pm:1.26
--- loncom/interface/loncoursedata.pm:1.25	Wed Aug 28 23:04:10 2002
+++ loncom/interface/loncoursedata.pm	Fri Aug 30 13:11:43 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # (Publication Handler
 #
-# $Id: loncoursedata.pm,v 1.25 2002/08/29 03:04:10 stredwic Exp $
+# $Id: loncoursedata.pm,v 1.26 2002/08/30 17:11:43 stredwic Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -693,11 +693,22 @@
         return;
     }
 
+    if(defined($cache->{$name.':keys'})) {
+	foreach (split(':::', $cache->{$name.':keys'})) {
+	    delete $cache->{$name.':'.$_};
+	}
+    }
+
+    my %courseKeys;
     # user name:domain was prepended earlier in DownloadCourseInformation
     foreach (keys %$courseData) {
+	my $currentKey =~ s/^$name//;
+	$courseKeys{$currentKey}++;
         $cache->{$_}=$courseData->{$_};
     }
 
+    $cache->{$name.':keys'} = join(':::', keys(%courseKeys));
+
     return;
 }
 
@@ -753,6 +764,13 @@
         return;
     }
 
+    my %allkeys;
+    if(defined($output->{$name.':keys'})) {
+	foreach (split(':::', $output->{$name.':keys'})) {
+	    delete $output->{$name.':'.$_};
+	}
+    }
+
     my ($username,$domain)=split(':',$name);
 
     my $Version;
@@ -775,9 +793,13 @@
                     $output->{$name.':'.$problemID.':'.$part.':tries'} = 0;
                     $output->{$name.':'.$problemID.':'.$part.':awarded'} = 0;
                     $output->{$name.':'.$problemID.':'.$part.':code'} = ' ';
+		    $allkeys{$name.':'.$problemID.':'.$part.':tries'}++;
+		    $allkeys{$name.':'.$problemID.':'.$part.':awarded'}++;
+		    $allkeys{$name.':'.$problemID.':'.$part.':code'}++;
                     $totalProblems++;
                 }
                 $output->{$name.':'.$problemID.':NoVersion'} = 'true';
+		$allkeys{$name.':'.$problemID.':NoVersion'}++;
                 next;
             }
 
@@ -860,6 +882,7 @@
                                                  ':parts'})) {
                 $output->{$name.':'.$problemID.':'.$part.':wrong'} = 
                     $partData{$part.':tries'};
+		$allkeys{$name.':'.$problemID.':'.$part.':wrong'}++;
 
                 if($partData{$part.':code'} eq '*') {
                     $output->{$name.':'.$problemID.':'.$part.':wrong'}--;
@@ -875,14 +898,22 @@
                     $partData{$part.':code'};
                 $output->{$name.':'.$problemID.':'.$part.':awarded'} =
                     $partData{$part.':awarded'};
+		$allkeys{$name.':'.$problemID.':'.$part.':tries'}++;
+		$allkeys{$name.':'.$problemID.':'.$part.':code'}++;
+		$allkeys{$name.':'.$problemID.':'.$part.':awarded'}++;
+
                 $totalAwarded += $partData{$part.':awarded'};
                 $output->{$name.':'.$problemID.':'.$part.':timestamp'} =
                     $partData{$part.':timestamp'};
+		$allkeys{$name.':'.$problemID.':'.$part.':timestamp'}++;
+
                 foreach my $response (split(':', $data->{$sequence.':'.
                                                          $problemID.':'.
                                                          $part.':responseIDs'})) {
                     $output->{$name.':'.$problemID.':'.$part.':'.$response.
                               ':submission'}=join(':::',@submissions);
+		    $allkeys{$name.':'.$problemID.':'.$part.':'.$response.
+			     ':submission'}++;
                 }
 
                 if($partData{$part.':code'} ne 'x') {
@@ -892,6 +923,7 @@
         }
 
         $output->{$name.':'.$sequence.':problemsCorrect'} = $problemsCorrect;
+	$allkeys{$name.':'.$sequence.':problemsCorrect'}++;
         $problemsSolved += $problemsCorrect;
 	$problemsCorrect=0;
     }
@@ -899,6 +931,11 @@
     $output->{$name.':problemsSolved'} = $problemsSolved;
     $output->{$name.':totalProblems'} = $totalProblems;
     $output->{$name.':totalAwarded'} = $totalAwarded;
+    $allkeys{$name.':problemsSolved'}++;
+    $allkeys{$name.':totalProblems'}++;
+    $allkeys{$name.':totalAwarded'}++;
+
+    $output->{$name.':keys'} = join(':::', keys(%allkeys));
 
     return;
 }
Index: loncom/interface/statistics/lonpercentage.pm
diff -u loncom/interface/statistics/lonpercentage.pm:1.1 loncom/interface/statistics/lonpercentage.pm:1.2
--- loncom/interface/statistics/lonpercentage.pm:1.1	Fri Aug 30 11:35:08 2002
+++ loncom/interface/statistics/lonpercentage.pm	Fri Aug 30 13:11:44 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # (Publication Handler
 #
-# $Id: lonpercentage.pm,v 1.1 2002/08/30 15:35:08 stredwic Exp $
+# $Id: lonpercentage.pm,v 1.2 2002/08/30 17:11:44 stredwic Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -237,7 +237,8 @@
     my $max = 0;
     foreach my $key (sort(keys(%percentages))) {
 	push(@percent, $key);
-	my $count = scalar(split(':::', $percentages{$key}));
+	my @temp = split(':::', $percentages{$key});
+	my $count = scalar(@temp);
 	if($count > $max) {
 	    $max = $count;
 	}