version 1.23, 2007/04/30 22:47:28
|
version 1.25, 2007/05/05 18:51:49
|
Line 43 use Apache::lonnet;
|
Line 43 use Apache::lonnet;
|
use LONCAPA::Enrollment; |
use LONCAPA::Enrollment; |
use strict; |
use strict; |
|
|
|
sub is_flat { |
|
my ($partlist, $res) = @_; |
|
my $flat_part = 1; |
|
my $flat_resp = 1; |
|
if (scalar(@$partlist) > 1) { |
|
$flat_part = 0; |
|
} |
|
foreach my $partid (@$partlist) { |
|
my @ids = $res->responseIds($partid); |
|
if (scalar(@ids) > 1 ) { |
|
$flat_resp = 0; |
|
} |
|
} |
|
return ($flat_part, $flat_resp); |
|
} |
|
sub get_part_resp_path { |
|
my ($flat_part, $flat_resp, $part_id, $resp_id) = @_; |
|
my $part_resp_path = ""; |
|
if (!$flat_part) { |
|
$part_resp_path = "part$part_id/"; |
|
} |
|
if (!$flat_resp) { |
|
$part_resp_path .= "resp$resp_id/"; |
|
} |
|
$part_resp_path =~ s/\/^//; |
|
return('/'.$part_resp_path); |
|
} |
$|=1; |
$|=1; |
if (! &LONCAPA::loncgi::check_cookie_and_load_env()) { |
if (! &LONCAPA::loncgi::check_cookie_and_load_env()) { |
print <<END; |
print <<END; |
Line 72 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 99 if (&Apache::lonnet::allowed('vgr',$scop
|
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $res = $navmap->getBySymb($symb); |
my $res = $navmap->getBySymb($symb); |
my $partlist = $res->parts(); |
my $partlist = $res->parts(); |
|
my ($flat_part, $flat_resp) = &is_flat($partlist, $res); |
my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/); |
my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/); |
$zipout =~ s/\s/_/g; |
$zipout =~ s/\s/_/g; |
$zipout .= "$identifier.zip"; |
$zipout .= "$identifier.zip"; |
Line 86 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 114 if (&Apache::lonnet::allowed('vgr',$scop
|
if (!open MANIFEST, ">$doc_zip_root/zipdir/$unique_user/$unique_path/manifest.txt") { |
if (!open MANIFEST, ">$doc_zip_root/zipdir/$unique_user/$unique_path/manifest.txt") { |
&Apache::lonnet::logthis("Problem making manifest"); |
&Apache::lonnet::logthis("Problem making manifest"); |
} |
} |
print MANIFEST "Files contained in this zip:\n"; |
print MANIFEST &mt("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; |
Line 94 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 122 if (&Apache::lonnet::allowed('vgr',$scop
|
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"; |
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) { |
&mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid",0,0700); |
my $part_resp_path = &get_part_resp_path($flat_part,$flat_resp, $partid, $respid); |
|
&mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path/$stuname/$part_resp_path",0,0700); |
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"; |
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_resp_path/$file_name_only"; |
if (exists($files_saved{$destination})) { |
if (exists($files_saved{$destination})) { |
# file has already been saved once |
# file has already been saved once |
my ($file_name,$file_ext) = ($destination =~ /(^.*)(\..+$)/); |
my ($file_name,$file_ext) = ($destination =~ /(^.*)(\..+$)/); |
Line 122 if (&Apache::lonnet::allowed('vgr',$scop
|
Line 153 if (&Apache::lonnet::allowed('vgr',$scop
|
} |
} |
} |
} |
} |
} |
|
|
} |
} |
|
|
&mkpath($doc_zip_root."/zipout/$unique_user",0,0700); |
&mkpath($doc_zip_root."/zipout/$unique_user",0,0700); |