--- loncom/homework/grades.pm 2003/11/12 21:37:07 1.159
+++ loncom/homework/grades.pm 2003/11/25 21:54:58 1.163
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.159 2003/11/12 21:37:07 albertel Exp $
+# $Id: grades.pm,v 1.163 2003/11/25 21:54:58 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1644,7 +1644,7 @@ KEYWORDS
$partid.' ( ID '.$respid.
' ) ';
if ($record{"resource.$partid.$respid.uploadedurl"}) {
- $lastsubonly.=' File uploaded by student Like all files provided by users, this file may contain virusses ';
+ $lastsubonly.=' File uploaded by student Like all files provided by users, this file may contain virusses ';
}
$lastsubonly.='Submitted Answer: '.
&cleanRecord($subval,$responsetype,$symb,$partid,
@@ -2840,7 +2840,9 @@ sub csvuploadassign {
foreach my $grade (@gradedata) {
my %entries=&Apache::loncommon::record_sep($grade);
my $username=$entries{$fields{'username'}};
+ $username=~s/\s//g;
my $domain=$entries{$fields{'domain'}};
+ $domain=~s/\s//g;
if (!exists($$classlist{"$username:$domain"})) {
push(@skipped,"$username:$domain");
next;
@@ -3377,7 +3379,7 @@ sub scantron_uploads {
my $cdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
my $cname=$ENV{'course.'.$ENV{'request.course.id'}.'.num'};
my @files=&Apache::lonnet::dirlist('userfiles',$cdom,$cname,
- &Apache::locommon::propath($cdom,$cname));
+ &Apache::loncommon::propath($cdom,$cname));
foreach my $filename (@files) {
($filename)=split(/&/,$filename);
if ($filename!~/^scantron_orig_/) { next ; }
@@ -3414,12 +3416,12 @@ sub scantron_selectphase {
#FIXME allow instructor to be able to download the scantron file
# and to upload it,
$result.= <
-
- $default_form_data
-
+SCANTRONFORM
+ }
+
+ $r->print(<
-
$grading_menu_button
SCANTRONFORM
- return $result;
+ return
}
sub get_scantron_config {
@@ -3632,18 +3670,6 @@ sub scantron_filter {
return 0;
}
-#FIXME I think I am doing this in the wrong order, I think it would be
-#better to make a several passes analyzing all of the lines in the
-#file for common errors wrong/invalid PID/username duplicated
-#PID/username, missing bubbles, double bubbles, missing/invalid CODE
-#and then get the instructor to fix all of these errors, then grade
-#the corrected one, I'll still need to catch error conditions, but
-#maybe most will taken care even before we start
-
-sub scantron_validate_file {
- my ($r) = @_;
-}
-
sub scantron_process_corrections {
my ($r) = @_;
my %scantron_config=&get_scantron_config($ENV{'form.scantron_format'});
@@ -3753,10 +3779,6 @@ sub scantron_getfile {
my $lines;
$lines=&Apache::lonnet::getfile('/uploaded/'.$cdom.'/'.$cname.'/'.
'scantron_orig_'.$ENV{'form.scantron_selectfile'});
- if ($lines eq '-1') {
- #FIXME need to actually replicate file to course space
- #FIXME when replicating strip CRLF to LF or CR to LF
- }
my %scanlines;
$scanlines{'orig'}=[(split("\n",$lines,-1))];
my $temp=$scanlines{'orig'};
@@ -3896,7 +3918,7 @@ sub scantron_get_correction {
#to show both the current line and the previous one and allow skipping
#the previous one or the current one
- $r->print("
An error was detected ($error) ");
+ $r->print("
An error was detected ($error)");
if ( defined($$scan_record{'scantron.PaperID'}) ) {
$r->print(" for PaperID ".
$$scan_record{'scantron.PaperID'}." \n");
@@ -4073,7 +4095,6 @@ SCANTRONFORM
($uname,$udom)=('','');
$i++;
my $line=&scantron_get_line($scanlines,$i);
-# $r->print('
line is'.$line.'
');
if ($line=~/^[\s\cz]*$/) { next; }
my $scan_record=&scantron_parse_scanline($line,$i,\%scantron_config,
$scan_data);
@@ -4088,15 +4109,11 @@ SCANTRONFORM
'Student '.$uname.' has multiple sheets',2);
next;
}
-# $r->print('
doing studnet'.$uname.'
');
($uname,$udom)=split(/:/,$uname);
&Apache::lonnet::delenv('form.counter');
&Apache::lonnet::appenv(%$scan_record);
-# &Apache::lonhomework::showhash(%ENV);
-# $Apache::lonxml::debug=1;
-# &Apache::lonxml::debug("line is $line");
-
- my $i=0;
+
+ my $i=0;
foreach my $resource (@resources) {
$i++;
my $result=&Apache::lonnet::ssi($resource->src(),
@@ -4106,23 +4123,6 @@ 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('
result is'.$result);
-# &Apache::lonhomework::showhash(%score);
- # if ($i eq 3) {last;}
}
$completedstudents{$uname}={'line'=>$line};
} continue {
@@ -4130,32 +4130,11 @@ SCANTRONFORM
&Apache::lonnet::delenv('scantron\.');
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
'last student');
- #last;
- #FIXME
- #get iterator for $sequence
- #foreach question 'submit' the students answer to the server
- # through grade target {
- # generate data to pass back that includes grade recevied
- #}
}
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
my $lasttime = &Time::HiRes::time()-$start;
$r->print("
took $lasttime
");
- #$Apache::lonxml::debug=0;
- foreach my $delay (@delayqueue) {
- #FIXME
- #print out each delayed student with interface to select how
- # to repair student provided info
- #Expected errors include
- # 1 bad/no stuid/username
- # 2 invalid bubblings
-
- }
- #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();
$r->print("
Done
");
$r->print(&show_grading_menu_form($symb,$url));
@@ -4169,6 +4148,7 @@ sub scantron_upload_scantron_data {
'domainid');
my $domsel=&Apache::loncommon::select_dom_form($ENV{'request.role.domain'},
'domainid');
+ my $default_form_data=&defaultFormData(&get_symb_and_url($r));
$r->print(<
function checkUpload(formname) {
@@ -4181,6 +4161,7 @@ sub scantron_upload_scantron_data {