Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.198.2.2 and 1.207

version 1.198.2.2, 2006/12/19 00:53:57 version 1.207, 2007/01/25 21:02:25
Line 33  use Safe::Hole; Line 33  use Safe::Hole;
 use Apache::lonmaxima();  use Apache::lonmaxima();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
   use Apache::response();
 use Storable qw(dclone);  use Storable qw(dclone);
   
 BEGIN {  BEGIN {
Line 236  sub set_answertext { Line 237  sub set_answertext {
  $response_level) = @_;   $response_level) = @_;
     &add_in_tag_answer($parstack,$safeeval,$response_level);      &add_in_tag_answer($parstack,$safeeval,$response_level);
   
       if ($name eq '' || !ref($answer{$name})) {
    if (ref($answer{$tag_internal_answer_name})) {
       $name = $tag_internal_answer_name;
    } else {
       $name = (sort(keys(%answer)))[0];
    }
       }
     return if ($name eq '' || !ref($answer{$name}));      return if ($name eq '' || !ref($answer{$name}));
   
     my (@formats)=&Apache::lonxml::get_param_var('format',$parstack,      my (@formats)=&Apache::lonxml::get_param_var('format',$parstack,
Line 329  sub check_submission { Line 337  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 377  sub add_in_tag_answer { Line 385  sub add_in_tag_answer {
     }      }
 }  }
   
   sub capa_formula_fix {
      my ($expression)=@_;
      return &Apache::response::implicit_multiplication($expression);
   }
   
 sub end_numericalresponse {  sub end_numericalresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $increment=1;      my $increment=1;
Line 389  sub end_numericalresponse { Line 402  sub end_numericalresponse {
     my $tag;      my $tag;
     my $safehole = new Safe::Hole;      my $safehole = new Safe::Hole;
     $safeeval->share_from('capa',['&caparesponse_capa_check_answer']);      $safeeval->share_from('capa',['&caparesponse_capa_check_answer']);
     $safehole->wrap(\&Apache::lonmaxima::maxima_check,$safeeval,'&maxima_check');  
   
     if (scalar(@$tagstack)) { $tag=$$tagstack[-1]; }      if (scalar(@$tagstack)) { $tag=$$tagstack[-1]; }
     if ( $target eq 'grade' && &Apache::response::submitted() ) {      if ( $target eq 'grade' && &Apache::response::submitted() ) {
Line 405  sub end_numericalresponse { Line 417  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];

Removed from v.1.198.2.2  
changed lines
  Added in v.1.207


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