--- loncom/homework/grades.pm 2007/01/04 21:24:39 1.388
+++ loncom/homework/grades.pm 2007/03/14 19:15:37 1.392
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.388 2007/01/04 21:24:39 raeburn Exp $
+# $Id: grades.pm,v 1.392 2007/03/14 19:15:37 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -117,8 +117,12 @@ sub response_type {
my $navmap = Apache::lonnavmaps::navmap->new();
my $res = $navmap->getBySymb($symb);
my $partlist = $res->parts();
+ my %vPart =
+ map { $_ => 1 } (&Apache::loncommon::get_env_multiple('form.vPart'));
my (%response_types,%handgrade);
foreach my $part (@{ $partlist }) {
+ next if (%vPart && !exists($vPart{$part}));
+
my @types = $res->responseType($part);
my @ids = $res->responseIds($part);
for (my $i=0; $i < scalar(@ids); $i++) {
@@ -599,7 +603,8 @@ sub verifyreceipt {
my (undef,undef,$fullname) = &getclasslist('all','0');
my $receiptparts=0;
- if ($env{"course.$courseid.receiptalg"} eq 'receipt2') { $receiptparts=1; }
+ if ($env{"course.$courseid.receiptalg"} eq 'receipt2' ||
+ $env{"course.$courseid.receiptalg"} eq 'receipt3') { $receiptparts=1; }
my $parts=['0'];
if ($receiptparts) { ($parts)=&response_type($symb); }
foreach (sort
@@ -2984,7 +2989,7 @@ sub viewgrades {
}
$result.=''.''.''."\n".
'';
- $result.='';
#table listing all the students in a section/class
@@ -4638,6 +4643,7 @@ sub scantron_fixup_scanline {
$answer=$alphabet[$args->{'response'}];
} elsif ($on eq 'number') {
$answer=$args->{'response'}+1;
+ if ($answer == 10) { $answer = '0'; }
} else {
substr($answer,$args->{'response'},1)=$on;
}
@@ -4708,7 +4714,7 @@ sub scantron_parse_scanline {
|| $currentquest eq '*') {
push(@{$record{'scantron.doubleerror'}},$questnum);
$record{"scantron.$questnum.answer"}='';
- } elsif (!$currentquest
+ } elsif (!defined($currentquest)
|| $currentquest eq $$scantron_config{'Qoff'}
|| $currentquest !~ /^[A-Z]$/) {
$record{"scantron.$questnum.answer"}='';
@@ -4723,9 +4729,9 @@ sub scantron_parse_scanline {
|| $currentquest eq '*') {
push(@{$record{'scantron.doubleerror'}},$questnum);
$record{"scantron.$questnum.answer"}='';
- } elsif (!$currentquest
- || $currentquest eq $$scantron_config{'Qoff'}
- || $currentquest !~ /^\d$/) {
+ } elsif (!defined($currentquest)
+ || $currentquest eq $$scantron_config{'Qoff'}
+ || $currentquest !~ /^\d$/) {
$record{"scantron.$questnum.answer"}='';
if (!&scan_data($scan_data,"$whichline.no_bubble.$questnum")) {
push(@{$record{"scantron.missingerror"}},$questnum);