--- loncom/homework/optionresponse.pm 2003/05/16 20:16:18 1.77
+++ loncom/homework/optionresponse.pm 2003/09/24 18:18:38 1.87
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.77 2003/05/16 20:16:18 albertel Exp $
+# $Id: optionresponse.pm,v 1.87 2003/09/24 18:18:38 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -152,9 +152,11 @@ sub end_foilgroup {
my $result;
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') {
+ my $tex_option_switch=&Apache::lonxml::get_param('texoptions',$parstack,$safeeval);
my $name;
my @opt;
eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);
+ if ($target eq 'tex' && $tex_option_switch eq 'nochoice') {@opt=();}
&Apache::lonxml::debug("Options are $#opt");
my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
@@ -291,7 +293,7 @@ sub displayfoils {
my @names = @{ $Apache::response::foilgroup{'names'} };
my @truelist;
my @falselist;
- my $result;
+ my $result;
my $name;
my $displayoptionintex=0;
my @alphabet = ('A'..'Z');
@@ -301,9 +303,8 @@ sub displayfoils {
my $break;
my $solved=$Apache::lonhomework::history{"resource.$part.solved"};
my $status=$Apache::inputtags::status[-1];
- if (
- ($target ne 'tex') &&
- (($solved =~ /^correct/) || ($status eq 'SHOW_ANSWER')) ) {
+ if ( ($target ne 'tex') &&
+ &Apache::response::show_answer() ) {
foreach $name (@whichopt) {
my $text=$Apache::response::foilgroup{$name.'.text'};
if ($text!~/^\s*$/) {
@@ -326,7 +327,8 @@ sub displayfoils {
$result.=$text."\n";
} elsif ($target eq 'tex') {
$Apache::response::foilgroup{$name.'.text'}=~s/\\item//;
- $result .='\item \textit{'.$Apache::response::foilgroup{$name.'.value'}.'}'.
+ if ($max>1) {$result .='\item ';}
+ $result .=' \textit{'.$Apache::response::foilgroup{$name.'.value'}.'}'.
":".$Apache::response::foilgroup{$name.'.text'}."\n";
}
if ($Apache::lonhomework::type eq 'exam') {
@@ -340,6 +342,7 @@ sub displayfoils {
} else {
my $temp=1;
my %lastresponse=&Apache::lonnet::str2hash($Apache::lonhomework::history{"resource.$part.$id.submission"});
+ my $internal_counter=$Apache::lonxml::counter;
foreach $name (@whichopt) {
my $text=$Apache::response::foilgroup{$name.'.text'};
if ($text!~/^\s*$/) {
@@ -394,7 +397,8 @@ sub displayfoils {
}
}
if ($Apache::lonhomework::type eq 'exam') {
- $result.='\vskip -2 mm\parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$Apache::lonxml::counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+ $result.='\vskip -2 mm\parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+ $internal_counter++;
}
$displayoptionintex=1;
} else {
@@ -414,7 +418,8 @@ sub displayfoils {
}
}
if ($Apache::lonhomework::type eq 'exam') {
- $result.='\vskip -2 mm \parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$Apache::lonxml::counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+ $result.='\vskip -2 mm \parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&bubbles(\@alphabet,\@opt).'}\end{enumerate}} \vskip -9 mm \strut ';
+ $internal_counter++;
}
}
}
@@ -431,15 +436,19 @@ sub displayfoils {
sub optionlist_correction {
my $texoptionlist = shift;
- $texoptionlist =~ s/