--- loncom/homework/grades.pm 2006/01/31 17:49:01 1.302.2.2 +++ loncom/homework/grades.pm 2006/01/17 23:09:50 1.303 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.302.2.2 2006/01/31 17:49:01 albertel Exp $ +# $Id: grades.pm,v 1.303 2006/01/17 23:09:50 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1577,7 +1577,7 @@ sub submission { } my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'}; - $request->print('
'."\n". + $request->print(''."\n". ''."\n". ''."\n". ''."\n". @@ -1807,9 +1807,14 @@ KEYWORDS } if (@files) { $lastsubonly.='
Like all files provided by users, this file may contain virusses
'; + my $file_counter = 0; foreach my $file (@files) { + $file_counter ++; &Apache::lonnet::allowuploaded('/adm/grades',$file); $lastsubonly.='
'.$file.''; + $lastsubonly.='Return commented document to student. '."\n"; + $lastsubonly.=''; + } $lastsubonly.='
'; } @@ -2040,6 +2045,14 @@ sub processHandGrade { } } } + if ($env{'form.returndoc1'}) { + # if multiple files are uploaded names will be 'returndoc2', 'returndoc3' + my $file_counter = 1; + while ($env{'form.returndoc'.$file_counter}) { + $request->print("Will upload document".$env{'form.returndocorig'.$file_counter}); + $file_counter ++; + } + } $ctr++; } } @@ -2397,23 +2410,22 @@ sub version_portfiles { &Apache::lonnet::logthis("should be unmarking and remarking $key",@portfiles); foreach my $file (@portfiles) { &Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file); - my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/); + my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*$)/); my $version = 0; - my ($answer_name,$answer_ver,$answer_ext) = - &file_name_version_ext($answer_file); + my @answer_file_parts = split(/\./, $answer_file); my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stuname,$portfolio_root); + my @file_names; + my @file_name_parts; 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)) { + @file_names = split(/\&/,$row,2); + @file_name_parts = split(/\./, $file_names[0]); + # ($file_name_parts[scalar @file_name_parts] eq $answer_file_parts[scalar @answer_file_parts]) + if (($file_name_parts[0] eq $answer_file_parts[0]) && + ($file_name_parts[-1] eq $answer_file_parts[-1])) { # 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; - } + if (scalar @file_name_parts == 3) { # a versioned file is found + # so save it for later + if ($file_name_parts[1] > $version) {$version = $file_name_parts[1]}; } } } @@ -2422,13 +2434,11 @@ sub version_portfiles { if($env{'form.copy'} eq '-1') { &Apache::lonnet::logthis('problem getting file '.$directory.$answer_file); } else { - my $new_answer = $answer_name.'.'.$version.'.'.$answer_ext; - my $copy_result = &Apache::lonnet::finishuserfileupload( - $stuname,$domain,'copy', - '/portfolio'.$directory.$new_answer); - push(@v_portfiles, $directory.$new_answer); + my $copy_result = &Apache::lonnet::finishuserfileupload($stuname,$domain,'copy', + '/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); + push(@v_portfiles, $directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]); &Apache::lonnet::mark_as_readonly($domain,$stuname, - ['/portfolio'.$directory.$new_answer], + ['/portfolio'.$directory.$answer_file_parts[0].'.'.$version.'.'.$answer_file_parts[-1]], [$symb,$env{'request.course.id'},'graded']); } } @@ -2439,22 +2449,6 @@ sub version_portfiles { } -sub file_name_version_ext { - my ($file)=@_; - my @file_parts = split(/\./, $file); - my ($name,$version,$ext); - if (@file_parts > 1) { - $ext=pop(@file_parts); - if (@file_parts > 1 && $file_parts[-1] =~ /^\d+$/) { - $version=pop(@file_parts); - } - $name=join('.',@file_parts); - } else { - $name=join('.',@file_parts); - } - return($name,$version,$ext); -} - #-------------------------------------------------------------------------------------- # #-------------------------- Next few routines handles grading by section or whole class @@ -4058,11 +4052,11 @@ sub scantron_CODElist { sub scantron_CODEunique { my $result=' + value="Yes" checked="on" /> Yes + value="No" /> No '; return $result; }