'.$question.
@@ -2985,6 +3093,7 @@ sub scantron_process_students {
my %scantron_config=&get_scantron_config($ENV{'form.scantron_format'});
my $scanlines=Apache::File->new($Apache::lonnet::perlvar{'lonScansDir'}."/$ENV{'form.scantron_selectfile'}");
+ my @scanlines=<$scanlines>;
my $classlist=&Apache::loncoursedata::get_classlist();
my %idmap=&username_to_idmap($classlist);
my $navmap=Apache::lonnavmaps::navmap->new($ENV{'request.course.fn'}.'.db',$ENV{'request.course.fn'}.'_parms.db',1, 1);
@@ -2999,8 +3108,15 @@ SCANTRONFORM
$r->print($result);
my @delayqueue;
+ my $totalcorrect;
+ my $totalincorrect;
+
+ my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,
+ 'Scantron Status','Scantron Progress',scalar(@scanlines));
+ foreach my $line (@scanlines) {
+ my $studentcorrect;
+ my $studentincorrect;
- foreach my $line (<$scanlines>) {
chomp($line);
my $scan_record=&scantron_parse_scanline($line,\%scantron_config);
my ($uname,$udom);
@@ -3010,13 +3126,15 @@ SCANTRONFORM
}
$r->print('doing studnet'.$uname.' ');
($uname,$udom)=split(/:/,$uname);
- &Apache::lonnet::delenv('form\.counter$'); #') stupid emacs
+ &Apache::lonnet::delenv('form.counter');
&Apache::lonnet::appenv(%$scan_record);
+# &Apache::lonhomework::showhash(%ENV);
$Apache::lonxml::debug=1;
- &Apache::lonhomework::showhash(%ENV);
- $Apache::lonxml::debug=0;
+ &Apache::lonxml::debug("line is $line");
+ my $i=0;
foreach my $resource (@resources) {
+ $i++;
my $result=&Apache::lonnet::ssi($resource->src(),
('submitted' =>'scantron',
'grade_target' =>'grade',
@@ -3024,13 +3142,30 @@ SCANTRONFORM
'grade_domain' =>$udom,
'grade_courseid'=>$ENV{'request.course.id'},
'grade_symb' =>$resource->symb()));
+ my %score=&Apache::lonnet::restore($resource->symb(),
+ $ENV{'request.course.id'},
+ $udom,$uname);
+ foreach my $part ($resource->{PARTS}) {
+ if ($score{'resource.'.$part.'.solved'} =~ /^correct/) {
+ $studentcorrect++;
+ $totalcorrect++;
+ } else {
+ $studentincorrect++;
+ $totalincorrect++;
+ }
+ }
$r->print(''.
$resource->symb().'-'.
$resource->src().'-'.' result is'.$result);
- last;
+ &Apache::lonhomework::showhash(%score);
+ # if ($i eq 3) {last;}
}
- &Apache::lonnet::delenv('form\.counter$'); #') stupid emacs
+ &Apache::lonnet::delenv('form.counter');
&Apache::lonnet::delenv('scantron\.');
+ &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
+ 'last student Who got a '.$studentcorrect.' correct and '.
+ $studentincorrect.' incorrect. The class has gotten '.
+ $totalcorrect.' correct and '.$totalincorrect.' incorrect');
last;
#FIXME
#get iterator for $sequence
@@ -3039,6 +3174,7 @@ SCANTRONFORM
# generate data to pass back that includes grade recevied
#}
}
+ $Apache::lonxml::debug=0;
foreach my $delay (@delayqueue) {
#FIXME
#print out each delayed student with interface to select how
@@ -3051,7 +3187,8 @@ SCANTRONFORM
#FIXME
# if delay queue exists 2 submits one to process delayed students one
# to ignore delayed students, possibly saving the delay queue for later
-
+
+ $navmap->untieHashes();
}
#-------- end of section for handling grading scantron forms -------
#
@@ -3098,10 +3235,7 @@ sub gradingmenu {
var cmd = formname.command;
formname.saveState.value = "saveCmd="+radioSelection(cmd)+":saveSec="+pullDownSelection(formname.section)+
":saveSub="+radioSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.status);
- if (cmd[0].checked || cmd[1].checked || cmd[2].checked || cmd[4].checked) formname.submit();
-
- if (cmd[3].checked) browseAndUpload();
-
+ if (cmd[0].checked || cmd[1].checked || cmd[2].checked || cmd[3].checked || cmd[4].checked) formname.submit();
if (cmd[5].checked) {
if (!checkReceiptNo(formname,'notOK')) { return false;}
formname.submit();
@@ -3150,57 +3284,6 @@ sub gradingmenu {
}
}
- function browseAndUpload() {
- bNLoad = window.open('', 'BrowseAndUpload', 'toolbar=no,location=no,scrollbars=no,width=550,height=200,screenx=100,screeny=75');
- bNLoad.focus();
- var lDoc = bNLoad.document;
- lDoc.write("");
- lDoc.write("Browse And Upload");
-
- lDoc.write("
GRADINGMENUJS
@@ -3262,8 +3345,8 @@ GRADINGMENUJS
($saveSub eq 'all' ? 'checked' : '').' /> everybody |
'."\n".
'