--- loncom/homework/caparesponse/caparesponse.pm 2007/01/25 21:03:45 1.198.2.3 +++ loncom/homework/caparesponse/caparesponse.pm 2006/12/13 22:48:10 1.200 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # caparesponse definition # -# $Id: caparesponse.pm,v 1.198.2.3 2007/01/25 21:03:45 albertel Exp $ +# $Id: caparesponse.pm,v 1.200 2006/12/13 22:48:10 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -40,11 +40,6 @@ BEGIN { } my %answer; -my @answers; -sub get_answer { return %answer; }; -sub push_answer{ push(@answers,dclone(\%answer)); undef(%answer) } -sub pop_answer { %answer = %{pop(@answers)}; }; - my $cur_name; my $tag_internal_answer_name = 'INTERNAL'; @@ -329,11 +324,11 @@ sub check_submission { } if ($tag eq 'formularesponse') { -# if ($$args_ref{'samples'}) { + if ($$args_ref{'samples'}) { $$args_ref{'type'}='fml'; -# } else { -# $$args_ref{'type'}='math'; -# } + } else { + $$args_ref{'type'}='math'; + } } elsif ($tag eq 'numericalresponse') { $$args_ref{'type'}='float'; } @@ -405,7 +400,6 @@ 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]; @@ -782,18 +776,7 @@ sub make_numerical_bubbles { &Apache::response::get_response_param($part.'_'.$id,'numbubbles',8); my ($format)=&Apache::lonxml::get_param_var('format',$parstack,$safeeval); - my $name = (exists($answer{$tag_internal_answer_name}) - ? $tag_internal_answer_name - : (sort(keys(%answer)))[0]); - - if ( scalar(@{$answer{$name}{'answers'}}) > 1) { - &Apache::lonxml::error("Only answers with 1 component are supported in exam mode"); - } - if (scalar(@{$answer{$name}{'answers'}[0]}) > 1) { - &Apache::lonxml::error("Vector answers are unsupported in exam mode."); - } - - my $answer = $answer{$name}{'answers'}[0][0]; + my ($answer)=&Apache::lonxml::get_param_var('answer',$parstack,$safeeval); my (@incorrect)=&Apache::lonxml::get_param_var('incorrect',$parstack, $safeeval); if ($#incorrect eq 0) { @incorrect=(split(/,/,$incorrect[0])); }