--- loncom/homework/caparesponse/caparesponse.pm 2008/03/06 02:48:23 1.222 +++ loncom/homework/caparesponse/caparesponse.pm 2008/09/12 09:56:10 1.232 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.222 2008/03/06 02:48:23 www Exp $ +# $Id: caparesponse.pm,v 1.232 2008/09/12 09:56:10 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -310,6 +310,9 @@ sub start_numericalresponse { $safeeval); if ($unit =~ /\S/) { $result.=" (in $unit) "; } } + if (($token->[1] eq 'formularesponse') && + ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')) { + } if ( &Apache::response::show_answer() ) { &set_answertext($tag_internal_answer_name,$target,$token,$tagstack, $parstack,$parser,$safeeval,-1); @@ -444,7 +447,7 @@ sub check_submission { use Time::HiRes; my $t0 = [Time::HiRes::gettimeofday()]; 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('msgs are '.join(':',@msgs)); my ($awards)=split(/:/,$result); @@ -510,12 +513,12 @@ sub end_numericalresponse { &Apache::lonxml::debug($$parstack[-1] . "\n
"); if ( &Apache::response::submitted('scantron')) { - &add_in_tag_answer($parstack,$safeeval); - my ($values,$display)=&make_numerical_bubbles($partid,$id, - $target,$parstack,$safeeval); - $response=$values->[$response]; - } - $Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; + &add_in_tag_answer($parstack,$safeeval); + my ($values,$display)=&make_numerical_bubbles($partid,$id, + $target,$parstack,$safeeval); + $response=$values->[$response]; + } + $Apache::lonhomework::results{"resource.$partid.$id.submission"}=$response; my ($ad,$msg,$name)=&check_submission($response,$partid,$id, $tag,$parstack, $safeeval); @@ -602,6 +605,13 @@ sub end_numericalresponse { } } } + if (($target eq 'web') && ($tag eq 'formularesponse') + && ($Apache::lonhomework::type ne 'exam') && ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') + && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoneditor') ne 'no')){ + $result.=&Apache::response::edit_mathresponse_button($id,"HWVAL_$id"); +#hier + } + &Apache::response::setup_prior_tries_hash(\&format_prior_response_numerical); } elsif ($target eq 'edit') { $result.=''.&Apache::edit::end_table; @@ -678,12 +688,12 @@ sub end_numericalresponse { #} } if ($high && $tag eq 'numericalresponse') { - $element.=' ['.$low.','.$high.']'; + $element.='; ['.$low.'; '.$high.']'; $tolline .= "[$low, $high]"; } if (defined($sighigh) && $tag eq 'numericalresponse') { if ($env{'form.answer_output_mode'} eq 'tex') { - $element.= " Sig $siglow - $sighigh"; + $element.= "; Sig $siglow - $sighigh"; } else { $element.= " Sig $siglow - $sighigh"; $sigline .= "[$siglow, $sighigh]"; @@ -703,7 +713,7 @@ sub end_numericalresponse { } } if ($target eq 'answer') { - $result.= &Apache::response::answer_part($tag,join(', ',@all_answer_info)); + $result.= &Apache::response::answer_part($tag,join('; ',@all_answer_info)); } } @@ -1157,7 +1167,7 @@ sub end_stringresponse { foreach my $name (keys(%answer)) { &Apache::lonxml::debug(" doing $name with ".join(':',@{ $answer{$name}{'answers'} })); ${$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)); my ($awards)=split(/:/,$result); my (@awards) = split(/,/,$awards);