version 1.383, 2005/08/15 22:39:43
|
version 1.384, 2005/08/16 03:34:34
|
Line 46 my $resources_printed = '';
|
Line 46 my $resources_printed = '';
|
|
|
# Determine if a code is a valid numeric code. Valid |
# Determine if a code is a valid numeric code. Valid |
# numeric codes must be comprised entirely of digits and |
# numeric codes must be comprised entirely of digits and |
# have a maximum number of allowable digits. |
# have a correct number of digits. |
# |
# |
# Parameters: |
# Parameters: |
# value - proposed code value. |
# value - proposed code value. |
# max_digits - Maximum digits allowed. |
# num_digits - Number of digits required. |
# |
# |
sub is_valid_numeric_code { |
sub is_valid_numeric_code { |
my ($value, $max_digits) = @_; |
my ($value, $num_digits) = @_; |
# Remove leading/trailing whitespace; |
# Remove leading/trailing whitespace; |
$value =~ s/^\s*//; |
$value =~ s/^\s*//; |
$value =~ s/\s*$//; |
$value =~ s/\s*$//; |
|
|
# All digits? |
# All digits? |
|
|
if ($value =~ /^[0-9]+$/) { |
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"; |
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 |
# Determines if a code is a valid alhpa code. Alpha codes |
# are ciphers that map [A-J,a-j] -> 0..9 0..9. |
# 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: |
# Parameters: |
# value - Proposed code value. |
# value - Proposed code value. |
# max_letters - Maximum number of letters. |
# num_letters - correct number of letters. |
# Note: |
# Note: |
# leading and trailing whitespace are ignored. |
# leading and trailing whitespace are ignored. |
# |
# |
sub is_valid_alpha_code { |
sub is_valid_alpha_code { |
my ($value, $max_letters) = @_; |
my ($value, $num_letters) = @_; |
|
|
# strip leading and trailing spaces. |
# strip leading and trailing spaces. |
|
|
Line 88 sub is_valid_alpha_code {
|
Line 84 sub is_valid_alpha_code {
|
$value =~ s/\s*$//g; |
$value =~ s/\s*$//g; |
|
|
# All alphas in the right range? |
# All alphas in the right range? |
|
if ($value !~ /^[A-J,a-j]+$/) { |
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 { |
|
return "Invalid letter code $value must only contain 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. |
# Determine if a code entered by the user in a helper is valid. |
Line 133 sub is_code_valid {
|
Line 125 sub is_code_valid {
|
} else { |
} else { |
$valid = &is_valid_alpha_code($code_value, $code_length); |
$valid = &is_valid_alpha_code($code_value, $code_length); |
} |
} |
|
|
|
|
return "Entering a single code is not supported (yet): $code_type $code_length $valid"; |
return "Entering a single code is not supported (yet): $code_type $code_length $valid"; |
} |
} |
Line 2094 CHOOSE_STUDENTS
|
Line 2085 CHOOSE_STUDENTS
|
<message><b>Value of CODE to print?</b></td><td></message> |
<message><b>Value of CODE to print?</b></td><td></message> |
<string variable="SINGLE_CODE" size="10" defaultvalue="zzzz"> |
<string variable="SINGLE_CODE" size="10" defaultvalue="zzzz"> |
<validator> |
<validator> |
# Not sure of exact call context so... |
|
use Apache::lonprintout; |
|
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'}) { |
!\$helper->{'VARS'}{'REUSE_OLD_CODES'}) { |
return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'}, |
return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'}, |