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

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 16 Aug 2005 03:34:35 -0000


albertel		Mon Aug 15 23:34:35 2005 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  - it's not a max it's an exact amount required
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.383 loncom/interface/lonprintout.pm:1.384
--- loncom/interface/lonprintout.pm:1.383	Mon Aug 15 18:39:43 2005
+++ loncom/interface/lonprintout.pm	Mon Aug 15 23:34:34 2005
@@ -1,7 +1,7 @@
 #  The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.383 2005/08/15 22:39:43 foxr Exp $
+# $Id: lonprintout.pm,v 1.384 2005/08/16 03:34:34 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -46,41 +46,37 @@
 
 #  Determine if a code is a valid numeric code.  Valid
 #  numeric codes must be comprised entirely of digits and
-#  have a maximum number of allowable digits.
+#  have a correct number of digits.
 #
 #  Parameters:
 #     value      - proposed code value.
-#     max_digits - Maximum digits allowed.
+#     num_digits - Number of digits required.
 #
 sub is_valid_numeric_code {
-    my ($value, $max_digits) = @_;
+    my ($value, $num_digits) = @_;
     #   Remove leading/trailing whitespace;
     $value =~ s/^\s*//;
     $value =~ s/\s*$//;
     
     #  All digits?
-
     if ($value =~ /^[0-9]+$/) {
-	if (length($value) <= $max_digits) {
-	    return undef;
-	} else {
-	    return "Numeric code $value  has too many digits (max = $max_digits)";
-	}
-    } else {
 	return "Numeric code $value has invalid characters - must only be digits";
     }
+    if (length($value) != $num_digits) {
+	return "Numeric code $value incorrect number of digits (correct = $num_digits)";
+    }
 }
 #   Determines if a code is a valid alhpa code.  Alpha codes
 #   are ciphers that map  [A-J,a-j] -> 0..9 0..9.
-#   They also have a maximum digit count.
+#   They also have a correct digit count.
 # Parameters:
 #     value          - Proposed code value.
-#     max_letters    - Maximum number of letters.
+#     num_letters    - correct number of letters.
 # Note:
 #    leading and trailing whitespace are ignored.
 #
 sub is_valid_alpha_code {
-    my ($value, $max_letters) = @_;
+    my ($value, $num_letters) = @_;
     
      # strip leading and trailing spaces.
 
@@ -88,16 +84,12 @@
     $value =~ s/\s*$//g;
 
     #  All alphas in the right range?
-
-    if ($value =~ /^[A-J,a-j]+$/) {
-	if (length($value) <= $max_letters) {
-	    return undef;
-	} else {
-	    return "Letter code $value has too many letters (max = $max_letters)";
-	}
-    } else {
+    if ($value !~ /^[A-J,a-j]+$/) {
 	return "Invalid letter code $value must only contain A-J";
     }
+    if (length($value) != $num_letters) {
+	return "Letter code $value has incorrect number of letters (correct = $num_letters)";
+    }
 }
 
 #   Determine if a code entered by the user in a helper is valid.
@@ -133,7 +125,6 @@
     } else {
 	$valid = &is_valid_alpha_code($code_value, $code_length);
     }
-  
 
     return "Entering a single code is not supported (yet): $code_type $code_length $valid";
 }
@@ -2094,8 +2085,6 @@
     <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'},