Diff for /loncom/interface/statistics/lonstathelpers.pm between versions 1.5 and 1.6

version 1.5, 2004/03/03 22:57:31 version 1.6, 2004/03/08 19:12:18
Line 354  Inputs: $resource: a resource object Line 354  Inputs: $resource: a resource object
   
 Returns: $answer  Returns: $answer
   
   If $partid and $respid are specified, $answer is simply a scalar containing
   the correct answer for the response.
   
   If $partid or $respid are undefined, $answer will be a hash reference with
   keys $partid.'.'.$respid.'.answer'.
   
 =cut  =cut
   
 #####################################################  #####################################################
Line 371  sub analyze_problem_as_student { Line 377  sub analyze_problem_as_student {
                                         'grade_courseid' => $courseid));                                          'grade_courseid' => $courseid));
     (my $garbage,$Answ)=split(/_HASH_REF__/,$Answ,2);      (my $garbage,$Answ)=split(/_HASH_REF__/,$Answ,2);
     my %Answer=&Apache::lonnet::str2hash($Answ);      my %Answer=&Apache::lonnet::str2hash($Answ);
     my $prefix = $partid.'.'.$respid;      #
     my $key = $prefix.'.answer';      if (! defined($partid)) {
           # If you do not specify a partid, you get them all.
           foreach my $partid (@{$resource->{'parts'}}) {
               my $partdata = $resource->{'partdata'}->{$partid};
               foreach my $respid (@{$partdata->{'ResponseIds'}}) {
                   my $prefix = $partid.'.'.$respid;
                   my $key = $prefix.'.answer';
                   $returnvalue->{$key} = &get_answer($prefix,$key,%Answer);
               }
           }
       } elsif (! defined($respid)) {
           my $partdata = $resource->{'partdata'}->{$partid};
           foreach my $respid (@{$partdata->{'ResponseIds'}}) {
               my $prefix = $partid.'.'.$respid;
               my $key = $prefix.'.answer';
               $returnvalue->{$key} = &get_answer($prefix,$key,%Answer);
           }
       } else {
           my $prefix = $partid.'.'.$respid;
           my $key = $prefix.'.answer';
           $returnvalue = &get_answer($prefix,$key,%Answer);
       }
       return $returnvalue;
   }
   
   sub get_answer {
       my ($prefix,$key,%Answer) = @_;
       my $returnvalue;
     if (exists($Answer{$key})) {      if (exists($Answer{$key})) {
         my $student_answer = $Answer{$key}->[0];          my $student_answer = $Answer{$key}->[0];
         if (! defined($student_answer)) {          if (! defined($student_answer)) {
Line 404  sub analyze_problem_as_student { Line 437  sub analyze_problem_as_student {
     return $returnvalue;      return $returnvalue;
 }  }
   
   
 ##  ##
 ## The following is copied from datecalc1.pl, part of the   ## The following is copied from datecalc1.pl, part of the 
 ## Spreadsheet::WriteExcel CPAN module.  ## Spreadsheet::WriteExcel CPAN module.

Removed from v.1.5  
changed lines
  Added in v.1.6


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