Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.198.2.3 and 1.200

version 1.198.2.3, 2007/01/25 21:03:45 version 1.200, 2006/12/13 22:48:10
Line 40  BEGIN { Line 40  BEGIN {
 }  }
   
 my %answer;  my %answer;
 my @answers;  
 sub get_answer { return %answer; };  
 sub push_answer{ push(@answers,dclone(\%answer)); undef(%answer) }  
 sub pop_answer { %answer = %{pop(@answers)}; };  
   
 my $cur_name;  my $cur_name;
 my $tag_internal_answer_name = 'INTERNAL';  my $tag_internal_answer_name = 'INTERNAL';
   
Line 329  sub check_submission { Line 324  sub check_submission {
     }      }
           
     if ($tag eq 'formularesponse') {      if ($tag eq 'formularesponse') {
 # if ($$args_ref{'samples'}) {   if ($$args_ref{'samples'}) {
     $$args_ref{'type'}='fml';      $$args_ref{'type'}='fml';
 # } else {   } else {
 #    $$args_ref{'type'}='math';      $$args_ref{'type'}='math';
 # }   }
     } elsif ($tag eq 'numericalresponse') {      } elsif ($tag eq 'numericalresponse') {
  $$args_ref{'type'}='float';   $$args_ref{'type'}='float';
     }      }
Line 405  sub end_numericalresponse { Line 400  sub end_numericalresponse {
  &Apache::lonxml::debug($$parstack[-1] . "\n<br>");   &Apache::lonxml::debug($$parstack[-1] . "\n<br>");
   
  if ( &Apache::response::submitted('scantron')) {   if ( &Apache::response::submitted('scantron')) {
     &add_in_tag_answer($parstack,$safeeval);  
     my ($values,$display)=&make_numerical_bubbles($partid,$id,      my ($values,$display)=&make_numerical_bubbles($partid,$id,
   $target,$parstack,$safeeval);    $target,$parstack,$safeeval);
     $response=$values->[$response];      $response=$values->[$response];
Line 782  sub make_numerical_bubbles { Line 776  sub make_numerical_bubbles {
  &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8);   &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8);
   
     my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval);      my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval);
     my $name = (exists($answer{$tag_internal_answer_name})       my ($answer)=&Apache::lonxml::get_param_var('answer',$parstack,$safeeval);
  ? $tag_internal_answer_name  
  : (sort(keys(%answer)))[0]);  
   
     if ( scalar(@{$answer{$name}{'answers'}}) > 1) {  
  &Apache::lonxml::error("Only answers with 1 component are supported in exam mode");  
     }  
     if (scalar(@{$answer{$name}{'answers'}[0]}) > 1) {  
  &Apache::lonxml::error("Vector answers are unsupported in exam mode.");  
     }  
   
     my $answer = $answer{$name}{'answers'}[0][0];  
     my (@incorrect)=&Apache::lonxml::get_param_var('incorrect',$parstack,      my (@incorrect)=&Apache::lonxml::get_param_var('incorrect',$parstack,
    $safeeval);     $safeeval);
     if ($#incorrect eq 0) { @incorrect=(split(/,/,$incorrect[0])); }      if ($#incorrect eq 0) { @incorrect=(split(/,/,$incorrect[0])); }

Removed from v.1.198.2.3  
changed lines
  Added in v.1.200


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