--- loncom/interface/multidownload.pl 2007/05/05 18:51:49 1.25
+++ loncom/interface/multidownload.pl 2007/05/23 19:31:21 1.33
@@ -2,8 +2,7 @@
# CGI-script to allow download of all essay submissions of
# multiple students.
#
-# $Id: multidownload.pl,v 1.25 2007/05/05 18:51:49 banghart Exp $
-#
+# $Id: multidownload.pl,v 1.33 2007/05/23 19:31:21 banghart Exp $
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
@@ -89,6 +88,7 @@ END
my $identifier = $ENV{'QUERY_STRING'};
my $unique_path = $identifier.time();
print(&Apache::loncommon::start_page('Multiple Downloads'));
+
my $scope = $env{'request.course.id'};
if ($env{'request.course.sec'}) {
@@ -105,24 +105,33 @@ if (&Apache::lonnet::allowed('vgr',$scop
$zipout .= "$identifier.zip";
my $courseid = $env{'request.course.id'};
my @stuchecked = split(/\n/,$env{'cgi.'.$identifier.'.students'});
+ my $number_of_students = scalar(@stuchecked);
+ my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin('','Processing Status',
+ 'Preparing Zip File',$number_of_students,'inline','80');
my @parts = split(/\n/,$env{'cgi.'.$identifier.'.parts'});
my $doc_zip_root = $Apache::lonnet::perlvar{'lonZipDir'};
my $uname = $env{'user.name'};
my $udom = $env{'user.domain'};
my $unique_user = $uname.":".$udom;
&mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path",0,0700);
- 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");
}
- print MANIFEST &mt("Files contained in this zip:\n");
+ print MANIFEST (&mt("Zip file generated on [_1]",&Apache::lonlocal::locallocaltime(time()))."\n");
+ print MANIFEST (&mt("Course: [_1]",$env{"course.$courseid.description"})."\n");
+ print MANIFEST (&mt("Problem: [_1]",$res->compTitle)."\n");
+ print MANIFEST (&mt("Files contained in this zip:\n"));
my $file_problem = 0;
+ my $current_student = 0;
foreach my $stu (@stuchecked) {
+ $current_student ++;
+ &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,"Processing student $current_student of $number_of_students");
my %files_saved;
my ($stuname,$studom,$fullname) = split(/:/,$stu);
my %record = &Apache::lonnet::restore($symb,$courseid,$studom,$stuname);
my $file_url = '/uploaded/'.$studom.'/'.$stuname.'/portfolio';
- print MANIFEST $fullname."\n";
-
+ print MANIFEST ($fullname."\n");
+ my $submission_count = 0;
foreach my $partid (@$partlist) {
my @ids = $res->responseIds($partid);
foreach my $respid(@ids) {
@@ -131,10 +140,10 @@ if (&Apache::lonnet::allowed('vgr',$scop
foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) {
$file = $file_url.$file;
my ($file_name_only) = ($file =~ /^.*\/(.+$)/);
- print MANIFEST "\t$file_name_only \n";
+ print MANIFEST ("\t$file_name_only \n");
+ $submission_count ++;
&Apache::lonnet::repcopy($file);
my $source = &Apache::lonnet::filelocation("",$file);
-
my $destination = "$doc_zip_root/zipdir/$unique_user/$unique_path/$stuname$part_resp_path/$file_name_only";
if (exists($files_saved{$destination})) {
# file has already been saved once
@@ -145,15 +154,17 @@ if (&Apache::lonnet::allowed('vgr',$scop
$files_saved{$destination}++;
if (!©($source,$destination)) {
if (!$file_problem) {
- print &mt("Unable to create:
");
+ print(&mt("Unable to create:
"));
$file_problem = 1;
}
- print ("$stuname/part$partid/resp$respid/$file_name_only
");
+ print("$stuname/part$partid/resp$respid/$file_name_only
");
}
}
}
}
-
+ if (!$submission_count) {
+ print MANIFEST ("\tNo Files Submitted \n");
+ }
}
&mkpath($doc_zip_root."/zipout/$unique_user",0,0700);
@@ -168,9 +179,10 @@ if (&Apache::lonnet::allowed('vgr',$scop
}
$statement = "rm -rf $doc_zip_root/zipdir/$unique_user/$unique_path";
system($statement);
- print(''.
- &mt("Click to download").'
');
- close MANIFEST;
+ &Apache::lonhtmlcommon::Close_PrgWin('',\%prog_state);
+ print('
'. + &mt("Click to download").'