--- loncom/homework/optionresponse.pm 2003/09/22 20:49:01 1.86 +++ loncom/homework/optionresponse.pm 2003/10/15 19:40:42 1.90 @@ -1,7 +1,7 @@ # LearningOnline Network with CAPA # option list style responses # -# $Id: optionresponse.pm,v 1.86 2003/09/22 20:49:01 albertel Exp $ +# $Id: optionresponse.pm,v 1.90 2003/10/15 19:40:42 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -302,11 +302,13 @@ sub displayfoils { my $id=$Apache::inputtags::response[-1]; my $break; my $solved=$Apache::lonhomework::history{"resource.$part.solved"}; - my $status=$Apache::inputtags::status[-1]; if ( ($target ne 'tex') && &Apache::response::show_answer() ) { + my $temp=1; foreach $name (@whichopt) { my $text=$Apache::response::foilgroup{$name.'.text'}; + my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"}); + my $lastopt=$lastresponse{$name}; if ($text!~/^\s*$/) { if ($target eq 'tex') { $break='\vskip 0 mm '; @@ -333,11 +335,12 @@ sub displayfoils { } if ($Apache::lonhomework::type eq 'exam') { if ($target ne 'tex') { - $result.=&webbubbles(\@opt,\@alphabet); + $result.=&webbubbles(\@opt,\@alphabet,$temp,$lastopt); } else { $result.=&bubbles(\@alphabet,\@opt); } } + $temp++; } } else { my $temp=1; @@ -374,7 +377,7 @@ sub displayfoils { } $result.=$break.$text."\n"; if ($Apache::lonhomework::type eq 'exam') { - $result.=&webbubbles(\@opt,\@alphabet,$temp); + $result.=&webbubbles(\@opt,\@alphabet,$temp,$lastopt); } $temp++; } else { @@ -455,18 +458,24 @@ sub optionlist_correction { sub webbubbles { - my ($ropt,$ralphabet,$temp)=@_; + my ($ropt,$ralphabet,$temp,$lastopt)=@_; my @opt=@$ropt; my @alphabet=@$ralphabet; my $result=''; - my $number_of_bubbles = $#opt + 1; - $result.= ''; - for (my $ind=0;$ind<$number_of_bubbles;$ind++) { - $result.=''; + my $number_of_bubbles = $#opt + 1; + $result.= '
'.$alphabet[$ind].': '.$opt[$ind].'
'; + for (my $ind=0;$ind<$number_of_bubbles;$ind++) { + my $checked=''; + if ($lastopt eq $opt[$ind]) { + $checked=' checked="on" '; } - $result.='
'; - return $result; + $result.=''.$alphabet[$ind].': '. + $opt[$ind].''; + } + $result.=''; + return $result; } @@ -602,7 +611,7 @@ sub end_foil { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $text =''; my $result = ''; - if ($target eq 'web' || $target eq 'tex') { + if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { $text=&Apache::lonxml::endredirection; if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') { $text = '\vspace*{-2 mm}\item '.$text; } } @@ -622,11 +631,7 @@ sub end_foil { if ($target eq 'tex' and $Apache::lonhomework::type eq 'exam') { $Apache::response::conceptgroup{"$name.text"} = '\vskip 4 mm $\triangleright$ '.$text; } else { - if ($target eq 'tex' and $Apache::lonhomework::type eq 'exam') { - $Apache::response::conceptgroup{"$name.text"} = ' $\triangleright$ '.$text; - } else { - $Apache::response::conceptgroup{"$name.text"} = $text; - } + $Apache::response::conceptgroup{"$name.text"} = $text; } $Apache::response::conceptgroup{"$name.location"} = $location; } else { @@ -635,11 +640,7 @@ sub end_foil { if ($target eq 'tex' and $Apache::lonhomework::type eq 'exam') { $Apache::response::foilgroup{"$name.text"} = '\vskip 5 mm $\triangleright$ '.$text; } else { - if ($target eq 'tex' and $Apache::lonhomework::type eq 'exam') { - $Apache::response::foilgroup{"$name.text"} = ' $\triangleright$ '.$text; - } else { - $Apache::response::foilgroup{"$name.text"} = $text; - } + $Apache::response::foilgroup{"$name.text"} = $text; } $Apache::response::foilgroup{"$name.location"} = $location; }