--- loncom/homework/structuretags.pm 2002/08/23 21:17:16 1.105 +++ loncom/homework/structuretags.pm 2002/08/26 20:29:30 1.106 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.105 2002/08/23 21:17:16 albertel Exp $ +# $Id: structuretags.pm,v 1.106 2002/08/26 20:29:30 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -379,27 +379,61 @@ sub end_problem { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $result=''; my $status=$Apache::inputtags::status['-1']; - if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ) { + if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') { if ( $target eq 'grade' && $Apache::inputtags::part eq '0') { # if part is zero, no s existed, so we need to the grading &Apache::inputtags::grade; - } elsif ( $target eq 'web' && $Apache::inputtags::part eq '0' && + } elsif ( ($target eq 'web' || $target eq 'tex') && $Apache::inputtags::part eq '0' && $status ne 'UNCHECKEDOUT') { # if part is zero, no s existed, so we need show the current # grading status - $result.= &Apache::inputtags::gradestatus($Apache::inputtags::part); + my $gradesatement = &Apache::inputtags::gradestatus($Apache::inputtags::part); + if ($target eq 'tex') { + $gradesatement =~ s///; + $gradesatement =~ s/<\/table>//; + $gradesatement =~ s/]*)>//g; + $gradesatement =~ s/<\/tr>//g; + $gradesatement =~ s/]*)>//g; + $gradesatement =~ s/<\/td>//g; + $gradesatement =~ s//\\textbf{/g; + $gradesatement =~ s/<\/b>/}/g; + $gradesatement =~ s/
/\\vskip 0 mm /g; + $gradesatement =~ s/]*)>//g; + } + $result.= $gradesatement; + if ($target eq 'tex') { + $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; + if (not $ENV{'request.symb'} =~ m/\.page_/) { + $result .= '\end{document} '; + } else { + $result .= '} '; + } + } } if ( - ($target eq 'web' && ($ENV{'request.state'} ne 'construct')) || + (($target eq 'web' || $target eq 'tex') && ($ENV{'request.state'} ne 'construct')) || ($target eq 'answer') ) { if ($status eq 'CAN_ANSWER') { - $result.="\n"; + if ($target ne 'tex') { + $result.="\n"; + } } elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' || $status eq 'UNCHECKEDOUT' ) { - $result.="\n"; + if ($target ne 'tex') { + $result.="\n"; + } + } + if ($target ne 'tex') { + $result.=&Apache::lonxml::xmlend(); + } else { + $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; + if (not $ENV{'request.symb'} =~ m/\.page_/) { + $result .= '\end{document} '; + } else { + $result .= '} '; + } } - $result.=&Apache::lonxml::xmlend(); } if ($target eq 'grade') { &Apache::lonhomework::showhash(%Apache::lonhomework::results); @@ -412,14 +446,7 @@ sub end_problem { } elsif ($target eq 'edit') { &Apache::lonxml::debug("in end_problem with $target, edit"); $result = &problem_edit_footer(); - } elsif ($target eq 'tex') { - $result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; - if (not $ENV{'request.symb'} =~ m/\.page_/) { - $result .= '\end{document} '; - } else { - $result .= '} '; - } - } + } return $result; }