--- loncom/homework/structuretags.pm 2003/03/05 16:25:57 1.153 +++ loncom/homework/structuretags.pm 2003/04/02 20:52:25 1.158 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.153 2003/03/05 16:25:57 sakharuk Exp $ +# $Id: structuretags.pm,v 1.158 2003/04/02 20:52:25 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -241,6 +241,7 @@ ENDCHECKOUT sub start_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; + $Apache::lonhomework::parsing_a_problem=1; # meta is called from lonpublisher, which doesn't uses the normal # lonhomework method of parsing the file which means that inputtags # won't get reset @@ -253,6 +254,7 @@ sub start_problem { $Apache::inputtags::part='0'; @Apache::inputtags::responselist = (); @Apache::inputtags::previous=(); + @Apache::inputtags::previous_version=(); $Apache::structuretags::printanswer='No'; if ($target ne 'analyze') { &initialize_storage(); @@ -433,7 +435,7 @@ sub end_problem { # if part is zero, no s existed, so we need show the current # grading status my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target); - if ($Apache::lonhomework::type ne 'exam') {$result.= $gradestatus;} + $result.= $gradestatus; } if ( (($target eq 'web') && ($ENV{'request.state'} ne 'construct')) || @@ -476,6 +478,12 @@ sub end_problem { &Apache::lonxml::debug("in end_problem with $target, edit"); $result = &problem_edit_footer(); } + + undef(%Apache::lonhomework::history); + undef(%Apache::lonhomework::results); + undef($Apache::inputtags::part); + undef($Apache::lonhomework::parsing_a_problem); + return $result; } @@ -679,6 +687,7 @@ sub start_part { $Apache::inputtags::part=$id; @Apache::inputtags::responselist = (); @Apache::inputtags::previous=(); + @Apache::inputtags::previous_version=(); my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part); if ($target eq 'meta') { @@ -742,6 +751,7 @@ sub end_part { $result=$gradestatus; } pop @Apache::inputtags::status; + $Apache::inputtags::part=''; return $result; }