--- loncom/homework/inputtags.pm 2002/11/08 20:34:10 1.73 +++ loncom/homework/inputtags.pm 2003/01/24 19:49:48 1.80 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # input definitons # -# $Id: inputtags.pm,v 1.73 2002/11/08 20:34:10 sakharuk Exp $ +# $Id: inputtags.pm,v 1.80 2003/01/24 19:49:48 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -47,6 +47,8 @@ sub initialize_inputtags { @Apache::inputtags::responselist=(); # list of whether or not a specific response was previously used @Apache::inputtags::previous=(); + # submission it was used in + @Apache::inputtags::previous_version=(); # id of current part, 0 means that no part is current (inside only $Apache::inputtags::part=''; # list of problem date statuses, the first element is for @@ -120,6 +122,13 @@ sub start_textfield { $result=$token->[4]; } $result.=&Apache::edit::modifiedfield(); + } elsif ($target eq 'tex') { + if ($$tagstack[-2] eq 'essayresponse' and $Apache::lonhomework::type eq 'exam') { + my $number_of_lines= &Apache::lonxml::get_param('rows',$parstack,$safeeval); + $result = '\fbox{\fbox{\parbox{\textwidth-5mm}{'; + for (my $i=0;$ihere for more information.'; + $button=1; + } elsif ($award eq 'INVALID_FILETYPE') { + $message = 'The filetype extension of the file you uploaded is not allowed.'; + $button=1; } elsif ($award eq 'SIG_FAIL') { $message = "Please adjust significant figures.";# you provided %s significant figures"; $button=1; @@ -386,13 +412,23 @@ sub grade { my $finalaward = &finalizeawards(@awards); my $previously_used; if ( $#Apache::inputtags::previous eq $#awards ) { - $previously_used = 'PREVIOUSLY_LAST'; - foreach my $value (@Apache::inputtags::previous) { - if ($value eq 'PREVIOUSLY_USED' ) { - $previously_used = $value; - last; + my $match=0; + my @matches; + foreach my $versionar (@Apache::inputtags::previous_version) { + foreach my $version (@$versionar) { + $matches[$version]++; + } + } + foreach my $elem (@matches) {if ($elem eq ($#awards+1)) {$match=1;}} + if ($match) { + $previously_used = 'PREVIOUSLY_LAST'; + foreach my $value (@Apache::inputtags::previous) { + if ($value eq 'PREVIOUSLY_USED' ) { + $previously_used = $value; + last; + } + } } - } } &Apache::lonxml::debug("final award $finalaward, $previously_used"); &setgradedata($finalaward,$id,$previously_used); @@ -411,7 +447,7 @@ sub gradestatus { my $status = $Apache::inputtags::status['-1']; &Apache::lonxml::debug("gradestatus has :$status:"); - if ( $status ne 'CLOSED' ) { + if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE') { my $award = $Apache::lonhomework::history{"resource.$id.award"}; my $solved = $Apache::lonhomework::history{"resource.$id.solved"}; my $previous = $Apache::lonhomework::history{"resource.$id.previous"};