Diff for /loncom/interface/multidownload.pl between versions 1.19 and 1.22

version 1.19, 2007/04/27 22:43:11 version 1.22, 2007/04/30 18:22:39
Line 34  use File::Basename; Line 34  use File::Basename;
 use File::Copy;  use File::Copy;
 use IO::File;  use IO::File;
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::grades;  
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon();  use Apache::loncommon();
Line 73  if (&Apache::lonnet::allowed('vgr',$scop Line 72  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();
     foreach my $part(@$partlist) {  
         &Apache::lonnet::logthis("partlist is $part");  
     }  
     my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/);      my ($zipout) = ($symb =~ /^.*\/(.+)\.problem$/);
     $zipout =~ s/\s/_/g;      $zipout =~ s/\s/_/g;
     $zipout .= ".zip";      $zipout .= ".zip";
Line 87  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';
           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);                  &mkpath($doc_zip_root."/zipdir/$unique_user/$unique_path/$stuname/part$partid/resp$respid",0,0700);
                 my $files = &Apache::grades::get_submitted_files($studom,$stuname,$partid,$respid,\%record);                  foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) {
                 foreach my $file (@$files) {                      $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 120  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 = "cd $doc_zip_root/zipdir/$unique_user/$unique_path\n";
     $statement .= "zip -r $doc_zip_root/zipout/$unique_user/$zipout * > /dev/null";      $statement .= "zip -r $doc_zip_root/zipout/$unique_user/$zipout * > /dev/null";
Line 128  if (&Apache::lonnet::allowed('vgr',$scop Line 132  if (&Apache::lonnet::allowed('vgr',$scop
     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.'));
 }  }

Removed from v.1.19  
changed lines
  Added in v.1.22


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>