--- loncom/homework/rankresponse.pm 2003/07/01 20:13:14 1.15 +++ loncom/homework/rankresponse.pm 2003/10/24 18:04:55 1.24 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # rank style response # -# $Id: rankresponse.pm,v 1.15 2003/07/01 20:13:14 sakharuk Exp $ +# $Id: rankresponse.pm,v 1.24 2003/10/24 18:04:55 sakharuk Exp $ # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -121,7 +121,7 @@ sub get_correct_order { } @value_names = sort { - if (abs($a->[0] - $b->[0]) > $tol) {return ($a->[0] cmp $b->[0]);} + if (abs($a->[0] - $b->[0]) > $tol) {return ($a->[0] <=> $b->[0]);} return 0; } @value_names; my @value_names_tmp=@value_names; @@ -187,7 +187,7 @@ sub grade_response { my ($temp,$right,$wrong,$ignored)=(0,0,0,0); my @correctorder=&get_correct_order($tol,@whichfoils); foreach my $name (@whichfoils) { - my $response = $ENV{'form.HWVAL_'.$Apache::inputtags::response['-1'].":$temp"}; + my $response = &Apache::response::getresponse($temp); $responsehash{$name}=$response; my $value=shift(@correctorder); if ( $response =~ /[^\s]/) { @@ -238,14 +238,14 @@ sub displayfoils { my (@whichfoils)=&whichfoils($max,$randomize); my $part=$Apache::inputtags::part; my $solved=$Apache::lonhomework::history{"resource.$part.solved"}; - my $status=$Apache::inputtags::status[-1]; my @whichopt=(1..($#whichfoils+1)); my @correctorder=&get_correct_order($tol,@whichfoils); - if (($solved =~ /^correct/) || ($status eq 'SHOW_ANSWER')) { + if ( &Apache::response::show_answer() && ($target ne 'tex')) { foreach my $name (@whichfoils) { my $text=$Apache::response::foilgroup{$name.'.text'}; my $value=shift(@correctorder); - $result.='
'.$value.':'.$text; + if ($target eq 'web') {$result.='
';} else {$result.=' \strut\\\\\strut ';} + $result.=$value.':'.$text; } } else { my $i = 0; @@ -283,7 +283,8 @@ sub displayfoils { $result.='
'.$text."\n"; } if ($Apache::lonhomework::type eq 'exam') { - $result.=&Apache::optionresponse::webbubbles(\@alp,\@whichopt,$temp); + my @values=(1..scalar(@whichopt)); + $result.=&Apache::optionresponse::webbubbles(\@values,\@whichopt,$temp,$lastopt); } } else { if ($Apache::lonhomework::type eq 'exam') { @@ -291,7 +292,7 @@ sub displayfoils { $result.='\vskip -5 mm\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&Apache::optionresponse::bubbles(\@alp,\@whichopt).'}\end{enumerate} \vskip -5 mm \strut '; $internal_counter++; } else { - $result.=' \\\\ \framebox[5 mm][s]{\tiny\strut} '.$text."\n"; + $result.=' \vskip 0mm \framebox[5 mm][s]{\tiny\strut} '.$text."\n"; } } $temp++;