--- loncom/homework/caparesponse/caparesponse.pm 2001/10/01 20:18:31 1.44 +++ loncom/homework/caparesponse/caparesponse.pm 2001/10/29 22:50:32 1.45 @@ -66,7 +66,7 @@ sub start_numericalresponse { $result.=&Apache::edit::select_arg('Type:','type', ['cs','ci','mc'],$token) } elsif ($token->[1] eq 'formularesponse') { - $result.=&Apache::edit::text_arg('Sample Points:','points',$token,40); + $result.=&Apache::edit::text_arg('Sample Points:','samples',$token,40); } $result.=''; } elsif ($target eq 'modified') { @@ -79,7 +79,7 @@ sub start_numericalresponse { 'answer','type'); } elsif ($token->[1] eq 'formularesponse') { $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval, - 'answer','points'); + 'answer','samples'); } if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); @@ -96,7 +96,7 @@ sub end_numericalresponse { my $result = ''; if ( $target eq 'grade' ) { if ( defined $ENV{'form.submitted'}) { - &Apache::response::setup_params('numericalresponse'); + &Apache::response::setup_params($$tagstack[-1]); $safeeval->share_from('capa',['&caparesponse_capa_check_answer']); my $partid = $Apache::inputtags::part; my $id = $Apache::inputtags::response['-1']; @@ -115,6 +115,9 @@ sub end_numericalresponse { $expression.= ';my $'. #' $key.'="'.$Apache::inputtags::params{$key}.'"'; } + if ($$tagstack[-1] eq 'formularesponse') { + $expression.=';$type="fml";'; + } $expression.="');"; $result = &Apache::run::run($expression,$safeeval); my ($awards) = split /:/ , $result; @@ -142,7 +145,7 @@ sub end_numericalresponse { $safeeval); my $unit=&Apache::lonxml::get_param_var('unit',$parstack,$safeeval); - $result="

The computer got "; + $result="
The computer got "; for (my $i=0; $i <= $#answers; $i++) { my $answer=$answers[$i]; @@ -172,7 +175,7 @@ sub end_numericalresponse { my $unit=&Apache::lonxml::get_param_var('unit',$parstack,$safeeval); my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval); - $result.=&Apache::response::answer_header('numericalresponse'); + $result.=&Apache::response::answer_header($$tagstack[-1]); for(my $i=0;$i<=$#answers;$i++) { my $ans=$answers[$i]; my $fmt; @@ -184,10 +187,10 @@ sub end_numericalresponse { } } if ($fmt) { $ans = sprintf('%.'.$fmt,$ans); } - $result.=&Apache::response::answer_part('numericalresponse',$ans); + $result.=&Apache::response::answer_part($$tagstack[-1],$ans); } if ($unit) { - $result.=&Apache::response::answer_part('numericalresponse', + $result.=&Apache::response::answer_part($$tagstack[-1], ''.$unit.''); } if ($type || $token->[1] eq 'stringresponse') { @@ -198,11 +201,17 @@ sub end_numericalresponse { $string='Case Sensitive'; } elsif ($type eq 'ci') { $string='Case Insensitive'; + } elsif ($type eq 'fml') { + $string='Formula'; } - $result.=&Apache::response::answer_part('numericalresponse', + $result.=&Apache::response::answer_part($$tagstack[-1], ''.$string.''); } - $result.=&Apache::response::answer_footer('numericalresponse'); + if ($$tagstack[-1] eq 'formularesponse') { + my $samples=&Apache::lonxml::get_param('samples',$parstack,$safeeval); + $result.=&Apache::response::answer_part($$tagstack[-1],$samples); + } + $result.=&Apache::response::answer_footer($$tagstack[-1]); } &Apache::response::end_response; return $result;