--- loncom/homework/optionresponse.pm 2003/05/16 20:16:18 1.77 +++ loncom/homework/optionresponse.pm 2003/10/13 19:25:30 1.89 @@ -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.89 2003/10/13 19:25:30 albertel 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'); @@ -300,10 +302,8 @@ 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') && - (($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 +326,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 +341,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 +396,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 +417,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 +435,19 @@ sub displayfoils { sub optionlist_correction { my $texoptionlist = shift; - $texoptionlist =~ s/