--- loncom/homework/caparesponse/caparesponse.pm 2003/05/14 13:33:00 1.101 +++ loncom/homework/caparesponse/caparesponse.pm 2003/06/04 15:23:08 1.104 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.101 2003/05/14 13:33:00 albertel Exp $ +# $Id: caparesponse.pm,v 1.104 2003/06/04 15:23:08 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -309,7 +309,7 @@ sub end_numericalresponse { if ($Apache::inputtags::params{'sig'}) { ($sighigh,$siglow)=&get_sigrange($Apache::inputtags::params{'sig'}); } - if ($fmt) { + if ($fmt && $$tagstack[-1] eq 'numericalresponse') { $ans = sprintf('%.'.$fmt,$ans); if ($high) { $high=sprintf('%.'.$fmt,$high); @@ -317,8 +317,8 @@ sub end_numericalresponse { } } if ($target eq 'answer') { - if ($high) { $ans.=' ['.$low.','.$high.']'; } - if ($sighigh) { + if ($high && $$tagstack[-1] eq 'numericalresponse') { $ans.=' ['.$low.','.$high.']'; } + if ($sighigh && $$tagstack[-1] eq 'numericalresponse') { if ($ENV{'form.answer_output_mode'} eq 'tex') { $ans.= " Sig \\textit{$siglow - $sighigh}"; } else { @@ -334,7 +334,8 @@ sub end_numericalresponse { } } } - if ($unit) { + if (defined($unit) and ($unit ne '') and + $$tagstack[-1] eq 'numericalresponse') { if ($target eq 'answer') { if ($ENV{'form.answer_output_mode'} eq 'tex') { $result.=&Apache::response::answer_part($$tagstack[-1], @@ -344,11 +345,10 @@ sub end_numericalresponse { "Unit: $unit"); } } elsif ($target eq 'analyze') { - push (@{ $Apache::lonhomework::analyze{"$part_id.unit"} }, - $unit); + push (@{ $Apache::lonhomework::analyze{"$part_id.unit"} }, $unit); } } - if ($type || $token->[1] eq 'stringresponse') { + if ($type || $$tagstack[-1] eq 'stringresponse') { my $string='Case Insensitive'; if ($type eq 'mc') { $string='Multiple Choice'; @@ -368,7 +368,7 @@ sub end_numericalresponse { "$string"); } } elsif ($target eq 'analyze') { - push (@{ $Apache::lonhomework::analyze{"$part_id.type"} }, + push (@{ $Apache::lonhomework::analyze{"$part_id.str_type"} }, $type); } } @@ -494,7 +494,9 @@ sub start_stringresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; if ($target eq 'meta') { + &Apache::response::start_response($parstack,$safeeval); $result=&Apache::response::meta_package_write('stringresponse'); + &Apache::response::end_response(); } else { $result.=&start_numericalresponse(@_); } @@ -509,7 +511,9 @@ sub start_formularesponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; if ($target eq 'meta') { + &Apache::response::start_response($parstack,$safeeval); $result=&Apache::response::meta_package_write('formularesponse'); + &Apache::response::end_response(); } else { $result.=&start_numericalresponse(@_); }