Diff for /loncom/homework/essayresponse.pm between versions 1.60 and 1.61

version 1.60, 2005/03/31 21:24:29 version 1.61, 2005/04/05 15:38:57
Line 90  sub end_essayresponse { Line 90  sub end_essayresponse {
             my $filename= $ENV{'form.HWFILE'.$part.'_'.$id.'.filename'};              my $filename= $ENV{'form.HWFILE'.$part.'_'.$id.'.filename'};
             my $portfiles = $ENV{'form.HWPORT'.$part.'_'.$id};              my $portfiles = $ENV{'form.HWPORT'.$part.'_'.$id};
     if (( $response =~ /[^\s]/) || ($filename =~ /[^\s]/) || ($portfiles =~ /[^\s]/)) {      if (( $response =~ /[^\s]/) || ($filename =~ /[^\s]/) || ($portfiles =~ /[^\s]/)) {
   my $award;    my $award='DRAFT';
         if ($ENV{'form.HWDRAFT'.$part.'_'.$id} eq 'yes') {          if ($ENV{'form.HWDRAFT'.$part.'_'.$id} eq 'yes') {
     $award='SUBMITTED';      $award='SUBMITTED';
  } else {  
     $award='DRAFT';  
  }   }
                 my $uploadedflag=0;                  my $uploadedflag=0;
                 if ($filename =~ /[^\s]/) {   &file_submission($part,$id,'filename',$award,\$uploadedflag);
              my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");   &file_submission($part,$id,'portfiles',$award,\$uploadedflag);
                     $uploadedfiletypes=~s/[^\w\,]//g;  
                     $uploadedfiletypes=','.$uploadedfiletypes.',';  
                     my ($extension)=($filename=~/\.(\w+)$/);  
             if ($uploadedfiletypes=~/\,$extension\,/i) {  
                 $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"}=$filename;  
                         $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}=  
                         &Apache::lonnet::userfileupload('HWFILE'.$part.'_'.$id,undef,'essayresponse');  
                         $uploadedflag=1;  
     } else {  
         $award='INVALID_FILETYPE';  
                     }  
         } else {  
            $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"}="";  
                    $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}="";  
         }  
                 if ($portfiles =~ /[^\s]/) {  
                     $portfiles =~s/,$//;  
                     $Apache::lonhomework::results{"resource.$part.$id.portfiles"}=$portfiles;  
                     my @submitted_files = split /,/,$portfiles;  
              my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");  
                     $uploadedfiletypes=~s/[^\w\,]//g;  
                     $uploadedfiletypes=','.$uploadedfiletypes.',';  
                     foreach (@submitted_files) {  
                         my ($extension)=($_=~/\.(\w+)$/);  
                 unless ($uploadedfiletypes=~/\,$extension\,/i) {  
                     $award='INVALID_FILETYPE';  
                         }  
                     }  
                     if ($award ne 'INVALID_FILETYPE'){  
         my ($dsymb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();  
         &Apache::lonnet::unmark_as_readonly($domain,$name,$dsymb.$crsid);  
                         &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,$dsymb.$crsid);  
                         &Apache::lonnet::clear_selected_files($name);  
                         $uploadedflag=1;  
                     }  
            } else {  
     my ($dsymb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();  
                &Apache::lonnet::unmark_as_readonly($domain,$name,$dsymb.$crsid);  
                $Apache::lonhomework::results{"resource.$part.$id.portfiles"}="";  
            }  
  $Apache::lonhomework::results{"resource.$part.$id.submission"}=$response;   $Apache::lonhomework::results{"resource.$part.$id.submission"}=$response;
  $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$award;   $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$award;
  my %previous=&Apache::response::check_for_previous($response,$part,$id);   my %previous=&Apache::response::check_for_previous($response,$part,$id);
Line 188  sub end_essayresponse { Line 146  sub end_essayresponse {
     return $result;      return $result;
 }  }
   
   sub file_submission {
       my ($part,$id,$which,$award,$uploadedflag)=@_;
       my $files;
       if ($which eq 'portfiles') { $files= $ENV{'form.HWPORT'.$part.'_'.$id}; }
       if ($which eq 'filename') {
    $files = $ENV{'form.HWFILE'.$part.'_'.$id.'.filename'};
       }
       
       if ($files =~ /[^\s]/) {
    $files =~s/,$//;
    $Apache::lonhomework::results{"resource.$part.$id.$which"}=$files;
    my @submitted_files = split(/,/,$files);
    my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes");
    $uploadedfiletypes=~s/[^\w\,]//g;
    $uploadedfiletypes=','.$uploadedfiletypes.',';
    foreach my $file (@submitted_files) {
       my ($extension)=($file=~/\.(\w+)$/);
       unless ($uploadedfiletypes=~/\,$extension\,/i) {
    $award='INVALID_FILETYPE';
       }
    }
    if ($award ne 'INVALID_FILETYPE' && ref($uploadedflag)) {
       $$uploadedflag=1;
    }
    if ($award ne 'INVALID_FILETYPE' && $which eq 'portfiles') {
       my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();
       &Apache::lonnet::unmark_as_readonly($domain,$name,$symb.$crsid);
       &Apache::lonnet::mark_as_readonly($domain,$name,\@submitted_files,$symb.$crsid);
       &Apache::lonnet::clear_selected_files($name);
    }
    if ($award ne 'INVALID_FILETYPE' && $which eq 'filename') {
       $Apache::lonhomework::results{"resource.$part.$id.uploadedfile"}=
    $files;
       $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}=
    &Apache::lonnet::userfileupload('HWFILE'.$part.'_'.$id,undef,
    'essayresponse');
    }
       } elsif ($which eq 'portfiles' &&
        $Apache::lonhomework::history{"resource.$part.$id.$which"}) {
    my ($symb,$crsid,$domain,$name)=&Apache::lonxml::whichuser();
    &Apache::lonnet::unmark_as_readonly($domain,$name,$symb.$crsid);
    $Apache::lonhomework::results{"resource.$part.$id.$which"}="";
       }
   }
   
 sub check_collaborators {  sub check_collaborators {
     my ($ncol,$coll) = @_;      my ($ncol,$coll) = @_;
     my %classlist=&Apache::lonnet::dump('classlist',      my %classlist=&Apache::lonnet::dump('classlist',

Removed from v.1.60  
changed lines
  Added in v.1.61


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