--- loncom/homework/radiobuttonresponse.pm 2002/09/26 21:45:53 1.53 +++ loncom/homework/radiobuttonresponse.pm 2002/10/17 14:40:23 1.56 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # mutliple choice style responses # -# $Id: radiobuttonresponse.pm,v 1.53 2002/09/26 21:45:53 albertel Exp $ +# $Id: radiobuttonresponse.pm,v 1.56 2002/10/17 14:40:23 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -79,10 +79,19 @@ sub end_radiobuttonresponse { %Apache::response::foilgroup=(); sub start_foilgroup { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; %Apache::response::foilgroup=(); $Apache::radiobuttonresponse::conceptgroup=0; &Apache::response::setrandomnumber(); - return ''; + if ($target eq 'tex' && $Apache::lonhomework::type eq 'exam') { + $result.='\item[\textbf{'.$Apache::lonxml::counter.'}.]'; + $Apache::lonxml::counter++; + my %moreenv; + $moreenv{'form.counter'}=$Apache::lonxml::counter; + &Apache::lonnet::appenv(%moreenv); + } + return $result; } sub storesurvey { @@ -102,12 +111,13 @@ sub storesurvey { sub grade_response { my ($max,$randomize)=@_; + #keep the random numbers the same must always call this + my ($answer,@whichfoils)=&whichfoils($max,$randomize); if (!defined($ENV{'form.submitted'})) { return; } my $response = $ENV{'form.HWVAL'.$Apache::inputtags::response['-1']}; if ( $response !~ /[0-9]+/) { return; } my $part=$Apache::inputtags::part; my $id = $Apache::inputtags::response['-1']; - my ($answer,@whichfoils)=&whichfoils($max,$randomize); my %responsehash; $responsehash{$whichfoils[$response]}=$response; my $responsestr=&Apache::lonnet::hash2str(%responsehash); @@ -359,7 +369,9 @@ sub displayfoils { } } } else { - my $temp=0; + my @alphabet = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); + my $i = 0; + my $temp=0; my $id=$Apache::inputtags::response['-1']; my $part=$Apache::inputtags::part; my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"}; @@ -369,8 +381,16 @@ sub displayfoils { $result.="
\n"; + if ($Apache::lonhomework::type eq 'exam') { + $result .= '
A:   CorrectB:   Incorrect
'; + } } else { - $result .= '\item '.$Apache::response::foilgroup{$name.'.text'}; + if ($Apache::lonhomework::type eq 'exam') { + $result .= '{\small \textbf{'.$alphabet[$i].'}}$\bigcirc$'.$Apache::response::foilgroup{$name.'.text'}.'\\\\'; + $i++; + } else { + $result .= '\item '.$Apache::response::foilgroup{$name.'.text'}; + } } $temp++; }