--- loncom/homework/essayresponse.pm 2008/12/21 19:09:15 1.95 +++ loncom/homework/essayresponse.pm 2010/02/28 23:37:03 1.102 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # essay (ungraded) style responses # -# $Id: essayresponse.pm,v 1.95 2008/12/21 19:09:15 raeburn Exp $ +# $Id: essayresponse.pm,v 1.102 2010/02/28 23:37:03 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -55,11 +55,17 @@ sub start_essayresponse { if (!defined($maxfilesize)) { $maxfilesize = 10.0; #FIXME This should become a domain configuration } - if ( $Apache::lonhomework::type eq 'survey' ) { + if (($Apache::lonhomework::type eq 'survey') || + ($Apache::lonhomework::type eq 'surveycred') || + ($Apache::lonhomework::type eq 'anonsurvey') || + ($Apache::lonhomework::type eq 'anonsurveycred')) { $result.= ' '; } $result.='
'; - if ( $Apache::lonhomework::type ne 'survey' ) { + if (($Apache::lonhomework::type ne 'survey') && + ($Apache::lonhomework::type ne 'surveycred') && + ($Apache::lonhomework::type eq 'anonsurvey') && + ($Apache::lonhomework::type ne 'anonsurveycred')) { $result.= ''; } @@ -146,7 +152,15 @@ sub end_essayresponse { if (( $response =~ /[^\s]/) || ($filename =~ /[^\s]/) || ($portfiles =~ /[^\s]/)) { my $award='DRAFT'; if ($env{'form.HWDRAFT'.$part.'_'.$id} eq 'yes') { - $award='SUBMITTED'; + if ($Apache::lonhomework::type eq 'anonsurvey') { + $award='ANONYMOUS'; + } elsif ($Apache::lonhomework::type eq 'anonsurveycred') { + $award='ANONYMOUS_CREDIT'; + } elsif ($Apache::lonhomework::type eq 'surveycred') { + $award='SUBMITTED_CREDIT'; + } else { + $award='SUBMITTED'; + } } my $uploadedflag=0; my $totalsize=0; @@ -203,6 +217,7 @@ sub end_essayresponse { if ($target eq 'analyze') { $Apache::lonhomework::analyze{"$part.$id.type"} = 'essayresponse'; + push (@{ $Apache::lonhomework::analyze{"parts"} },"$part.$id"); &Apache::lonhomework::set_bubble_lines(); } } @@ -266,7 +281,7 @@ sub file_submission { } my $uploadedfiletypes= &Apache::lonnet::EXT("resource.$part".'_'."$id.uploadedfiletypes"); - if ($uploadedfiletypes) { + if ($uploadedfiletypes ne '') { $uploadedfiletypes=~s/[^\w\,]//g; $uploadedfiletypes=','.$uploadedfiletypes.','; foreach my $file (@submitted_files) { @@ -280,6 +295,8 @@ sub file_submission { } } } + } else { + @acceptable_files = @submitted_files; } my $maxfilesize=&Apache::lonnet::EXT("resource.$part".'_'."$id.maxfilesize"); if (!$maxfilesize) { @@ -293,11 +310,14 @@ sub file_submission { } } else { my ($symb,$crsid,$udom,$uname) = &Apache::lonnet::whichuser(); - my ($path,$filename) = ($file =~ m{^(.+)/([^/]+)$}); + my ($path,$filename) = ($file =~ m{^(.*/)([^/]+)$}); my $fullpath = '/userfiles/portfolio'.$path; if (!exists($dirlist{$fullpath})) { my @list = &Apache::lonnet::dirlist($fullpath,$udom,$uname,1); - foreach my $dir_line (@list) { + $dirlist{$fullpath} = \@list; + } + if (ref($dirlist{$fullpath}) eq 'ARRAY') { + foreach my $dir_line (@{$dirlist{$fullpath}}) { my ($fname,$dom,undef,$testdir,undef,undef,undef,undef, $size,undef,$mtime,undef,undef,undef,$obs,undef) = split(/\&/,$dir_line,16); @@ -309,7 +329,6 @@ sub file_submission { last; } } - $dirlist{$fullpath} = \@list; } } if (ref($totalsize)) { @@ -318,6 +337,7 @@ sub file_submission { if ($which eq 'filename') { &delete_form_items($jspart,$id); } + last; } else { push(@accepted_files,$file); } @@ -374,7 +394,7 @@ sub file_submission { $Apache::lonhomework::results{"resource.$part.$id.uploadedurl"}= &Apache::lonnet::userfileupload('HWFILE'.$jspart.'_'.$id,undef, $subdir); - &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id}); + delete($env{'form.HWFILE'.$jspart.'_'.$id}); } } elsif ($which eq 'portfiles' && $Apache::lonhomework::history{"resource.$part.$id.$which"}) { @@ -386,9 +406,9 @@ sub file_submission { sub delete_form_items { my ($jspart,$id) = @_; - &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'}); - &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id.'.mimetype'}); - &Apache::lonnet::delenv($env{'form.HWFILE'.$jspart.'_'.$id}); + delete($env{'form.HWFILE'.$jspart.'_'.$id.'.filename'}); + delete($env{'form.HWFILE'.$jspart.'_'.$id.'.mimetype'}); + delete($env{'form.HWFILE'.$jspart.'_'.$id}); }
'. '
'. ''. '