--- loncom/homework/grades.pm 2007/01/04 14:59:57 1.386
+++ loncom/homework/grades.pm 2007/04/15 18:25:56 1.394
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.386 2007/01/04 14:59:57 raeburn Exp $
+# $Id: grades.pm,v 1.394 2007/04/15 18:25:56 banghart 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
@@ -1621,7 +1626,27 @@ sub show_problem {
$result.='
';
return $result;
}
-
+sub download_all_link {
+ my ($r,$symb) = @_;
+ my $courseid=$env{'request.course.id'};
+ my @stuchecked = &Apache::loncommon::get_env_multiple('form.stuinfo');
+ my $parts;
+ my $total = scalar(@stuchecked)-1;
+ my $all_students;
+ foreach my $stu_info (@stuchecked) {
+ $all_students .= $stu_info."\n";
+ }
+ foreach my $part (&Apache::loncommon::get_env_multiple('form.vPart')) {
+ $parts .= $part."\n";
+ }
+ my $identifier = &Apache::loncommon::get_cgi_id();
+ &Apache::lonnet::appenv('cgi.'.$identifier.'.students' => $all_students,
+ 'cgi.'.$identifier.'.symb' => $symb,
+ 'cgi.'.$identifier.'.parts' => $parts,
+ 'cgi.'.$identifier.'.courseid' => $courseid);
+ $r->print('Download All Submitted Documents');
+ return
+}
# --------------------------- show submissions of a student, option to grade
sub submission {
my ($request,$counter,$total) = @_;
@@ -1656,7 +1681,7 @@ sub submission {
&sub_page_kw_js($request) if ($env{'form.handgrade'} eq 'yes');
$env{'form.probTitle'} = $env{'form.probTitle'} eq '' ?
&Apache::lonnet::gettitle($symb) : $env{'form.probTitle'};
-
+ &download_all_link($request,$symb);
$request->print('
Submission Record
'."\n".
' Resource: '.$env{'form.probTitle'}.''."\n");
@@ -1867,6 +1892,9 @@ KEYWORDS
my %seenparts;
my @part_response_id = &flatten_responseType($responseType);
foreach my $part (@part_response_id) {
+ next if ($env{'form.lastSub'} eq 'hdgrade'
+ && $$handgrade{$$part[0].'_'.$$part[1]} ne 'yes');
+
my ($partid,$respid) = @{ $part };
my $display_part=&get_display_part($partid,$symb);
if ($env{"form.$uname:$udom:$partid:submitted_by"}) {
@@ -1913,8 +1941,8 @@ KEYWORDS
($env{'form.lastSub'} eq 'hdgrade' &&
$$handgrade{$$part[0].'_'.$$part[1]} eq 'yes')) {
my $display_part=&get_display_part($partid,$symb);
- $lastsubonly.='Part: '.
- $display_part.' ( ID '.$respid.
+ $lastsubonly.='Debug -'.'Part: '.
+ $display_part.' ( hhhh ID '.$respid.
' ) ';
my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record);
if (@$files) {
@@ -2007,7 +2035,8 @@ KEYWORDS
my $part_resp = join('_',@{ $part_response_id });
next if ($seen{$partid} > 0);
$seen{$partid}++;
- next if ($$handgrade{$part_resp} =~ /:no$/ && $env{'form.lastSub'} =~ /^(hdgrade)$/);
+ next if ($$handgrade{$part_resp} ne 'yes'
+ && $env{'form.lastSub'} eq 'hdgrade');
push @partlist,$partid;
push @gradePartRespid,$partid.'.'.$respid;
$request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record));
@@ -2125,6 +2154,9 @@ sub processHandGrade {
if ($encrypturl =~ /^yes$/i) {
$baseurl = &Apache::lonenc::encrypted($feedurl,1);
$showsymb = &Apache::lonenc::encrypted($symb,1);
+ } else {
+ $baseurl = $feedurl;
+ $showsymb = $symb;
}
if ($includemsg =~ /savemsg|newmsg\Q$ctr\E/) {
$subject = $env{'form.msgsub'} if ($includemsg =~ /msgsub/);
@@ -2534,7 +2566,7 @@ sub handback_files {
$message .= ' The returned file(s) are named: '. $file_msg;
$message .= " and can be found in your portfolio space.";
my $url = (&Apache::lonnet::decode_symb($symb))[2];
- my $feedurl = &Apache::lonnet::declutter($url);
+ my $feedurl = &Apache::lonnet::clutter($url);
my $encrypturl=&Apache::lonnet::EXT('resource.0.encrypturl',
$symb,$domain,$stuname);
my ($baseurl,$showsymb);
@@ -2981,7 +3013,7 @@ sub viewgrades {
}
$result.=''.' | '.' |
'."\n".
'';
- $result.='';
#table listing all the students in a section/class
@@ -4635,6 +4667,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;
}
@@ -4705,7 +4738,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"}='';
@@ -4720,9 +4753,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);
@@ -6117,6 +6150,10 @@ sub handler {
}
} else {
&init_perm();
+ &Apache::lonnet::logthis("command is $command");
+ foreach my $key (keys %perm) {
+ &Apache::lonnet::logthis("key is $key");
+ }
if ($command eq 'submission' && $perm{'vgr'}) {
($env{'form.student'} eq '' ? &listStudents($request) : &submission($request,0,0));
} elsif ($command eq 'pickStudentPage' && $perm{'vgr'}) {