version 1.302.2.1, 2006/01/25 22:58:26
|
version 1.307, 2006/01/27 23:53:11
|
Line 1577 sub submission {
|
Line 1577 sub submission {
|
} |
} |
my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'}; |
my $overRideScore = $env{'form.overRideScore'} eq '' ? 'no' : $env{'form.overRideScore'}; |
|
|
$request->print('<form action="/adm/grades" method="post" name="SCORE">'."\n". |
$request->print('<form action="/adm/grades" method="post" name="SCORE" enctype="multipart/form-data">'."\n". |
'<input type="hidden" name="command" value="handgrade" />'."\n". |
'<input type="hidden" name="command" value="handgrade" />'."\n". |
'<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". |
'<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". |
'<input type="hidden" name="Status" value="'.$env{'form.Status'}.'" />'."\n". |
'<input type="hidden" name="Status" value="'.$env{'form.Status'}.'" />'."\n". |
Line 1807 KEYWORDS
|
Line 1807 KEYWORDS
|
} |
} |
if (@files) { |
if (@files) { |
$lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />'; |
$lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />'; |
|
my $file_counter = 0; |
foreach my $file (@files) { |
foreach my $file (@files) { |
|
$file_counter ++; |
&Apache::lonnet::allowuploaded('/adm/grades',$file); |
&Apache::lonnet::allowuploaded('/adm/grades',$file); |
$lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>'; |
$lastsubonly.='<br /><a href="'.$file.'" target="lonGRDs"><img src="'.&Apache::loncommon::icon($file).'" border=0"> '.$file.'</a>'; |
|
$lastsubonly.='Return commented document to student. <input type="file" name="returndoc'.$file_counter.'" />'."\n"; |
|
$lastsubonly.='<input type="hidden" name="returndocorig'.$file_counter.'" value="'.$file.'" />'; |
|
|
} |
} |
$lastsubonly.='<br />'; |
$lastsubonly.='<br />'; |
} |
} |
Line 2040 sub processHandGrade {
|
Line 2045 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}) { |
|
my $fname=$env{'form.returndoc'.$file_counter.'.filename'}; |
|
$request->print("<br />".$fname." will be the uploaded file name"); |
|
$request->print("<font color=\"red\">Will upload document</font>".$env{'form.returndocorig'.$file_counter}); |
|
$file_counter ++; |
|
} |
|
} |
$ctr++; |
$ctr++; |
} |
} |
} |
} |
Line 2288 sub saveHandGrade {
|
Line 2303 sub saveHandGrade {
|
"$env{'user.name'}:$env{'user.domain'}"; |
"$env{'user.name'}:$env{'user.domain'}"; |
} |
} |
# unless problem has been graded, set flag to version the submitted files |
# 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') { |
unless ($record{'resource.'.$new_part.'.solved'} =~ /^correct_/ || |
|
$record{'resource.'.$new_part.'.solved'} eq 'incorrect_by_override' || |
|
$dropMenu eq 'reset status') |
|
{ |
push (@v_flag,$new_part); |
push (@v_flag,$new_part); |
} |
} |
} |
} |
Line 2382 sub get_last_resets {
|
Line 2400 sub get_last_resets {
|
|
|
# ----------- Handles creating versions for portfolio files as answers |
# ----------- Handles creating versions for portfolio files as answers |
sub version_portfiles { |
sub version_portfiles { |
my ($record, $parts_graded, $courseid, $symb, $domain, $stuname, $v_flag) = @_; |
my ($record, $parts_graded, $courseid, $symb, $domain, $stu_name, $v_flag) = @_; |
my $version_parts = join('|',@$v_flag); |
my $version_parts = join('|',@$v_flag); |
my $parts = join('|', @$parts_graded); |
my $parts = join('|', @$parts_graded); |
my $portfolio_root = &Apache::loncommon::propath($domain, |
my $portfolio_root = &Apache::loncommon::propath($domain, |
$stuname). |
$stu_name). |
'/userfiles/portfolio'; |
'/userfiles/portfolio'; |
foreach my $key (keys(%$record)) { |
foreach my $key (keys(%$record)) { |
my $new_portfiles; |
my $new_portfiles; |
|
|
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
my @v_portfiles; |
my @v_portfiles; |
my @portfiles = split(/,/,$$record{$key}); |
my @portfiles = split(/,/,$$record{$key}); |
&Apache::lonnet::logthis("should be unmarking and remarking $key",@portfiles); |
|
foreach my $file (@portfiles) { |
foreach my $file (@portfiles) { |
&Apache::lonnet::unmark_as_readonly($domain,$stuname,[$symb,$env{'request.course.id'}],$file); |
&Apache::lonnet::unmark_as_readonly($domain,$stu_name,[$symb,$env{'request.course.id'}],$file); |
my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/); |
my ($directory,$answer_file) =($file =~ /^(.*?)([^\/]*)$/); |
my $version = 0; |
my $version = 0; |
my ($answer_name,$answer_ver,$answer_ext) = |
my ($answer_name,$answer_ver,$answer_ext) = |
&file_name_version_ext($answer_file); |
&file_name_version_ext($answer_file); |
my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stuname,$portfolio_root); |
my @dir_list = &Apache::lonnet::dirlist($directory,$domain,$stu_name,$portfolio_root); |
foreach my $row (@dir_list) { |
$version = &get_next_version($answer_name, $answer_ext, \@dir_list); |
my ($file) = split(/\&/,$row,2); |
my $new_answer = &version_selected_portfile($domain, $stu_name, $directory, $answer_file, $version); |
my ($file_name,$file_version,$file_ext) = |
if ($new_answer ne 'problem getting file') { |
&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++; |
|
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file"); |
|
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); |
push(@v_portfiles, $directory.$new_answer); |
&Apache::lonnet::mark_as_readonly($domain,$stuname, |
&Apache::lonnet::mark_as_readonly($domain,$stu_name, |
['/portfolio'.$directory.$new_answer], |
['/portfolio'.$directory.$new_answer], |
[$symb,$env{'request.course.id'},'graded']); |
[$symb,$env{'request.course.id'},'graded']); |
} |
} |
|
|
} |
} |
$$record{$key} = join(',',@v_portfiles); |
$$record{$key} = join(',',@v_portfiles); |
} |
} |
} |
} |
return 'ok'; |
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) = |
|
&file_name_version_ext($file_name); |
|
my $new_answer; |
|
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stu_name/portfolio$directory$file_name"); |
|
if($env{'form.copy'} eq '-1') { |
|
&Apache::lonnet::logthis('problem getting file '.$file_name); |
|
$new_answer = 'problem getting file'; |
|
} else { |
|
$new_answer = $answer_name.'.'.$version.'.'.$answer_ext; |
|
my $copy_result = &Apache::lonnet::finishuserfileupload( |
|
$stu_name,$domain,'copy', |
|
'/portfolio'.$directory.$new_answer); |
|
} |
|
return ($new_answer); |
} |
} |
|
|
sub file_name_version_ext { |
sub file_name_version_ext { |