--- rat/lonpage.pm 2008/12/19 03:50:48 1.90 +++ rat/lonpage.pm 2011/07/28 03:14:09 1.96 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.90 2008/12/19 03:50:48 raeburn Exp $ +# $Id: lonpage.pm,v 1.96 2011/07/28 03:14:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -158,6 +158,19 @@ sub handler { my $number_of_columns = 1; my $requrl=$r->uri; my $target = $env{'form.grade_target'}; + +# Short term solution: define target as 'tex_answer' when retrieving answers +# for resources in a .page when generating printouts. +# A better long-term fix would be to modify the way problem rendering, and +# answer rendering are retrieved for individual resources when printing a .page, +# so rendered problem and answer are sequential for individual resources in +# the .page +# + if ($target eq 'answer') { + if ($env{'form.answer_output_mode'} eq 'tex') { + $target = 'tex_answer'; + } + } # &Apache::lonnet::logthis("Got a target of $target"); if ($target eq 'meta') { &Apache::loncommon::content_type($r,'text/html'); @@ -201,6 +214,10 @@ sub handler { my $lcm=1; my $contents=0; my $nforms=0; + my $nuploads=0; + my %turninpaths; + my %multiresps; + my $turninparent; my %ssibody=(); my %ssibgcolor=(); @@ -242,12 +259,14 @@ sub handler { my %posthash=('request.prefix' => $prefix, 'LONCAPA_INTERNAL_no_discussion' => 'true', 'symb' => $symb); - if ($env{'form.grade_target'} eq 'tex') { + if (($env{'form.grade_target'} eq 'tex') || + ($env{'form.answer_output_mode'} eq 'tex')) { $posthash{'grade_target'}=$env{'form.grade_target'}; $posthash{'textwidth'}=$env{'form.textwidth'}; $posthash{'problem_split'}=$env{'form.problem_split'}; $posthash{'latex_type'}=$env{'form.latex_type'}; $posthash{'rndseed'}=$env{'form.rndseed'}; + $posthash{'answer_output_mode'} = $env{'form.answer_output_mode'}; } my $submitted=exists($env{'form.all_submit'}); if (!$submitted) { @@ -271,10 +290,10 @@ sub handler { } my $output=Apache::lonnet::ssi($src,%posthash); $output=~s|//(\s*)?\s||gs; - if ($target eq 'tex') { + if (($target eq 'tex') || ($target eq 'tex_answer')) { $output =~ s/^([^&]+)\\begin{document}//; $output =~ s/\\end{document}//; - $output = '\parbox{\minipagewidth}{ '.$output.' }'; +# $output = '\parbox{\minipagewidth}{ '.$output.' }'; #some additional cleanup necessary for LateX (due to limitations of table environment $output =~ s/(\\vskip\s*\d+mm)\s*(\\\\)+/$1/g; } @@ -337,12 +356,27 @@ sub handler { $nforms++; $output=~s/\
'); } - unless ($target eq 'tex') { + unless (($target eq 'tex') || ($target eq 'tex_answer')) { $r->print(&Apache::loncommon::end_page({'discussion' => 1,})); } else { @@ -534,10 +584,6 @@ sub handler { sub get_buttons { my ($hash,$rid) = @_; - # which icons do we use? - my $extension='png'; - if ($env{'environment.icons'} eq 'classic') { $extension='gif'; } - my $metainfo = ''; my $esrc=&Apache::lonnet::declutter($hash->{'src_'.$rid}); my ($mapid,$resid)=split(/\./,$rid); @@ -554,13 +600,13 @@ sub get_buttons { || !$hash->{'encrypted_'.$rid})) { $metainfo .=''. ''. - ''. + ''. ''; } $metainfo .= ''. - ''. + ''. ''; if (($hash->{'src_'.$rid}=~/\.(problem|exam|quiz|assess|survey|form)$/) && ($hash->{'src_'.$rid} !~ m-^/uploaded/-)) { @@ -570,12 +616,12 @@ sub get_buttons { ''. '&command=submission">'. - ''. + ''. ''. ''. '&command=gradingmenu">'. - ''. + ''. ''; } if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) { @@ -583,7 +629,7 @@ sub get_buttons { ''. '" >'. - ''. + ''. ''; } }The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.