--- loncom/homework/grades.pm 2006/03/19 21:38:55 1.336
+++ loncom/homework/grades.pm 2006/03/21 12:45:20 1.337
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.336 2006/03/19 21:38:55 albertel Exp $
+# $Id: grades.pm,v 1.337 2006/03/21 12:45:20 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2273,16 +2273,15 @@ sub saveHandGrade {
my $usec = &Apache::lonnet::getsection($domain,$stuname,
$env{'request.course.id'});
if (!&canmodify($usec)) { return('not_allowed'); }
- my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},$domain,$stuname);
+ my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},$domain,$stuname);
my @parts_graded;
my %newrecord = ();
my ($pts,$wgt) = ('','');
my %aggregate = ();
my $aggregateflag = 0;
-
my @parts = split(/:/,$env{'form.partlist'.$newflg});
foreach my $new_part (@parts) {
- #collaborator may vary for different parts
+ #collaborator ($submi may vary for different parts
if ($submitter && $new_part ne $part) { next; }
my $dropMenu = $env{'form.GD_SEL'.$newflg.'_'.$new_part};
if ($dropMenu eq 'excused') {
@@ -2350,37 +2349,15 @@ sub saveHandGrade {
}
$newrecord{'resource.'.$new_part.'.regrader'}=
"$env{'user.name'}:$env{'user.domain'}";
+ &handback_files($request,$symb,$stuname,$domain,$newflg,$new_part,\%newrecord);
}
- my ($partlist,$handgrade,$responseType) = &response_type($symb);
- foreach my $part_resp (sort(keys(%$handgrade))) {
- my ($part_id, $resp_id) = split(/_/,$part_resp);
- if (($env{'form.'.$newflg.'_'.$part_resp.'_returndoc1'}) && ($new_part == $part_id)) {
- # if multiple files are uploaded names will be 'returndoc2','returndoc3'
- my $file_counter = 1;
- while ($env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter}) {
- my $fname=$env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter.'.filename'};
- $newrecord{"resource.$new_part.$resp_id.handback"} = $env{'form.returndocorig'.$file_counter};
- # set the filename to match the submitted file name
- $env{'form.'.$newflg.'_'.$part_resp.'_returndoc1.filename'} = $env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter};
- my $result=&Apache::lonnet::userfileupload($newflg.'_'.$part_resp.'_returndoc'.$file_counter,'',
- 'portfolio',undef,undef,undef,$stuname,$domain);
- if ($result !~ m|^/uploaded/|) {
- $request->print(' An errror occured ('.$result.
- ') while trying to upload '.&display_file().'
');
- # $request->print(&done('Back'));
- }
- $request->print("
".$fname." will be the uploaded file name");
- $request->print("Will upload document".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter});
- $file_counter++;
- }
- }
- }
-
# unless problem has been graded, set flag to version the submitted files
+ &Apache::lonnet::logthis("about to enter condition vflag");
unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ ||
$record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override' ||
$dropMenu eq 'reset status')
{
+ &Apache::lonnet::logthis("pushing vflag");
push (@v_flag,$new_part);
}
}
@@ -2393,7 +2370,6 @@ sub saveHandGrade {
}
&Apache::lonnet::cstore(\%newrecord,$symb,
$env{'request.course.id'},$domain,$stuname);
-
my @ungraded_parts;
foreach my $part (@parts) {
if ( !defined($record{'resource.'.$part.'.awarded'})
@@ -2413,6 +2389,38 @@ sub saveHandGrade {
return ('',$pts,$wgt);
}
+sub handback_files {
+ my ($request,$symb,$stuname,$domain,$newflg,$new_part,$newrecord) = @_;
+ &Apache::lonnet::logthis("inside the handback");
+ my $output;
+ my ($partlist,$handgrade,$responseType) = &response_type($symb);
+
+ foreach my $part_resp (sort(keys(%$handgrade))) {
+ my ($part_id, $resp_id) = split(/_/,$part_resp);
+ if (($env{'form.'.$newflg.'_'.$part_resp.'_returndoc1'}) && ($new_part == $part_id)) {
+ # if multiple files are uploaded names will be 'returndoc2','returndoc3'
+ my $file_counter = 1;
+ while ($env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter}) {
+ my $fname=$env{'form.'.$newflg.'_'.$part_resp.'_returndoc'.$file_counter.'.filename'};
+ $$newrecord{"resource.$new_part.$resp_id.handback"} = $env{'form.returndocorig'.$file_counter};
+ # set the filename to match the submitted file name
+ $env{'form.'.$newflg.'_'.$part_resp.'_returndoc1.filename'} = $env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter};
+ my $result=&Apache::lonnet::userfileupload($newflg.'_'.$part_resp.'_returndoc'.$file_counter,'',
+ 'portfolio',undef,undef,undef,$stuname,$domain);
+ if ($result !~ m|^/uploaded/|) {
+ $request->print(' An errror occured ('.$result.
+ ') while trying to upload '.&display_file().'
');
+ # $request->print(&done('Back'));
+ }
+ $request->print("
".$fname." will be the uploaded file name");
+ $request->print("Will upload document".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter});
+ $file_counter++;
+ }
+ }
+ }
+ return ($output);
+}
+
sub get_submitted_files {
my ($udom,$uname,$partid,$respid,$record) = @_;
my @files;