--- loncom/homework/grades.pm 2006/03/25 23:54:07 1.341 +++ loncom/homework/grades.pm 2006/03/28 00:46:20 1.342 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.341 2006/03/25 23:54:07 banghart Exp $ +# $Id: grades.pm,v 1.342 2006/03/28 00:46:20 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2269,7 +2269,7 @@ sub processHandGrade { #---- Save the score and award for each student, if changed sub saveHandGrade { my ($request,$symb,$stuname,$domain,$newflg,$submitter,$part) = @_; - my @v_flag; + my @version_parts; my $usec = &Apache::lonnet::getsection($domain,$stuname, $env{'request.course.id'}); if (!&canmodify($usec)) { return('not_allowed'); } @@ -2356,15 +2356,15 @@ sub saveHandGrade { $record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override' || $dropMenu eq 'reset status') { - push (@v_flag,$new_part); + push (@version_parts,$new_part); } } my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; if (scalar(keys(%newrecord)) > 0) { - if (scalar(@v_flag)) { - &version_portfiles(\%record, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname, \@v_flag); + if (scalar(@version_parts)) { + &version_portfiles(\%record, \%newrecord, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname, \@version_parts); } &Apache::lonnet::cstore(\%newrecord,$symb, $env{'request.course.id'},$domain,$stuname); @@ -2504,7 +2504,7 @@ sub get_last_resets { # ----------- Handles creating versions for portfolio files as answers sub version_portfiles { - my ($record, $parts_graded, $courseid, $symb, $domain, $stu_name, $v_flag) = @_; + my ($record, $newrecord, $parts_graded, $courseid, $symb, $domain, $stu_name, $v_flag) = @_; my $version_parts = join('|',@$v_flag); my $parts = join('|', @$parts_graded); my $portfolio_root = &Apache::loncommon::propath($domain, @@ -2513,26 +2513,24 @@ sub version_portfiles { foreach my $key (keys(%$record)) { my $new_portfiles; if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { - my @v_portfiles; + my @versioned_portfiles; my @portfiles = split(/,/,$$record{$key}); foreach my $file (@portfiles) { &Apache::lonnet::unmark_as_readonly($domain,$stu_name,[$symb,$env{'request.course.id'}],$file); my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/); - my $version = 0; my ($answer_name,$answer_ver,$answer_ext) = &file_name_version_ext($answer_file); my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stu_name,$portfolio_root); - $version = &get_next_version($answer_name, $answer_ext, \@dir_list); + my $version = &get_next_version($answer_name, $answer_ext, \@dir_list); my $new_answer = &version_selected_portfile($domain, $stu_name, $directory, $answer_file, $version); if ($new_answer ne 'problem getting file') { - push(@v_portfiles, $directory.$new_answer); + push(@versioned_portfiles, $directory.$new_answer); &Apache::lonnet::mark_as_readonly($domain,$stu_name, ['/portfolio'.$directory.$new_answer], [$symb,$env{'request.course.id'},'graded']); } - } - $$record{$key} = join(',',@v_portfiles); + $$newrecord{$key} = join(',',@versioned_portfiles); } } return 'ok';