--- loncom/interface/statistics/lonproblemanalysis.pm 2002/11/25 18:02:49 1.14
+++ loncom/interface/statistics/lonproblemanalysis.pm 2002/11/25 18:12:52 1.15
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# (Publication Handler
#
-# $Id: lonproblemanalysis.pm,v 1.14 2002/11/25 18:02:49 minaeibi Exp $
+# $Id: lonproblemanalysis.pm,v 1.15 2002/11/25 18:12:52 minaeibi Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -306,7 +306,7 @@ sub OptionResponseTable {
#---- Analyze Web Page -------------------------------------------------------
-#restore the student submissions and finding the result
+# Joson code for reading data from cache
=pod
sub OpStatus {
my ($problemID, $student, $ConceptData, $foil_to_concept,
@@ -347,6 +347,9 @@ sub OpStatus {
}
=cut
+
+#restore the student submissions and finding the result
+
sub OpStatus {
my ($problemID, $student, $ConceptData, $foil_to_concept,
$analyzeData, $cache, $courseID)=@_;
@@ -360,116 +363,44 @@ sub OpStatus {
my $flag=0;
my $tries=0;
-# $jr->print("
ID= $problemID
student= $student
prob= $symb
");
-
foreach my $id (@$ids) {
my ($part, $response) = split(/\./, $id);
-#=pod
- my %reshash=&Apache::lonnet::restore($symb,$courseID,$udom,$uname);
- if ($reshash{'version'}) {
- my $tries=0;
- #&Apache::lonhomework::showhash(%$analyzeData);
- for (my $version=1;$version<=$reshash{'version'};$version++) {
- my $time=$reshash{"$version:timestamp"};
-
- foreach my $key (sort(split(/\:/,$reshash{$version.':keys'}))) {
- if (($key=~/\.(\w+)\.(\w+)\.submission$/)) {
- my $Id1 = $1; my $Id2 = $2;
- #check if this is a repeat submission, if so skip it
- if ($reshash{"$version:resource.$Id1.previous"}) { next; }
- #if no solved this wasn't a real submission, ignore it
- if (!defined($reshash{"$version:resource.$Id1.solved"})) {
- &Apache::lonxml::debug("skipping ");
- next;
- }
- my $Resp = $reshash{"$version:$key"};
- my %submission=&Apache::lonnet::str2hash($Resp);
- foreach (keys %submission) {
- my $Ansr = $analyzeData->{"$Id1.$Id2.foil.value.$_"};
- if($submission{$_} eq $Ansr) {
+ my %reshash=&Apache::lonnet::restore($symb,$courseID,$udom,$uname);
+ if ($reshash{'version'}) {
+ my $tries=0;
+ for (my $version=1;$version<=$reshash{'version'};$version++) {
+ my $time=$reshash{"$version:timestamp"};
+ foreach my $key (sort(split(/\:/,$reshash{$version.':keys'}))) {
+ if (($key=~/\.(\w+)\.(\w+)\.submission$/)) {
+ my $Id1 = $1; my $Id2 = $2;
+ #check if this is a repeat submission, if so skip it
+ if ($reshash{"$version:resource.$Id1.previous"}) { next; }
+ #if no solved this wasn't a real submission, ignore it
+ if (!defined($reshash{"$version:resource.$Id1.solved"})) {
+ &Apache::lonxml::debug("skipping ");
+ next;
+ }
+ my $Resp = $reshash{"$version:$key"};
+ my %submission=&Apache::lonnet::str2hash($Resp);
+ foreach (keys %submission) {
+ my $Ansr = $analyzeData->{"$Id1.$Id2.foil.value.$_"};
+ if($submission{$_} eq $Ansr) {
&Decide("true", $foil_to_concept->{$_},
$time, $ConceptData);
- } else {
+ } else {
&Decide("false", $foil_to_concept->{$_},
$time, $ConceptData);
- }
- }
+ }
+ }
+ }
}
- }
- }
- }
-#=cut
-=pod
- my $time=$cache->{$student.':'.$problemID.':'.$part.':timestamp'};
- my @submissions = split(':::', $cache->{$student.':'.$problemID.':'.
- $part.':'.$response.
- ':submission'});
- foreach my $Resp (@submissions) {
- my %submission=&Apache::lonnet::str2hash($Resp);
- foreach (keys(%submission)) {
- if($submission{$_}) {
- my $answer = $analyzeData->{$id.'.foil.value.'.$_};
- if($submission{$_} eq $answer) {
- &Decide("true", $foil_to_concept->{$_},
- $time, $ConceptData);
- } else {
- &Decide("false", $foil_to_concept->{$_},
- $time, $ConceptData);
- }
- }
}
}
-=cut
}
return;
}
-=pod
-sub OpStatus {
- my ($rid,$student,$ConceptData,$foil_to_concept,$analyzeData,$cache)=@_;
- my ($uname,$udom)=split(/\:/,$student);
- my $code='U';
- $rid=~/(\d+)\.(\d+)/;
- my $symb=&Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.
- &Apache::lonnet::declutter($hash{'src_'.$rid});
- my %reshash=&Apache::lonnet::restore($symb,$cid,$udom,$uname);
- my @True = ();
- my @False = ();
- my $flag=0;
- if ($reshash{'version'}) {
- my $tries=0;
- &Apache::lonhomework::showhash(%Answer);
- for (my $version=1;$version<=$reshash{'version'};$version++) {
- my $time=$reshash{"$version:timestamp"};
-
- foreach my $key (sort(split(/\:/,$reshash{$version.':keys'}))) {
- if (($key=~/\.(\w+)\.(\w+)\.submission$/)) {
- my $Id1 = $1; my $Id2 = $2;
- #check if this is a repeat submission, if so skip it
- if ($reshash{"$version:resource.$Id1.previous"}) { next; }
- #if no solved this wasn't a real submission, ignore it
- if (!defined($reshash{"$version:resource.$Id1.solved"})) {
- &Apache::lonxml::debug("skipping ");
- next;
- }
- my $Resp = $reshash{"$version:$key"};
- my %submission=&Apache::lonnet::str2hash($Resp);
- foreach (keys %submission) {
- my $Ansr = $Answer{"$Id1.$Id2.foil.value.$_"};
- if ($submission{$_}) {
- if ($submission{$_} eq $Ansr) {
- &Decide("true",$_,$time );
- }
- else {&Decide("false",$_,$time );}
- }
- }
- }
- }
- }
- }
-}
-=cut
sub DrawGraph {
my ($k,$Src,$Concepts,$ConceptData)=@_;