--- loncom/homework/structuretags.pm 2005/11/10 22:01:30 1.320 +++ loncom/homework/structuretags.pm 2005/11/18 20:29:13 1.323 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.320 2005/11/10 22:01:30 albertel Exp $ +# $Id: structuretags.pm,v 1.323 2005/11/18 20:29:13 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -346,6 +346,8 @@ sub initialize_storage { sub finalize_storage { my $result; if (%Apache::lonhomework::results) { + my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results)); + delete(@Apache::lonhomework::results{@remove}); my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); if ($env{'request.state'} eq 'construct' || $symb eq '') { $Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'}; @@ -360,6 +362,8 @@ sub finalize_storage { &store_aggregates($symb,$courseid); } } + } else { + &Apache::lonxml::debug('Nothing to store'); } return $result; } @@ -513,7 +517,9 @@ sub start_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; # We'll use the redirection to fix up printing of duedates. - &Apache::lonxml::startredirection(); + if (!$Apache::lonxml::metamode) { + &Apache::lonxml::startredirection(); + } # Problems don't nest and we don't allow more than one in # a .problem file. @@ -683,14 +689,20 @@ sub start_problem { sub end_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - my $result= &Apache::lonxml::endredirection(); # started in &start_problem + my $result; - # Figure out the front matter which was too deeply coupled for me to easily - # unravel and replace the INSERTTEXFRONTMATTERHERE in result with it. - # note that we do this in end_problem because whether or not we display - # due dates depends on whether due dates have already been displayed in the problem parts. + if (!$Apache::lonxml::metamode) { + $result = &Apache::lonxml::endredirection(); #started in &start_problem + } if ($target eq 'tex') { + + # Figure out the front matter and replace the + # INSERTTEXFRONTMATTERHERE in result with it. note that we do + # this in end_problem because whether or not we display due + # dates depends on whether due dates have already been + # displayed in the problem parts. + my $frontmatter = ''; my $startminipage = ''; if (not $env{'form.problem_split'}=~/yes/) { @@ -1215,8 +1227,10 @@ sub ordered_show_check { sub start_part { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - &Apache::lonxml::startredirection(); # we'll use redirection to fix up - # duedates. + if (!$Apache::lonxml::metamode) { + &Apache::lonxml::startredirection(); # we'll use redirection to fix up + # duedates. + } my $result=''; my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; } @@ -1325,7 +1339,10 @@ sub end_part { my $status=$Apache::inputtags::status['-1']; my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part); my $in_order_show=&ordered_show_check(); - my $result= &Apache::lonxml::endredirection(); # started in &start_part + my $result; + if (!$Apache::lonxml::metamode) { + $result = &Apache::lonxml::endredirection(); # started in &start_part + } if ($target eq 'grade') { if (($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) && !$hidden && $in_order_show) { @@ -1345,6 +1362,9 @@ sub end_part { if ($$tagstack[-2] eq 'td' and $target eq 'tex') {$result.='\end{minipage}';} } elsif ($target eq 'edit') { $result.=&Apache::edit::end_table(); + } elsif ($target eq 'modified') { + $result .= $token->[2]; + $result.=&Apache::edit::handle_insertafter($token->[1]); } pop @Apache::inputtags::status; $Apache::inputtags::part='';