[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;
}