--- loncom/homework/essayresponse.pm 2009/01/01 16:45:32 1.97 +++ loncom/homework/essayresponse.pm 2010/04/22 13:00:24 1.106 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # essay (ungraded) style responses # -# $Id: essayresponse.pm,v 1.97 2009/01/01 16:45:32 raeburn Exp $ +# $Id: essayresponse.pm,v 1.106 2010/04/22 13:00:24 www 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 ne 'anonsurvey') && + ($Apache::lonhomework::type ne 'anonsurveycred')) { $result.= ''; } @@ -99,7 +105,7 @@ sub start_essayresponse { my @msgs; if ($Apache::lonhomework::history{"resource.$part.$id.collaborators"} =~ /\S/) { my $coll= &HTML::Entities::encode($Apache::lonhomework::history{"resource.$part.$id.collaborators"},'<>&"'); - $result .= ''; + $result .= ''; } my $file_submission = @@ -130,12 +136,14 @@ sub end_essayresponse { my $increment = &Apache::response::repetition(); my $result; if ( $target eq 'grade' ) { - my $collaborators = $env{'form.HWCOL'.$part.'_'.$id}; - if ($collaborators =~ /[^\s]/) { - my $previous_list= &HTML::Entities::encode($Apache::lonhomework::history{"resource.$part.$id.collaborators"},'<>&"'); - $Apache::lonhomework::results{"resource.$part.$id.collaborators"}=$collaborators - if ($collaborators ne $previous_list); - } +# Deal with collaborators + my $collaborators = $env{'form.HWCOL'.$part.'_'.$id}; + my $previous_list= &HTML::Entities::encode($Apache::lonhomework::history{"resource.$part.$id.collaborators"},'<>&"'); + if ($collaborators ne $previous_list) { +# &Apache::lonnet::logthis("New collaborators [$collaborators] [$previous_list]"); + $Apache::lonhomework::results{"resource.$part.$id.collaborators"}=$collaborators; + } +# Scantron if ( &Apache::response::submitted('scantron') ) { $increment=&Apache::response::scored_response($part,$id); } elsif ( &Apache::response::submitted() ) { @@ -146,7 +154,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; @@ -267,7 +283,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) { @@ -281,6 +297,8 @@ sub file_submission { } } } + } else { + @acceptable_files = @submitted_files; } my $maxfilesize=&Apache::lonnet::EXT("resource.$part".'_'."$id.maxfilesize"); if (!$maxfilesize) { @@ -330,7 +348,7 @@ sub file_submission { } } $Apache::lonhomework::results{"resource.$part.$id.$which"}=join(',',@accepted_files); - if (($$award eq 'INVALID_FILETYPE') || ($award eq 'EXCESS_FILESIZE')) { + if (($$award eq 'INVALID_FILETYPE') || ($$award eq 'EXCESS_FILESIZE')) { return; } if (ref($uploadedflag)) { @@ -378,7 +396,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"}) { @@ -390,9 +408,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}); } @@ -403,7 +421,7 @@ sub check_collaborators { $env{'course.'.$env{'request.course.id'}.'.num'}); my (@badcollaborators,$result); - my (@collaborators) = split(/,?\s+/,$coll); + my (@collaborators) = split(/[,;\s]+/,$coll); foreach my $entry (@collaborators) { my $collaborator; if ($entry =~ /:/) { @@ -451,7 +469,7 @@ __END__ =head1 NAME -Apache::easyresponse +Apache::essayresponse =head1 SYNOPSIS
'. '
'. ''. '
'.&mt('Collaborated with [_1]',$coll).''.&mt('Collaborated with [_1]',$coll).'