[LON-CAPA-cvs] cvs: loncom /homework radiobuttonresponse.pm
foxr
lon-capa-cvs@mail.lon-capa.org
Mon, 27 Nov 2006 11:42:40 -0000
foxr Mon Nov 27 06:42:40 2006 EDT
Modified files:
/loncom/homework radiobuttonresponse.pm
Log:
BUG 4074 - If there are more than 10 foils displayed,
in exam mode, break this up into two problems so that
bubble sheets can be created. Note that 10 is tunable
using exam_max_bubbles at the top of the module.
Index: loncom/homework/radiobuttonresponse.pm
diff -u loncom/homework/radiobuttonresponse.pm:1.106 loncom/homework/radiobuttonresponse.pm:1.107
--- loncom/homework/radiobuttonresponse.pm:1.106 Mon Mar 27 16:18:16 2006
+++ loncom/homework/radiobuttonresponse.pm Mon Nov 27 06:42:40 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# mutliple choice style responses
#
-# $Id: radiobuttonresponse.pm,v 1.106 2006/03/27 21:18:16 albertel Exp $
+# $Id: radiobuttonresponse.pm,v 1.107 2006/11/27 11:42:40 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -32,6 +32,8 @@
use Apache::lonlocal;
use Apache::lonnet;
+my $exam_max_bubbles = 10;
+
BEGIN {
&Apache::lonxml::register('Apache::radiobuttonresponse',('radiobuttonresponse'));
}
@@ -490,8 +492,19 @@
$result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</label>";
} else {
if ($Apache::lonhomework::type eq 'exam') {
+
+ # If necessary, start a new group of bubbles
+ # in the next row on the scantron sheet:
+ #
+ if ($i >= $exam_max_bubbles) {
+ $i = 0; # Back to A.
+ $Apache::lonxml::counter++; # Next row of bubbles...
+ $result .= '\item[\textbf{'.$Apache::lonxml::counter.'}.]';
+ }
+
$result .= '{\small \textbf{'.$alphabet[$i].'}}$\bigcirc$'.$Apache::response::foilgroup{$name.'.text'}.'\\\\'; #' stupid emacs
$i++;
+
} else {
$result .= '\vspace*{-2 mm}\item '.$Apache::response::foilgroup{$name.'.text'};
}