'.
@@ -763,28 +781,23 @@ sub verifyreceipt {
if ($receiptparts) {
$contents.='
'.$part.'
';
}
- $contents.='
'."\n";
+ $contents.=
+ &Apache::loncommon::end_data_table_row()."\n";
$matches++;
}
}
}
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".
- '
'."\n".
- '
'."\n".
- '
Fullname
'."\n".
- '
Username
'."\n".
- '
Domain
';
- if ($receiptparts) {
- $string.='
Problem Part
';
- }
- $string.='
'."\n".$contents.
- '
'."\n";
+ '
'.
+ &mt('The above receipt matches the following [numerate,_1,student].',$matches).
+ '
'.
+ $header.
+ $contents.
+ &Apache::loncommon::end_data_table()."\n";
}
return $string.&show_grading_menu_form($symb);
}
@@ -4888,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);
@@ -4942,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'};
@@ -4979,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
}
@@ -5407,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:
@@ -5420,7 +5418,6 @@ sub scantron_parse_scanline {
if ($$scantron_config{'Qon'} eq 'letter') {
-
if ($currentquest =~ /\?/
|| $currentquest =~ /\*/
|| (&occurence_count($currentquest, "[A-Z]") > 1)) {
@@ -5449,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++;
}
}
@@ -5516,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'});
@@ -6952,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.