Diff for /loncom/homework/caparesponse/caparesponse.pm between versions 1.227.2.4 and 1.232

version 1.227.2.4, 2008/09/23 19:22:58 version 1.232, 2008/09/12 09:56:10
Line 310  sub start_numericalresponse { Line 310  sub start_numericalresponse {
     $safeeval);      $safeeval);
     if ($unit =~ /\S/) { $result.=" (in $unit) "; }      if ($unit =~ /\S/) { $result.=" (in $unit) "; }
  }   }
           if (($token->[1] eq 'formularesponse') && 
               ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')) {
           }
  if (  &Apache::response::show_answer() ) {   if (  &Apache::response::show_answer() ) {
     &set_answertext($tag_internal_answer_name,$target,$token,$tagstack,      &set_answertext($tag_internal_answer_name,$target,$token,$tagstack,
     $parstack,$parser,$safeeval,-1);      $parstack,$parser,$safeeval,-1);
Line 427  sub check_submission { Line 430  sub check_submission {
  }   }
     } elsif ($tag eq 'numericalresponse') {      } elsif ($tag eq 'numericalresponse') {
  $$args_ref{'type'}='float';   $$args_ref{'type'}='float';
     } elsif ($tag eq 'stringresponse') {  
         if ($$args_ref{'type'} eq '') {  
             $$args_ref{'type'} = 'ci';  
         }  
     }      }
       
     &add_in_tag_answer($parstack,$safeeval);      &add_in_tag_answer($parstack,$safeeval);
   
     if (!%answer) {      if (!%answer) {
Line 448  sub check_submission { Line 447  sub check_submission {
  use Time::HiRes;   use Time::HiRes;
  my $t0 = [Time::HiRes::gettimeofday()];   my $t0 = [Time::HiRes::gettimeofday()];
  my ($result,@msgs) =    my ($result,@msgs) = 
     &Apache::run::run("&caparesponse_check_list()",$safeeval);      &Apache::run::run("&caparesponse_check_list($tag)",$safeeval);
  &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));   &Apache::lonxml::debug("checking $name $result with $response took ".&Time::HiRes::tv_interval($t0));
  &Apache::lonxml::debug('msgs are '.join(':',@msgs));   &Apache::lonxml::debug('msgs are '.join(':',@msgs));
  my ($awards)=split(/:/,$result);   my ($awards)=split(/:/,$result);
Line 514  sub end_numericalresponse { Line 513  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);      &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];
  }   }
  $Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response;   $Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response;
  my ($ad,$msg,$name)=&check_submission($response,$partid,$id,   my ($ad,$msg,$name)=&check_submission($response,$partid,$id,
       $tag,$parstack,        $tag,$parstack,
       $safeeval);        $safeeval);
Line 608  sub end_numericalresponse { Line 607  sub end_numericalresponse {
  }   }
         if (($target eq 'web') && ($tag eq 'formularesponse')          if (($target eq 'web') && ($tag eq 'formularesponse')
             && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')              && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')
     && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {      && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoneditor') ne 'no')){   
             $result.=&Apache::response::edit_mathresponse_button($id,"HWVAL_$id");             $result.=&Apache::response::edit_mathresponse_button($id,"HWVAL_$id");
   #hier
         }          }
               
  &Apache::response::setup_prior_tries_hash(\&format_prior_response_numerical);   &Apache::response::setup_prior_tries_hash(\&format_prior_response_numerical);
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.='</td></tr>'.&Apache::edit::end_table;   $result.='</td></tr>'.&Apache::edit::end_table;
Line 1161  sub end_stringresponse { Line 1161  sub end_stringresponse {
     my @args = ('type');      my @args = ('type');
     my $args_ref = &setup_capa_args($safeeval,$parstack,      my $args_ref = &setup_capa_args($safeeval,$parstack,
     \@args,$response);      \@args,$response);
                     if ($$args_ref{'type'} eq '') {  
                         $$args_ref{'type'} = 'ci';  
                     }  
     &add_in_tag_answer($parstack,$safeeval);      &add_in_tag_answer($parstack,$safeeval);
     my (@final_awards,@final_msgs,@names);      my (@final_awards,@final_msgs,@names);
     foreach my $name (keys(%answer)) {      foreach my $name (keys(%answer)) {
  &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));   &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} }));
  ${$safeeval->varglob('LONCAPA::CAPAresponse_answer')}=dclone($answer{$name});   ${$safeeval->varglob('LONCAPA::CAPAresponse_answer')}=dclone($answer{$name});
  my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list()",$safeeval);   my ($result, @msgs)=&Apache::run::run("&caparesponse_check_list($$tagstack[-1])",$safeeval);
  &Apache::lonxml::debug('msgs are'.join(':',@msgs));   &Apache::lonxml::debug('msgs are'.join(':',@msgs));
  my ($awards)=split(/:/,$result);   my ($awards)=split(/:/,$result);
  my (@awards) = split(/,/,$awards);   my (@awards) = split(/,/,$awards);

Removed from v.1.227.2.4  
changed lines
  Added in v.1.232


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