--- loncom/interface/lonprintout.pm 2003/05/14 13:33:27 1.168 +++ loncom/interface/lonprintout.pm 2003/05/15 14:55:24 1.175 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.168 2003/05/14 13:33:27 albertel Exp $ +# $Id: lonprintout.pm,v 1.175 2003/05/15 14:55:24 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1041,6 +1041,8 @@ sub character_chart { sub page_format { my ($papersize,$layout,$numberofcolumns) = @_; my ($textwidth,$textheight,$oddoffset,$evenoffset) = (0,0,0,0); + + if ($papersize=~/Letter/) { if ($layout eq 'CAPA') { if ($numberofcolumns == 1) { @@ -1375,6 +1377,8 @@ ENDPART my %form; $form{'grade_target'}='tex'; $form{'textwidth'}=$LaTeXwidth; + my $rndseed=time; + $form{'rndseed'}=$rndseed; &Apache::lonnet::appenv(%moreenv); my $texversion=&Apache::lonnet::ssi($currentURL,%form); &Apache::lonnet::delenv('form.counter'); @@ -1383,9 +1387,9 @@ ENDPART my %form; $form{'grade_target'}='answer'; $form{'answer_output_mode'}='tex'; + $form{'rndseed'}=$rndseed; my $answer=&Apache::lonnet::ssi($currentURL,%form); -# $r->print('
'.$answer.'
'); return OK; - $texversion=~s/(\\end{document})/$answer$1/; + $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; } $result .= $texversion; if ($currentURL=~m/\.page\s*$/) { @@ -1417,7 +1421,7 @@ ENDPART } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { $selectionmade = 4; } - my %form; + my %form; $form{'grade_target'}='tex'; $form{'textwidth'}=$LaTeXwidth; $form{'symb'}=$master_seq[$i]; @@ -1434,6 +1438,13 @@ ENDPART } else { $texversion =~ s/\\end{document}//; } + if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { + my %form; + $form{'grade_target'}='answer'; + $form{'answer_output_mode'}='tex'; + my $answer=&Apache::lonnet::ssi($urlp,%form); + $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; + } $result .= $texversion; $flag_latex_header_remove = 'YES'; } @@ -1468,6 +1479,13 @@ ENDPART } else { $rendered =~ s/\\end{document}//; } + if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { + my %form; + $form{'answer_output_mode'}='tex'; + my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain, + $ENV{'request.course.id'},%form); + $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/; + } $current_output .= $rendered; } $flag_latex_header_remove = 'YES'; @@ -1495,19 +1513,29 @@ ENDPART $selectionmade = 6; my @list_of_files=split /\|\|\|/, $helper->{'VARS'}->{'FILES'}; @list_of_files=sort @list_of_files; - my $flag_latex_header_remove = 'NO'; + my $flag_latex_header_remove = 'NO'; + my $rndseed=time; for (my $i=0;$i<=$#list_of_files;$i++) { my $urlp = $list_of_files[$i]; if ($urlp=~/\//) { my %form; $form{'grade_target'}='tex'; $form{'textwidth'}=$LaTeXwidth; + $form{'rndseed'}=$rndseed; if ($urlp =~ m|/home/([^/]+)/public_html|) { $urlp =~ s|/home/([^/]*)/public_html|/~$1|; } else { $urlp =~ s|^/home/httpd/html||; } my $texversion=&Apache::lonnet::ssi($urlp,%form); + if($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { + my %form; + $form{'grade_target'}='answer'; + $form{'answer_output_mode'}='tex'; + $form{'rndseed'}=$rndseed; + my $answer=&Apache::lonnet::ssi($urlp,%form); + $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; + } #this chunck is responsible for printing the path to problem my $newurlp = ''; my $HowMany = length($urlp)*2; @@ -1537,6 +1565,7 @@ ENDPART } $flag_latex_header_remove = 'YES'; } + if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\typeout)/ RANDOM SEED IS $rndseed $1/;} $result .= '\end{document}'; } #-------------------------------------------------------- corrections for the different page formats @@ -1826,7 +1855,7 @@ HELPERFRAGMENT &Apache::lonxml::xmlparse($r, 'helper', < (mark them then click "next" button)
- + PAGESIZE return $isProblemOrMap return $isProblem @@ -1888,7 +1917,8 @@ CHOOSE_FROM_SUBDIR $paramHash->{CHOICES} = $printChoices; Apache::lonhelper::choices->new(); - if ($ENV{'request.role.adv'}) { + if (($ENV{'request.role.adv'} and &Apache::lonnet::allowed('vgr',$ENV{'request.course.id'})) or + ($helper->{VARS}->{'construction'} eq '1')) { $paramHash = Apache::lonhelper::getParamHash(); $paramHash->{MESSAGE_TEXT} = "
Next option is available only for advanced users:
"; Apache::lonhelper::message->new();