--- loncom/homework/grades.pm 2005/04/07 22:48:06 1.260 +++ loncom/homework/grades.pm 2005/04/12 16:54:52 1.263 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.260 2005/04/07 22:48:06 banghart Exp $ +# $Id: grades.pm,v 1.263 2005/04/12 16:54:52 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2109,7 +2109,7 @@ sub processHandGrade { #---- Save the score and award for each student, if changed sub saveHandGrade { my ($request,$url,$symb,$stuname,$domain,$newflg,$submitter,$part) = @_; - my $v_flag=0; + my @v_flag; my $usec = &Apache::lonnet::getsection($domain,$stuname, $env{'request.course.id'}); if (!&canmodify($usec)) { return('not_allowed'); } @@ -2174,14 +2174,14 @@ sub saveHandGrade { } # unless problem has been graded, set flag to version the submitted files unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ || $record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override') { - $v_flag = 1; + push (@v_flag,$new_part); } } if (scalar(keys(%newrecord)) > 0) { - if ($v_flag) { - &Apache::lonnet::unmark_as_readonly($domain,$stuname,$symb.$env{'request.course.id'}); - &version_portfiles(\%record, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname); + if (scalar(@v_flag)) { + &version_portfiles(\%record, \@parts_graded, $env{'request.course.id'}, $symb, $domain, $stuname, \@v_flag); } + &Apache::lonnet::unmark_as_readonly($domain,$stuname,$symb.$env{'request.course.id'}); &Apache::lonnet::cstore(\%newrecord,$symb, $env{'request.course.id'},$domain,$stuname); } @@ -2190,7 +2190,8 @@ sub saveHandGrade { # ----------- Handles creating versions for portfolio files as answers sub version_portfiles { - my ($record, $parts_graded, $courseid, $symb, $domain, $stuname) = @_; + my ($record, $parts_graded, $courseid, $symb, $domain, $stuname, $v_flag) = @_; + my $version_parts = join('|',@$v_flag); my $parts = join('|', @$parts_graded); my $portfolio_root = &Apache::loncommon::propath($domain, $stuname). @@ -2198,7 +2199,7 @@ sub version_portfiles { foreach my $key(keys %$record) { #&Apache::lonnet::logthis("key is $key, value is $$record{$key}"); my $new_portfiles; - if ($key =~ /^resource\.($parts)\./ && $key =~ /\.portfiles$/) { + if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { my @v_portfiles; my @portfiles = split(/,/,$$record{$key}); foreach my $file (@portfiles) { @@ -2232,7 +2233,7 @@ sub version_portfiles { push(@v_portfiles, $answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); } } - $$record{$key} = join(/,/,@v_portfiles); + $$record{$key} = join(',',@v_portfiles); } } return 'ok';