Diff for /loncom/homework/essayresponse.pm between versions 1.64 and 1.67

version 1.64, 2005/04/19 00:56:39 version 1.67, 2005/05/20 18:53:53
Line 154  sub end_essayresponse { Line 154  sub end_essayresponse {
 sub file_submission {  sub file_submission {
     my ($part,$id,$which,$award,$uploadedflag)=@_;      my ($part,$id,$which,$award,$uploadedflag)=@_;
     my $files;      my $files;
     if ($which eq 'portfiles') { $files= $env{'form.HWPORT'.$part.'_'.$id}; }      my $jspart=$part;
       $jspart=~s/\./_/g;
       if ($which eq 'portfiles') { $files= $env{'form.HWPORT'.$jspart.'_'.$id}; }
     if ($which eq 'filename') {      if ($which eq 'filename') {
  $files = $env{'form.HWFILE'.$part.'_'.$id.'.filename'};   $files = $env{'form.HWFILE'.$jspart.'_'.$id.'.filename'};
     }      }
           
     if ($files =~ /[^\s]/) {      if ($files =~ /[^\s]/) {
Line 164  sub file_submission { Line 166  sub file_submission {
  $Apache::lonhomework::results{"resource.$part.$id.$which"}=$files;   $Apache::lonhomework::results{"resource.$part.$id.$which"}=$files;
  my @submitted_files = split(/,/,$files);   my @submitted_files = split(/,/,$files);
  my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");   my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");
  $uploadedfiletypes=~s/[^\w\,]//g;   if ($uploadedfiletypes) {
  $uploadedfiletypes=','.$uploadedfiletypes.',';      $uploadedfiletypes=~s/[^\w\,]//g;
  foreach my $file (@submitted_files) {      $uploadedfiletypes=','.$uploadedfiletypes.',';
     my ($extension)=($file=~/\.(\w+)$/);      foreach my $file (@submitted_files) {
     unless ($uploadedfiletypes=~/\,$extension\,/i) {   my ($extension)=($file=~/\.(\w+)$/);
  $$award='INVALID_FILETYPE';   unless ($uploadedfiletypes=~/\,$extension\,/i) {
       $$award='INVALID_FILETYPE';
    }
     }      }
  }   }
  if ($$award ne 'INVALID_FILETYPE' && ref($uploadedflag)) {   if ($$award ne 'INVALID_FILETYPE' && ref($uploadedflag)) {
Line 177  sub file_submission { Line 181  sub file_submission {
  }   }
  if ($$award ne 'INVALID_FILETYPE' && $which eq 'portfiles') {   if ($$award ne 'INVALID_FILETYPE' && $which eq 'portfiles') {
     my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();      my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();
     &Apache::lonnet::unmark_as_readonly($domain,$name,$symb.$crsid);      &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);
     &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,$symb.$crsid);      &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,[$symb,$crsid]);
     &Apache::lonnet::clear_selected_files($name);      &Apache::lonnet::clear_selected_files($name);
  }   }
  if ($$award ne 'INVALID_FILETYPE' && $which eq 'filename') {   if ($$award ne 'INVALID_FILETYPE' && $which eq 'filename') {
     $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"}=      $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"}=
  $files;   $files;
     $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}=      $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}=
  &Apache::lonnet::userfileupload('HWFILE'.$part.'_'.$id,undef,   &Apache::lonnet::userfileupload('HWFILE'.$jspart.'_'.$id,undef,
  'essayresponse');   'essayresponse');
  }   }
     } elsif ($which eq 'portfiles' &&      } elsif ($which eq 'portfiles' &&
      $Apache::lonhomework::history{"resource.$part.$id.$which"}) {       $Apache::lonhomework::history{"resource.$part.$id.$which"}) {
  my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();   my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();
  &Apache::lonnet::unmark_as_readonly($domain,$name,$symb.$crsid);   &Apache::lonnet::unmark_as_readonly($domain,$name,[$symb,$crsid]);
  $Apache::lonhomework::results{"resource.$part.$id.$which"}="";   $Apache::lonhomework::results{"resource.$part.$id.$which"}="";
     }      }
 }  }

Removed from v.1.64  
changed lines
  Added in v.1.67


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