[LON-CAPA-cvs] cvs: loncom /homework optionresponse.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Thu, 17 Oct 2002 14:30:40 -0000
sakharuk Thu Oct 17 10:30:40 2002 EDT
Modified files:
/loncom/homework optionresponse.pm
Log:
Exam printing is done.
Index: loncom/homework/optionresponse.pm
diff -u loncom/homework/optionresponse.pm:1.50 loncom/homework/optionresponse.pm:1.51
--- loncom/homework/optionresponse.pm:1.50 Tue Oct 1 16:17:04 2002
+++ loncom/homework/optionresponse.pm Thu Oct 17 10:30:40 2002
@@ -1,7 +1,7 @@
# LearningOnline Network with CAPA
# option list style responses
#
-# $Id: optionresponse.pm,v 1.50 2002/10/01 20:17:04 sakharuk Exp $
+# $Id: optionresponse.pm,v 1.51 2002/10/17 14:30:40 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -355,10 +355,18 @@
} else {
if ($displayoptionintex == 0) {
my $texoptionlist = &optionlist_correction($optionlist);
+ if ($Apache::lonhomework::type eq 'exam') {$texoptionlist='';}
if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {
+ if ($Apache::lonhomework::type eq 'exam') {
+ $Apache::response::foilgroup{$name.'.text'}=~s/\\item/\\item[\\textbf{$Apache::lonxml::counter}\.]/;
+ }
$result.= $texoptionlist.$Apache::response::foilgroup{$name.'.text'};
} else {
- $result.= $texoptionlist.'\item '.$Apache::response::foilgroup{$name.'.text'};
+ if ($Apache::lonhomework::type eq 'exam') {
+ $result.= $texoptionlist.'\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
+ } else {
+ $result.= $texoptionlist.'\item '.$Apache::response::foilgroup{$name.'.text'};
+ }
}
if ($Apache::lonhomework::type eq 'exam') {
$result.=&bubbles(\@alphabet,\@opt);
@@ -366,9 +374,16 @@
$displayoptionintex=1;
} else {
if ($Apache::response::foilgroup{$name.'.text'}=~m/\\item /) {
+ if ($Apache::lonhomework::type eq 'exam') {
+ $Apache::response::foilgroup{$name.'.text'}=~s/\\item/\\item[\\textbf{$Apache::lonxml::counter}\.]/;
+ }
$result.= $Apache::response::foilgroup{$name.'.text'};
} else {
- $result.= '\item '.$Apache::response::foilgroup{$name.'.text'};
+ if ($Apache::lonhomework::type eq 'exam') {
+ $result.= '\item[\textbf{'.$Apache::lonxml::counter.'}.]'.$Apache::response::foilgroup{$name.'.text'};
+ } else {
+ $result.= '\item '.$Apache::response::foilgroup{$name.'.text'};
+ }
}
if ($Apache::lonhomework::type eq 'exam') {
$result.=&bubbles(\@alphabet,\@opt);
@@ -389,7 +404,7 @@
sub optionlist_correction {
my $texoptionlist = shift;
- $texoptionlist =~ s/<option><\/option>/\\item \[\] The possible answers are:/;
+ $texoptionlist =~ s/<option><\/option>/\\item \[\] Possible answers are:/;
$texoptionlist =~ s/<option>/\{\\bf /g;
$texoptionlist =~ s/<option selected="on">/\{\\bf /g;
$texoptionlist =~ s/<\/option>/\},/g;
@@ -406,18 +421,27 @@
my ($ralphabit,$ropt) = @_;
my @alphabet = @$ralphabit;
my @opt = @$ropt;
- my $result='';
+ my ($result,$head,$line) =('','','');
my $number_of_bubbles = $#opt + 1;
- $result.= '\vskip 2 mm \noindent \begin{tabular}{|';
- for (my $ind=0;$ind<$number_of_bubbles;$ind++) {
- $result.='lr|';
- }
- $result.='}\hline ';
- for (my $ind=0;$ind<$number_of_bubbles;$ind++) {
- $result.=' '.$alphabet[$ind].': & '.$opt[$ind].' ';
- if ($ind != $number_of_bubbles - 1) {$result.=' & ';}
+ my $current_length = 0;
+ for (my $ind=0;$ind<=$number_of_bubbles;$ind++) {
+ $current_length += (length($opt[$ind])+length($alphabet[$ind])+2)*2;
+ if ($current_length<80 and $ind!=$number_of_bubbles) {
+ $line.='\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';
+ $head.='lr';
+ } else {
+ $line=~s/\&\s*$//;
+ $result.='\vskip -5 mm\begin{tabular}{'.$head.'}\\\\'.$line.'\\\\\end{tabular}';
+ $line = '\hskip -1 mm {\small \textbf{'.$alphabet[$ind].'}}$\bigcirc$\hskip -1 mm & \hskip -3 mm {\small '.$opt[$ind].'} & ';;
+ $head ='lr';
+ $current_length = (length($opt[$ind])+length($alphabet[$ind]))*2;
+ }
+
}
- $result.='\\\\\hline\end{tabular}\vskip 0 mm ';
+ $Apache::lonxml::counter++;
+ my %moreenv;
+ $moreenv{'form.counter'}=$Apache::lonxml::counter;
+ &Apache::lonnet::appenv(%moreenv);
return $result;
}