--- 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++;