Diff for /loncom/interface/statistics/lonproblemanalysis.pm between versions 1.14 and 1.15

version 1.14, 2002/11/25 18:02:49 version 1.15, 2002/11/25 18:12:52
Line 306  sub OptionResponseTable { Line 306  sub OptionResponseTable {
   
 #---- Analyze Web Page -------------------------------------------------------  #---- Analyze Web Page -------------------------------------------------------
   
 #restore the student submissions and finding the result  # Joson code for reading data from cache
 =pod  =pod
 sub OpStatus {  sub OpStatus {
     my ($problemID, $student, $ConceptData, $foil_to_concept,      my ($problemID, $student, $ConceptData, $foil_to_concept,
Line 347  sub OpStatus { Line 347  sub OpStatus {
 }  }
 =cut  =cut
   
   
   #restore the student submissions and finding the result
   
 sub OpStatus {  sub OpStatus {
     my ($problemID, $student, $ConceptData, $foil_to_concept,      my ($problemID, $student, $ConceptData, $foil_to_concept,
         $analyzeData, $cache, $courseID)=@_;          $analyzeData, $cache, $courseID)=@_;
Line 360  sub OpStatus { Line 363  sub OpStatus {
     my $flag=0;      my $flag=0;
     my $tries=0;      my $tries=0;
   
 #    $jr->print("<br> ID= $problemID <br> student= $student<br> prob= $symb<br>");  
   
     foreach my $id (@$ids) {      foreach my $id (@$ids) {
  my ($part, $response) = split(/\./, $id);   my ($part, $response) = split(/\./, $id);
 #=pod      my %reshash=&Apache::lonnet::restore($symb,$courseID,$udom,$uname);
     my %reshash=&Apache::lonnet::restore($symb,$courseID,$udom,$uname);      if ($reshash{'version'}) {
     if ($reshash{'version'}) {              my $tries=0;
         my $tries=0;              for (my $version=1;$version<=$reshash{'version'};$version++) {
  #&Apache::lonhomework::showhash(%$analyzeData);       my $time=$reshash{"$version:timestamp"};
  for (my $version=1;$version<=$reshash{'version'};$version++) {       foreach my $key (sort(split(/\:/,$reshash{$version.':keys'}))) {
     my $time=$reshash{"$version:timestamp"};                      if (($key=~/\.(\w+)\.(\w+)\.submission$/)) {
           my $Id1 = $1; my $Id2 = $2;
     foreach my $key (sort(split(/\:/,$reshash{$version.':keys'}))) {          #check if this is a repeat submission, if so skip it
  if (($key=~/\.(\w+)\.(\w+)\.submission$/)) {                   if ($reshash{"$version:resource.$Id1.previous"}) { next; }
     my $Id1 = $1; my $Id2 = $2;          #if no solved this wasn't a real submission, ignore it
     #check if this is a repeat submission, if so skip it          if (!defined($reshash{"$version:resource.$Id1.solved"})) {
              if ($reshash{"$version:resource.$Id1.previous"}) { next; }      &Apache::lonxml::debug("skipping ");
     #if no solved this wasn't a real submission, ignore it      next;
     if (!defined($reshash{"$version:resource.$Id1.solved"})) {          }
  &Apache::lonxml::debug("skipping ");          my $Resp = $reshash{"$version:$key"};
  next;          my %submission=&Apache::lonnet::str2hash($Resp);
     }          foreach (keys %submission) {
     my $Resp = $reshash{"$version:$key"};      my $Ansr = $analyzeData->{"$Id1.$Id2.foil.value.$_"};
     my %submission=&Apache::lonnet::str2hash($Resp);                         if($submission{$_} eq $Ansr) {
     foreach (keys %submission) {  
  my $Ansr = $analyzeData->{"$Id1.$Id2.foil.value.$_"};  
                     if($submission{$_} eq $Ansr) {  
                         &Decide("true", $foil_to_concept->{$_},                          &Decide("true", $foil_to_concept->{$_},
                                 $time, $ConceptData);                                  $time, $ConceptData);
                     } else {                         } else {
                         &Decide("false", $foil_to_concept->{$_},                          &Decide("false", $foil_to_concept->{$_},
  $time, $ConceptData);   $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;      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 {  sub DrawGraph {
     my ($k,$Src,$Concepts,$ConceptData)=@_;      my ($k,$Src,$Concepts,$ConceptData)=@_;

Removed from v.1.14  
changed lines
  Added in v.1.15


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>