--- loncom/homework/caparesponse/caparesponse.pm 2012/01/20 10:12:09 1.249.8.1 +++ loncom/homework/caparesponse/caparesponse.pm 2013/01/21 06:04:07 1.254 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.249.8.1 2012/01/20 10:12:09 foxr Exp $ +# $Id: caparesponse.pm,v 1.254 2013/01/21 06:04:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -296,7 +296,7 @@ sub start_numericalresponse { } elsif ($token->[1] eq 'formularesponse') { $constructtag=&Apache::edit::get_new_args($token,$parstack, $safeeval,'answer', - 'samples','preproces'); + 'samples','preprocess'); } if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); @@ -456,7 +456,6 @@ sub check_submission { my ($result,@msgs) = &Apache::run::run("&caparesponse_check_list()",$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); my @awards= split(/,/,$awards); @@ -895,7 +894,6 @@ sub get_table_sizes { my ($number_of_bubbles,$rbubble_values)=@_; my $scale=2; #mm for one digit my $cell_width=0; - &Apache::lonnet::logthis("textwidth envvar: " . $env{'form.textwidth'}); foreach my $member (@$rbubble_values) { my $cell_width_real=0; if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$?\\times\s*10\^{(\+|-)?(\d+)}\$?/) { @@ -971,6 +969,15 @@ sub make_numerical_bubbles { my $number_of_bubbles = &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8); + # + # Fixes for BZ 6519 - number of bubbles <= 0 or non-integer. + # + $number_of_bubbles = int($number_of_bubbles + 0.5); + if ($number_of_bubbles <= 0) { + $number_of_bubbles = 8; + } + + my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval); my $name = (exists($answer{$tag_internal_answer_name}) ? $tag_internal_answer_name @@ -1098,11 +1105,11 @@ sub make_horizontal_latex_bubbles { } $result.='\noindent \setlength{\tabcolsep}{2 mm}\hskip 2pc\begin{tabular}{'; for (my $ind=0;$ind<$table_range[$j];$ind++) { - $result.='p{3 mm}p{'.$celllength.' mm}'; + $result.='p{4 mm}p{'.$celllength.' mm}'; } $result.='}'; for (my $ind=$cou;$ind<$cou+$table_range[$j];$ind++) { - $result.='\hskip -4 mm {\small \textbf{'.$alphabet[$ind].'}}' + $result.='\hskip -4 mm {\small \textbf{ '.$alphabet[$ind].'}}' . $bubble_fragment . '& \hskip -3 mm {\small '.$bubble_display->[$ind].'} '; if ($ind != $cou+$table_range[$j]-1) {