'."\n";
my ($string,$contents,$matches) = ('','',0);
my (undef,undef,$fullname) = &getclasslist('all','0');
@@ -749,11 +752,11 @@ sub verifyreceipt {
my $header =
&Apache::loncommon::start_data_table().
&Apache::loncommon::start_data_table_header_row().
- '
Fullname
'."\n".
- '
Username
'."\n".
- '
Domain
';
+ '
'.&mt('Fullname').'
'."\n".
+ '
'.&mt('Username').'
'."\n".
+ '
'.&mt('Domain').'
';
if ($receiptparts) {
- $header.='
Problem Part
';
+ $header.='
'.&mt('Problem Part').'
';
}
$header.=
&Apache::loncommon::end_data_table_header_row();
@@ -786,11 +789,12 @@ sub verifyreceipt {
}
}
if ($matches == 0) {
- $string = $title.'No match found for the above receipt.';
+ $string = $title.&mt('No match found for the above receipt.');
} else {
$string = &jscriptNform($symb).$title.
- 'The above receipt matches the following student'.
- ($matches <= 1 ? '.' : 's.')."\n".
+ '
'.
+ &mt('The above receipt matches the following [numerate,_1,student].',$matches).
+ '
'.
$header.
$contents.
&Apache::loncommon::end_data_table()."\n";
@@ -4897,52 +4901,48 @@ sub scantron_selectphase {
# Chunk of form to prompt for a file to grade and how:
- $result.= <
-
-
-
-SCANTRONFORM
+ '.&Apache::loncommon::end_data_table_row().'
+ '.&Apache::loncommon::end_data_table().'
+
+';
$r->print($result);
@@ -4951,18 +4951,17 @@ SCANTRONFORM
# Chunk of form to prompt for a scantron file upload.
- $r->print(<
-
-SCANTRONFORM
+');
my $default_form_data=&defaultFormData(&get_symb($r,1));
my $cdom= $env{'course.'.$env{'request.course.id'}.'.domain'};
my $cnum= $env{'course.'.$env{'request.course.id'}.'.num'};
@@ -4988,47 +4987,38 @@ SCANTRONFORM
UPLOAD
- $r->print(<print('
-
-
-
-
-SCANTRONFORM
+ '.&Apache::loncommon::end_data_table_row().'
+ '.&Apache::loncommon::end_data_table().'
+');
}
# Chunk of the form that prompts to view a scoring office file,
# corrected file, skipped records in a file.
- $r->print(<
-
');
$r->print($grading_menu_button);
return
}
@@ -5416,10 +5406,9 @@ sub scantron_parse_scanline {
my $answer_length = $$scantron_config{'Qlength'} * $answers_needed;
-
$questnum++;
my $currentquest = substr($questions,0,$answer_length);
- $questions = substr($questions,0,$answer_length)='';
+ $questions = substr($questions,$answer_length);
if (length($currentquest) < $answer_length) { next; }
# Qon letter implies for each slot in currentquest we have:
@@ -5429,7 +5418,6 @@ sub scantron_parse_scanline {
if ($$scantron_config{'Qon'} eq 'letter') {
-
if ($currentquest =~ /\?/
|| $currentquest =~ /\*/
|| (&occurence_count($currentquest, "[A-Z]") > 1)) {
@@ -5458,7 +5446,8 @@ sub scantron_parse_scanline {
}
} else {
for (my $ans = 0; $ans < $answers_needed; $ans++) {
- $record{"scantron.$ansnum.answer"} = substr($currentquest, $ans, 1);
+ my $bubble = substr($currentquest, $ans, 1);
+ $record{"scantron.$ansnum.answer"} = $bubble;
$ansnum++;
}
}
@@ -5525,10 +5514,9 @@ sub scantron_parse_scanline {
push(@{$record{"scantron.missingerror"}},$questnum);
}
- # If the bubble is not the last position, there will be
- # 2 elements. If it is the last position, there will be 1 element.
- } elsif (scalar(@array) le 2) {
+
+ } elsif (scalar(@array) eq 2) {
my $location = length($array[0]);
my $line_num = int($location / $$scantron_config{'Qlength'});
@@ -6961,9 +6949,10 @@ sub scantron_get_maxbubble {
foreach my $part_id (@{$analysis{'parts'}}) {
-
my $lines = $analysis{"$part_id.bubble_lines"};;
+
+
# TODO - make this a persistent hash not an array.