--- loncom/homework/grades.pm 2006/01/27 01:52:25 1.306 +++ loncom/homework/grades.pm 2006/01/27 23:53:11 1.307 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.306 2006/01/27 01:52:25 banghart Exp $ +# $Id: grades.pm,v 1.307 2006/01/27 23:53:11 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2418,22 +2418,7 @@ sub version_portfiles { 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); - foreach my $row (@dir_list) { - my ($file) = split(/\&/,$row,2); - my ($file_name,$file_version,$file_ext) = - &file_name_version_ext($file); - if (($file_name eq $answer_name) && - ($file_ext eq $answer_ext)) { - # gets here if filename and extension match, regardless of version - if ($file_version ne '') { - # a versioned file is found so save it for later - if ($file_version > $version) { - $version = $file_version; - } - } - } - } - $version++; + $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); @@ -2449,6 +2434,28 @@ sub version_portfiles { return 'ok'; } +sub get_next_version { + my ($answer_name, $answer_ext, $dir_list); + my $version; + foreach my $row (@$dir_list) { + my ($file) = split(/\&/,$row,2); + my ($file_name,$file_version,$file_ext) = + &file_name_version_ext($file); + if (($file_name eq $answer_name) && + ($file_ext eq $answer_ext)) { + # gets here if filename and extension match, regardless of version + if ($file_version ne '') { + # a versioned file is found so save it for later + if ($file_version > $version) { + $version = $file_version; + } + } + } + } + $version ++; + return($version); +} + sub version_selected_portfile { my ($domain,$stu_name,$directory,$file_name,$version) = @_; my ($answer_name,$answer_ver,$answer_ext) =