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