version 1.304, 2006/01/25 22:56:25
|
version 1.306, 2006/01/27 01:52:25
|
Line 2049 sub processHandGrade {
|
Line 2049 sub processHandGrade {
|
# if multiple files are uploaded names will be 'returndoc2', 'returndoc3' |
# if multiple files are uploaded names will be 'returndoc2', 'returndoc3' |
my $file_counter = 1; |
my $file_counter = 1; |
while ($env{'form.returndoc'.$file_counter}) { |
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}); |
$request->print("<font color=\"red\">Will upload document</font>".$env{'form.returndocorig'.$file_counter}); |
$file_counter ++; |
$file_counter ++; |
} |
} |
Line 2301 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 2395 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) { |
foreach my $row (@dir_list) { |
my ($file) = split(/\&/,$row,2); |
my ($file) = split(/\&/,$row,2); |
my ($file_name,$file_version,$file_ext) = |
my ($file_name,$file_version,$file_ext) = |
Line 2431 sub version_portfiles {
|
Line 2434 sub version_portfiles {
|
} |
} |
} |
} |
$version++; |
$version++; |
$env{'form.copy'} = &Apache::lonnet::getfile("/uploaded/$domain/$stuname/portfolio$directory$answer_file"); |
my $new_answer = &version_selected_portfile($domain, $stu_name, $directory, $answer_file, $version); |
if($env{'form.copy'} eq '-1') { |
if ($new_answer ne 'problem getting file') { |
&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 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 { |