--- loncom/homework/optionresponse.pm 2004/04/23 17:57:18 1.107
+++ loncom/homework/optionresponse.pm 2004/07/06 14:53:00 1.112
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.107 2004/04/23 17:57:18 sakharuk Exp $
+# $Id: optionresponse.pm,v 1.112 2004/07/06 14:53:00 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -38,7 +38,7 @@ sub start_optionresponse {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
#when in a option response use these
- &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup'));
+ &Apache::lonxml::register('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist'));
push (@Apache::lonxml::namespace,'optionresponse');
my $id = &Apache::response::start_response($parstack,$safeeval);
%Apache::hint::option=();
@@ -56,10 +56,14 @@ sub start_optionresponse {
$token,'4').
&Apache::edit::select_arg('Randomize Foil Order','randomize',
['yes','no'],$token).
+ &Apache::edit::select_arg(&mt('Display of options when printed'),'TeXlayout',
+ [['horizontal',&mt('Normal list')],
+ ['vertical',&mt('Listed in a vertical column')]],$token).
&Apache::edit::end_row().&Apache::edit::start_spanning_row();
} elsif ($target eq 'modified') {
my $constructtag=&Apache::edit::get_new_args($token,$parstack,
- $safeeval,'max','randomize');
+ $safeeval,'max','randomize',
+ 'TeXlayout');
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); }
} elsif ($target eq 'meta') {
$result=&Apache::response::meta_package_write('optionresponse');
@@ -74,7 +78,7 @@ sub end_optionresponse {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
&Apache::response::end_response;
pop @Apache::lonxml::namespace;
- &Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup'));
+ &Apache::lonxml::deregister('Apache::optionresponse',('foilgroup','foil','conceptgroup','drawoptionlist'));
my $result;
if ($target eq 'edit') { $result=&Apache::edit::end_table(); }
undef(%Apache::response::foilnames);
@@ -88,7 +92,7 @@ sub start_foilgroup {
my $result='';
%Apache::response::foilgroup=();
$Apache::optionresponse::conceptgroup=0;
- &Apache::response::setrandomnumber();
+ &Apache::response::pushrandomnumber();
if ($target eq 'edit') {
my $optionlist="\n";
my $option;
@@ -144,7 +148,8 @@ ENDTABLE
} # else nothing changed so just use the default mechanism
}
if ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') {
- $result .= ' \begin{enumerate} ';
+ $result .= ' \renewcommand{\labelenumi}{\Alph{enumi}.}
+ \begin{enumerate} ';
}
return $result;
}
@@ -159,8 +164,8 @@ sub end_foilgroup {
my $name;
my @opt;
eval '@opt ='.&Apache::lonxml::get_param('options',$parstack,$safeeval);
- my $TeXlayout=&Apache::lonxml::get_param('TeXlayout',$parstack,$safeeval,undef,0);
- &Apache::lonnet::logthis("PARAMETER U>$TeXlayout>$TeXlayout<<");
if (!defined(@{ $Apache::response::foilgroup{'names'} })) {return;}
my @names = @{ $Apache::response::foilgroup{'names'} };
my @truelist;
@@ -333,7 +338,7 @@ sub displayfoils {
my $lastopt=$lastresponse{$name};
if ($text!~/^\s*$/) { $break='
'; }
$result.=$break;
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
my $value=$Apache::response::foilgroup{$name.'.value'};
if (!($text=~s|