--- loncom/homework/caparesponse/caparesponse.pm 2004/06/04 22:56:45 1.147 +++ loncom/homework/caparesponse/caparesponse.pm 2004/08/23 19:34:52 1.152 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.147 2004/06/04 22:56:45 albertel Exp $ +# $Id: caparesponse.pm,v 1.152 2004/08/23 19:34:52 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -45,7 +45,8 @@ sub start_numericalresponse { $result.=&Apache::edit::text_arg('Answer:','answer',$token); if ($token->[1] eq 'numericalresponse') { $result.=&Apache::edit::text_arg('Incorrect Answers:','incorrect', - $token); + $token). + &Apache::loncommon::help_open_topic('numerical_wrong_answers'); $result.=&Apache::edit::text_arg('Unit:','unit',$token,5). &Apache::loncommon::help_open_topic('Physical_Units'); $result.=&Apache::edit::text_arg('Format:','format',$token,4). @@ -115,7 +116,7 @@ sub start_numericalresponse { } chop $answertxt; if ($target eq 'web') { - $answertxt.=" $unit.
"; + $answertxt.=" $unit "; } $Apache::inputtags::answertxt{$id}=$answertxt; } @@ -411,7 +412,9 @@ sub get_table_sizes { $textwidth=$1.'.'.$2; } my $bubbles_per_line=int($textwidth/$cell_width); - if (($bubbles_per_line > $number_of_bubbles/2) && ($number_of_bubbles % 2==0)) {$bubbles_per_line=$number_of_bubbles/2;} + if ($bubbles_per_line > $number_of_bubbles) { + $bubbles_per_line=$number_of_bubbles; + }elsif (($bubbles_per_line > $number_of_bubbles/2) && ($number_of_bubbles % 2==0)) {$bubbles_per_line=$number_of_bubbles/2;} my $number_of_tables = int($number_of_bubbles/$bubbles_per_line); my @table_range = (); for (my $i=0;$i<$number_of_tables;$i++) {push @table_range,$bubbles_per_line;} @@ -552,9 +555,7 @@ sub start_stringresponse { my $result; my $id = &Apache::response::start_response($parstack,$safeeval); if ($target eq 'meta') { - &Apache::response::start_response($parstack,$safeeval); $result=&Apache::response::meta_package_write('stringresponse'); - &Apache::response::end_response(); } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_start($target,$token); $result.=&Apache::edit::text_arg('Answer:','answer',$token); @@ -562,6 +563,8 @@ sub start_stringresponse { [['cs','Case Sensitive'],['ci','Case Insensitive'], ['mc','Case Insensitive, Any Order'], ['re','Regular Expression']],$token); + $result.=&Apache::edit::text_arg('String to display for answer:', + 'answerdisplay',$token); $result.=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); } elsif ($target eq 'modified') { my $constructtag; @@ -574,8 +577,13 @@ sub start_stringresponse { } } elsif ($target eq 'web') { if ( &Apache::response::show_answer() ) { - $Apache::inputtags::answertxt{$id}= - &Apache::lonxml::get_param('answer',$parstack,$safeeval); + my $answer= + &Apache::lonxml::get_param('answerdisplay',$parstack,$safeeval); + if (!defined $answer || $answer eq '') { + $answer= + &Apache::lonxml::get_param('answer',$parstack,$safeeval); + } + $Apache::inputtags::answertxt{$id}=$answer; } } elsif ($target eq 'answer' || $target eq 'grade') { &Apache::response::reset_params();