--- loncom/homework/radiobuttonresponse.pm 2004/10/04 17:41:01 1.94 +++ loncom/homework/radiobuttonresponse.pm 2005/01/10 19:21:57 1.98 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # mutliple choice style responses # -# $Id: radiobuttonresponse.pm,v 1.94 2004/10/04 17:41:01 matthew Exp $ +# $Id: radiobuttonresponse.pm,v 1.98 2005/01/10 19:21:57 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -118,12 +118,17 @@ sub storesurvey { my $response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1']}; &Apache::lonxml::debug("Here I am!:$response:"); if ( $response !~ /[0-9]+/) { return ''; } + my $part = $Apache::inputtags::part; my $id = $Apache::inputtags::response['-1']; my @whichfoils=@{ $Apache::response::foilgroup{'names'} }; my %responsehash; $responsehash{$whichfoils[$response]}=$response; - $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=&Apache::lonnet::hash2str(%responsehash); - $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='SUBMITTED'; + my $responsestr=&Apache::lonnet::hash2str(%responsehash); + $Apache::lonhomework::results{"resource.$part.$id.submission"}= + $responsestr; + my %previous=&Apache::response::check_for_previous($responsestr,$part,$id); + my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED'; + &Apache::response::handle_previous(\%previous,$ad); &Apache::lonxml::debug("submitted a $response
\n"); return ''; } @@ -307,6 +312,9 @@ sub whichfoils { &Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in ",'<>&"')); } } + if (!$havetrue && $Apache::lonhomework::type ne 'survey') { + &Apache::lonxml::error("There are no true statements available.
"); + } } else { my $current=0; &Apache::lonhomework::showhash(%Apache::response::foilgroup); @@ -562,6 +570,9 @@ sub start_foil { my $result=''; if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::startredirection; + if ($target eq 'analyze') { + &Apache::response::check_if_computed($token,$parstack,$safeeval,'value'); + } } elsif ($target eq 'edit') { $result=&Apache::edit::tag_start($target,$token); $result.=&Apache::edit::text_arg('Name:','name',$token); @@ -595,7 +606,10 @@ sub end_foil { my $value = &Apache::lonxml::get_param('value',$parstack,$safeeval); if ($value ne 'unused') { my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); - if (!$name) { $name=$Apache::lonxml::curdepth; } + if (!$name) { + &Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction."); + $name=$Apache::lonxml::curdepth; + } if (defined($Apache::response::foilnames{$name})) { &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",$name)); }