--- loncom/homework/grades.pm	2008/12/24 06:31:41	1.542
+++ loncom/homework/grades.pm	2009/02/14 19:45:26	1.551
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.542 2008/12/24 06:31:41 raeburn Exp $
+# $Id: grades.pm,v 1.551 2009/02/14 19:45:26 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -779,12 +779,12 @@ sub listStudents {
     my $getsec    = $env{'form.section'} eq '' ? 'all' : $env{'form.section'};
     my $getgroup  = $env{'form.group'} eq '' ? 'all' : $env{'form.group'};
     my $submitonly= $env{'form.submitonly'} eq '' ? 'all' : $env{'form.submitonly'};
-    my $viewgrade = $env{'form.showgrading'} eq 'yes' ? &mt('View/Grade/Regrade') : &mt('View');
+    my $viewgrade = $env{'form.showgrading'} eq 'yes' ? 'View/Grade/Regrade' : 'View';
     $env{'form.probTitle'} = $env{'form.probTitle'} eq '' ? 
 	&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'};
 
-    my $result='<h3><span class="LC_info">&nbsp;'.$viewgrade.
-	&mt(' Submissions for a Student or a Group of Students')
+    my $result='<h3><span class="LC_info">&nbsp;'
+	.&mt("$viewgrade Submissions for a Student or a Group of Students")
 	.'</span></h3>';
 
     my ($table,undef,$hdgrade,$partlist,$handgrade) = &showResourceInfo($symb,$env{'form.probTitle'},($env{'form.showgrading'} eq 'yes'));
@@ -889,7 +889,7 @@ LISTJAVASCRIPT
 			 &Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,'javascript:reLoadList(this.form);')).'<br />';
     }
 
-    $gradeTable.=&mt('To [_1] a submission or a group of submissions, click on the check box(es) next to the student\'s name(s). Then click on the Next button.',lc($viewgrade)).'<br />'."\n".
+    $gradeTable.=&mt('To '.lc($viewgrade)." a submission or a group of submissions, click on the check box(es) next to the student's name(s). Then click on the Next button.").'<br />'."\n".
 	'<input type="hidden" name="command" value="processGroup" />'."\n";
 
 # checkall buttons
@@ -2094,7 +2094,7 @@ KEYWORDS
 			    ' )</span>&nbsp; &nbsp;';
 			my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record);
 			if (@$files) {
-			    $lastsubonly.='<br /><span class="LC_warning">'.&mt('Like all files provided by users, this file may contain virusses').'</span><br />';
+			    $lastsubonly.='<br /><span class="LC_warning">'.&mt('Like all files provided by users, this file may contain viruses').'</span><br />';
 			    my $file_counter = 0;
 			    foreach my $file (@$files) {
 			        $file_counter++;
@@ -2234,7 +2234,7 @@ KEYWORDS
 	    '<option>7</option><option>10</option></select>'."\n";
 	my $nsel = ($env{'form.NTSTU'} ne '' ? $env{'form.NTSTU'} : '1');
 	$ntstu =~ s/<option>$nsel</<option selected="selected">$nsel</;
-	$endform.=&mt('[_1]student(s)',$ntstu);
+	$endform.=&mt('[quant,_1,student]',$ntstu);
 	$endform.='&nbsp;&nbsp;<input type="button" value="'.&mt('Previous').'" '.
 	    'onClick="javascript:checksubmit(this.form,\'Previous\');" target="_self" /> &nbsp;'."\n".
 	    '<input type="button" value="'.&mt('Next').'" '.
@@ -2317,7 +2317,7 @@ sub get_last_submission {
 					$$returnhash{$version.':keys'}))) {
 		$lasthash{$key}=$$returnhash{$version.':'.$key};
 		$timestamp = 
-		    scalar(localtime($$returnhash{$version.':timestamp'}));
+		    &Apache::lonlocal::locallocaltime($$returnhash{$version.':timestamp'});
 	    }
 	}
 	foreach my $key (keys(%lasthash)) {
@@ -3426,7 +3426,7 @@ sub editgrades {
 	    if ($part !~ m/^\Q$partid\E/) { next;}
 	    if ($type eq 'awarded' || $type eq 'solved') { next; }
 	    my $display=&Apache::lonnet::metadata($url,$stores.'.display');
-	    $display =~ s/\[Part: (\w)+\]//;
+	    $display =~ s/\[Part: \Q$part\E\]//;
             my $narrowtext = &mt('Tries');
 	    $display =~ s/Number of Attempts/$narrowtext/;
 	    $header .= '<th align="center">'.&mt('Old').' '.$display.'</th>'.
@@ -5487,7 +5487,8 @@ sub scantron_parse_scanline {
     my ($line,$whichline,$scantron_config,$scan_data,$just_header)=@_;
 
     my %record;
-    my $questions=substr($line,$$scantron_config{'Qstart'}-1);  # Answers
+    my $lastpos = $env{'form.scantron_maxbubble'}*$$scantron_config{'Qlength'};
+    my $questions=substr($line,$$scantron_config{'Qstart'}-1,$lastpos);  # Answers
     my $data=substr($line,0,$$scantron_config{'Qstart'}-1);     # earlier stuff
     if (!($$scantron_config{'CODElocation'} eq 0 ||
 	  $$scantron_config{'CODElocation'} eq 'none')) {
@@ -7506,12 +7507,6 @@ SCANTRONFORM
         }
 
 	$completedstudents{$uname}={'line'=>$line};
-        my $lastpos = $env{'form.scantron_maxbubble'}*$scantron_config{'Qlength'};
-        my $studentdata = substr($line,$scantron_config{'Qstart'}-1,$lastpos);
-        chomp($studentdata);
-        $studentdata =~ s/\r$//;
-        my $studentrecord = '';
-        my $counter = -1;
         if ($env{'form.verifyrecord'}) {
             my $lastpos = $env{'form.scantron_maxbubble'}*$scantron_config{'Qlength'};
             my $studentdata = substr($line,$scantron_config{'Qstart'}-1,$lastpos);
@@ -7566,6 +7561,7 @@ SCANTRONFORM
                 }
             }
         }
+        if (&Apache::loncommon::connection_aborted($r)) { last; }
     } continue {
 	&Apache::lonxml::clear_problem_counter();
 	&Apache::lonnet::delenv('scantron\.');
@@ -7589,7 +7585,7 @@ sub grade_student_bubbles {
                     'grade_domain'  => $udom,
                     'grade_courseid'=> $env{'request.course.id'},
                     'grade_symb'    => $resource->symb(),
-                    'code'          => $scancode);
+                    'CODE'          => $scancode);
         my $result=&ssi_with_retries($resource->src(),$ssi_retries,%form);
         return 'ssi_error' if ($ssi_error);
         last if (&Apache::loncommon::connection_aborted($r));
@@ -7783,7 +7779,7 @@ sub checkscantron_results {
     my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Scantron/Submissions Comparison Status',
                                     'Progress of Scantron Data/Submission Records Comparison',$count,
                                     'inline',undef,'checkscantron');
-    my ($username,$domain,$uname,$started);
+    my ($username,$domain,$started);
 
     &Apache::grades::scantron_get_maxbubble();  # Need the bubble lines array to parse.
 
@@ -8869,7 +8865,7 @@ ENDHEADER
        }
     }
 # We are done
-    $result.='<br />'.&mt('Successfully stored grades for [_1] student(s).',$storecount).
+    $result.='<br />'.&mt('Successfully stored grades for [quant,_1,student].',$storecount).
              '</td></tr></table>'."\n".
              '</td></tr></table><br /><br />'."\n";
     return $result.&show_grading_menu_form($symb);