--- loncom/homework/matchresponse.pm 2003/03/17 19:54:20 1.5 +++ loncom/homework/matchresponse.pm 2003/03/18 21:26:33 1.6 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Full matching style response # -# $Id: matchresponse.pm,v 1.5 2003/03/17 19:54:20 sakharuk Exp $ +# $Id: matchresponse.pm,v 1.6 2003/03/18 21:26:33 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -31,6 +31,9 @@ package Apache::matchresponse; use strict; use HTML::Entities(); use Math::Random(); +use Apache::optionresponse; + +my @Items; BEGIN { &Apache::lonxml::register('Apache::matchresponse',('matchresponse')); @@ -125,9 +128,10 @@ sub end_itemgroup { foreach my $name (@names) { $letter_name_map{$alphabet[$i]}=$name; $name_letter_map{$name}=$alphabet[$i]; + push @Items, $alphabet[$i]; $i++; } - $Apache::response::itemgroup{'letter_name_map'}=\%letter_name_map; + $Apache::response::itemgroup{'letter_name_map'}=\%letter_name_map; $Apache::response::itemgroup{'name_letter_map'}=\%name_letter_map; if ($target eq 'web') { my $table=''; @@ -380,22 +384,18 @@ sub displayfoils { my $part=$Apache::inputtags::part; my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"}; my %lastresponse=&Apache::lonnet::str2hash($lastresponse); - my $localcount = 1; foreach my $name (@whichfoils) { my $lastopt=$lastresponse{$name}; my $last_letter=$name_letter_map{$lastopt}; my $optionlist = ''; - if ($target ne 'tex') {$optionlist="\n";} else {$optionlist=' '.$localcount.'. '; $localcount++;} + if ($target ne 'tex') {$optionlist="\n";} + else {$optionlist='\framebox[5 mm][s]{\tiny\strut}';} my $option; foreach $option (sort(keys(%letter_name_map))) { if ($option eq $last_letter) { - if ($target ne 'tex') { - $optionlist.="\n"; - } + if ($target ne 'tex') {$optionlist.="\n";} } else { - if ($target ne 'tex') { - $optionlist.="\n"; - } + if ($target ne 'tex') {$optionlist.="\n";} } } if ($target ne 'tex') { @@ -408,8 +408,17 @@ sub displayfoils { my $text=$Apache::response::foilgroup{$name.'.text'}; if ($target ne 'tex') { $question.='
'.$optionlist.$text."\n"; - } else { - $question.=' \\\\ '.$optionlist.$text."\n"; + if ($Apache::lonhomework::type eq 'exam') { + $question.=&Apache::optionresponse::webbubbles(\@Items,\@Items); + } + } else { + if ($Apache::lonhomework::type eq 'exam') { + $question.=' '.$optionlist.$text."\n"; + $question.='\begin{enumerate}\item[\textbf{'.$Apache::lonxml::counter.'}.]'.&Apache::optionresponse::bubbles(\@Items,\@Items).'\end{enumerate}\strut '; + &Apache::lonxml::increment_counter(); + } else { + $question.=' \\\\ '.$optionlist.$text."\n"; + } } $temp++; }