[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

foxr lon-capa-cvs@mail.lon-capa.org
Mon, 15 Aug 2005 21:51:51 -0000


foxr		Mon Aug 15 17:51:51 2005 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  Add latent support for printing with an input code.
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.381 loncom/interface/lonprintout.pm:1.382
--- loncom/interface/lonprintout.pm:1.381	Fri Aug 12 17:33:41 2005
+++ loncom/interface/lonprintout.pm	Mon Aug 15 17:51:49 2005
@@ -1,7 +1,7 @@
 #  The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.381 2005/08/12 21:33:41 albertel Exp $
+# $Id: lonprintout.pm,v 1.382 2005/08/15 21:51:49 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -44,6 +44,26 @@
 
 my $resources_printed = '';
 
+#   Determine if a code entered by the user in a helper is valid.
+#   valid depends on the code type and the type of code selected.
+#   The type of code selected can either be numeric or 
+#   Alphabetic.  If alphabetic, the code, in fact is a simple
+#   substitution cipher for the actual numeric code: 0->A, 1->B ...
+#   We'll be nice and be case insensitive for alpha codes.
+# Parameters:
+#    code_value    - the value of the code the user typed in.
+#    code_option   - The code type selected from the set in the scantron format
+#                    table.
+# Returns:
+#    undef         - The code is valid.
+#    other         - An error message indicating what's wrong.
+#
+sub is_code_valid {
+    my ($code_value, $code_option) = @_;
+
+    return "Entering a single code is not supported (yet)";
+}
+
 #   Compare two students by name.  The students are in the form
 #   returned by the helper:
 #      user:domain:section:last,   first:status
@@ -1989,13 +2009,29 @@
     <string variable="NUMBER_TO_PRINT_TOTAL" maxlength="5" size="5">
        <validator>
 	if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) &&
-	    !\$helper->{'VARS'}{'REUSE_OLD_CODES'}) {
+	    !\$helper->{'VARS'}{'REUSE_OLD_CODES'}                &&
+            !\$helper->{'VARS'}{'SINGLE_CODE'}) {
 	    return "You need to specify the number of assignments to print";
 	}
 	return undef;
        </validator>
     </string>
     <message></td></tr><tr><td></message>
+    <message><b>Value of CODE to print?</b></td><td></message>
+    <string variable="SINGLE_CODE" size="10" defaultvalue="zzzz">
+        <validator>
+           # Not sure of exact call context so...
+	   use Apache::lonprintout;
+	   if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}           &&
+	      !\$helper->{'VARS'}{'REUSE_OLD_CODES'}) {
+	      return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'},
+						      \$helper->{'VARS'}{'CODE_OPTION'});
+	   } else {
+	       return undef;	# Other forces control us.
+	   }
+        </validator>
+    </string>
+    <message></td></tr><tr><td></message>
     <message><b>Names to store the CODEs under for later:</b></message>
     <message></td><td></message>
     <string variable="ANON_CODE_STORAGE_NAME" maxlength="50" size="20" />