[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'};
 		}