--- loncom/homework/grades.pm 2006/03/21 12:45:20 1.337 +++ loncom/homework/grades.pm 2006/03/21 13:49:34 1.338 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.337 2006/03/21 12:45:20 banghart Exp $ +# $Id: grades.pm,v 1.338 2006/03/21 13:49:34 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2352,12 +2352,10 @@ sub saveHandGrade { &handback_files($request,$symb,$stuname,$domain,$newflg,$new_part,\%newrecord); } # 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); } } @@ -2391,10 +2389,10 @@ sub saveHandGrade { sub handback_files { my ($request,$symb,$stuname,$domain,$newflg,$new_part,$newrecord) = @_; - &Apache::lonnet::logthis("inside the handback"); - my $output; + my $portfolio_root = &Apache::loncommon::propath($domain, + $stuname). + '/userfiles/portfolio'; 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)) { @@ -2402,23 +2400,31 @@ sub handback_files { 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}; + my ($directory,$answer_file) = + ($env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter} =~ /^(.*?)([^\/]*)$/); + my ($answer_name,$answer_ver,$answer_ext) = + &file_name_version_ext($answer_file); + my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stuname,$portfolio_root); + my $version = &get_next_version($answer_name, $answer_ext, \@dir_list); + my $new_answer = &version_selected_portfile($domain, $stuname, $directory, $answer_file, $version); + $$newrecord{"resource.$new_part.$resp_id.handback"} = $new_answer; + # 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); + '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}); + $request->print("Will upload document ".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter}); $file_counter++; } } } - return ($output); + return; } sub get_submitted_files {