version 1.21, 2007/04/30 17:39:51
|
version 1.23, 2007/04/30 22:47:28
|
Line 74 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 74 if (&Apache::lonnet::allowed('vgr',$scop
|
my $partlist = $res->parts(); |
my $partlist = $res->parts(); |
my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/); |
my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/); |
$zipout =~ s/\s/_/g; |
$zipout =~ s/\s/_/g; |
$zipout .= ".zip"; |
$zipout .= "$identifier.zip"; |
my $courseid = $env{'request.course.id'}; |
my $courseid = $env{'request.course.id'}; |
my @stuchecked = split(/\n/,$env{'cgi.'.$identifier.'.students'}); |
my @stuchecked = split(/\n/,$env{'cgi.'.$identifier.'.students'}); |
my @parts = split(/\n/,$env{'cgi.'.$identifier.'.parts'}); |
my @parts = split(/\n/,$env{'cgi.'.$identifier.'.parts'}); |
Line 83 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 83 if (&Apache::lonnet::allowed('vgr',$scop
|
my $udom = $env{'user.domain'}; |
my $udom = $env{'user.domain'}; |
my $unique_user = $uname.":".$udom; |
my $unique_user = $uname.":".$udom; |
&mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path",0,0700); |
&mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path",0,0700); |
|
if (!open MANIFEST, ">$doc_zip_root/zipdir/$unique_user/$unique_path/manifest.txt") { |
|
&Apache::lonnet::logthis("Problem making manifest"); |
|
} |
|
print MANIFEST "Files contained in this zip:\n"; |
my $file_problem = 0; |
my $file_problem = 0; |
foreach my $stu (@stuchecked) { |
foreach my $stu (@stuchecked) { |
my %files_saved; |
my %files_saved; |
my ($stuname,$studom,$fullname) = split(/:/,$stu); |
my ($stuname,$studom,$fullname) = split(/:/,$stu); |
my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname); |
my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname); |
my $file_url = '/uploaded/'.$studom.'/'.$stuname.'/portfolio'; |
my $file_url = '/uploaded/'.$studom.'/'.$stuname.'/portfolio'; |
|
print MANIFEST $fullname."\n"; |
foreach my $partid (@$partlist) { |
foreach my $partid (@$partlist) { |
my @ids = $res->responseIds($partid); |
my @ids = $res->responseIds($partid); |
foreach my $respid(@ids) { |
foreach my $respid(@ids) { |
Line 96 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 101 if (&Apache::lonnet::allowed('vgr',$scop
|
foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) { |
foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) { |
$file = $file_url.$file; |
$file = $file_url.$file; |
my ($file_name_only) = ($file =~ /^.*\/(.+$)/); |
my ($file_name_only) = ($file =~ /^.*\/(.+$)/); |
|
print MANIFEST "\t$file_name_only \n"; |
&Apache::lonnet::repcopy($file); |
&Apache::lonnet::repcopy($file); |
my $source = &Apache::lonnet::filelocation("",$file); |
my $source = &Apache::lonnet::filelocation("",$file); |
my $destination = "$doc_zip_root/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid/$file_name_only"; |
my $destination = "$doc_zip_root/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid/$file_name_only"; |
Line 117 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 123 if (&Apache::lonnet::allowed('vgr',$scop
|
} |
} |
} |
} |
} |
} |
|
|
&mkpath($doc_zip_root."/zipout/$unique_user",0,0700); |
&mkpath($doc_zip_root."/zipout/$unique_user",0,0700); |
my $statement = "cd $doc_zip_root/zipdir/$unique_user/$unique_path\n"; |
my $statement; |
$statement .= "zip -r $doc_zip_root/zipout/$unique_user/$zipout * > /dev/null"; |
if (! -e "$doc_zip_root/zipout/$unique_user/$zipout") { |
system($statement); |
$statement = "cd $doc_zip_root/zipdir/$unique_user/$unique_path\n"; |
|
$statement .= "zip -r $doc_zip_root/zipout/$unique_user/$zipout * > /dev/null"; |
|
system($statement); |
|
} else { |
|
# should happen only if user reloads page |
|
&Apache::lonnet::logthis("$zipout is already there"); |
|
} |
$statement = "rm -rf $doc_zip_root/zipdir/$unique_user/$unique_path"; |
$statement = "rm -rf $doc_zip_root/zipdir/$unique_user/$unique_path"; |
system($statement); |
system($statement); |
print('<a href="/zipspool/zipout/'.$unique_user.'/'.$zipout.'">'. |
print('<a href="/zipspool/zipout/'.$unique_user.'/'.$zipout.'">'. |
&mt("Click to download").'</a><br />'); |
&mt("Click to download").'</a><br />'); |
|
close MANIFEST; |
} else { |
} else { |
print(&mt('You are not authorized to download student submissions.')); |
print(&mt('You are not authorized to download student submissions.')); |
} |
} |