--- loncom/interface/lonprintout.pm 2005/12/15 18:36:23 1.406 +++ loncom/interface/lonprintout.pm 2006/01/17 18:02:34 1.413 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.406 2005/12/15 18:36:23 albertel Exp $ +# $Id: lonprintout.pm,v 1.413 2006/01/17 18:02:34 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -750,15 +750,14 @@ sub details_for_menu { sub latex_corrections { - - my ($number_of_columns,$result,$selectionmade) = @_; + my ($number_of_columns,$result,$selectionmade,$answer_mode) = @_; # $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g; $result =~ s/\$number_of_columns/$number_of_columns/g; - if ($selectionmade ne '1') { - $result =~ s/(\\end{document})/\\strut\\vspace\*{-4 mm}\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/; + if ($selectionmade eq '1' || $answer_mode eq 'only') { + $result =~ s/(\\end{document})/\\strut\\vskip 0 mm\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/; } else { - $result =~ s/(\\end{document})/\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/; + $result =~ s/(\\end{document})/\\strut\\vspace\*{-4 mm}\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Printed from LON-CAPA\\copyright MSU{\\hfill} Licensed under GNU General Public License $1/; } $result =~ s/(\\end{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g; $result =~ s/(\\end{longtable}\s*)\\strut\\newline/$1/g; @@ -817,11 +816,12 @@ sub IndexCreation { sub print_latex_header { my $mode=shift; - my $output='\documentclass[letterpaper]{article}'; + my $output='\documentclass[letterpaper,twoside]{article}'; if (($mode eq 'batchmode') || (!$perm{'pav'})) { $output.='\batchmode'; } $output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n". + '\usepackage{multirow}'."\n". '\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n". '\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n". '\usepackage{wrapfig}'. @@ -1078,7 +1078,8 @@ ENDPART $cleanURL=$currentURL; } $selectionmade = 1; - if ($cleanURL=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { + if ($cleanURL!~m|^/adm/| + && $cleanURL=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { my $rndseed=time; my $texversion=''; if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') { @@ -1147,7 +1148,8 @@ ENDPART if ($currentURL=~m/\.page\s*$/) { ($result,$number_of_columns) = &page_cleanup($result); } - } elsif ($currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') { + } elsif ($cleanURL!~m|^/adm/| + && $currentURL=~/\.sequence$/ && $helper->{'VARS'}->{'construction'} eq '1') { #printing content of sequence from the construction space my $flag_latex_header_remove = 'NO'; my $rndseed=time; @@ -1257,15 +1259,16 @@ ENDPART $result.="\\newpage\n"; } } - my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); + my ($sequence,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); $urlp=&Apache::lonnet::clutter($urlp); $form{'symb'}=$master_seq[$i]; - my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]); - my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem + + my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #title of the assignment which contains this problem if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} if ($i==0) {$prevassignment=$assignment;} my $texversion=''; - if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { + if ($urlp!~m|^/adm/| + && $urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { $resources_printed .= $urlp.':'; my $pre_counter=$env{'form.counter'}; $texversion.=&Apache::lonnet::ssi($urlp,%form); @@ -1294,7 +1297,7 @@ ENDPART } else { if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) { $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); - $texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($urlp).'}\vskip 0 mm '; + $texversion.='\vskip 0 mm \noindent\textbf{'.&Apache::lonnet::gettitle($master_seq[$i]).'}\vskip 0 mm '; $texversion.=&path_to_problem ($urlp,$LaTeXwidth); $texversion.='\vskip 1 mm '.$answer; } else { @@ -1402,7 +1405,8 @@ ENDPART $person,$type, \%moreenv,\@master_seq, $flag_latex_header_remove, - $LaTeXwidth); + $LaTeXwidth, + $number_of_columns); $resources_printed .= ":"; $print_array[$i].=$output; $student_names[$i].=$person.':'.$fullname.'_END_'; @@ -1578,8 +1582,14 @@ ENDPART } #-------------------------------------------------------- corrections for the different page formats $result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'},$helper->{'VARS'}->{'TABLE_CONTENTS'},$helper->{'VARS'}->{'TABLE_INDEX'},$selectionmade); - $result = &latex_corrections($number_of_columns,$result,$selectionmade); - for (my $i=1;$i<=$#print_array;$i++) {$print_array[$i] = &latex_corrections($number_of_columns,$print_array[$i],$selectionmade);} + $result = &latex_corrections($number_of_columns,$result,$selectionmade, + $helper->{'VARS'}->{'ANSWER_TYPE'}); + for (my $i=1;$i<=$#print_array;$i++) { + $print_array[$i] = + &latex_corrections($number_of_columns,$print_array[$i], + $selectionmade, + $helper->{'VARS'}->{'ANSWER_TYPE'}); + } #changes page's parameters for the one column output if ($numberofcolumns == 1) { $result =~ s/\\textwidth\s*=\s*-?\d*\.?\d*\s*(cm|mm|in)/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /; @@ -1701,7 +1711,7 @@ sub get_CODE { sub print_resources { my ($r,$helper,$person,$type,$moreenv,$master_seq,$remove_latex_header, - $LaTeXwidth)=@_; + $LaTeXwidth,$number_of_columns)=@_; my $current_output = ''; my $printed = ''; my ($username,$userdomain,$usersection) = split /:/,$person; @@ -1730,7 +1740,8 @@ sub print_resources { ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) { my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline); if (&Apache::lonnet::allowed('bre',$res_url)) { - if ($res_url=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { + if ($res_url!~m|^/adm/| + && $res_url=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { $printed .= $curresline.':'; my $pre_counter=$env{'form.counter'}; my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); @@ -1767,7 +1778,7 @@ sub print_resources { $printed .= $curresline.':'; my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv); my ($envfile) = - ( $env{'user.environment'} = ~m|/([^/]+)\.id$| ); + ( $env{'user.environment'} =~ m|/([^/]+)\.id$| ); &Apache::lonnet::transfer_profile_to_env($r->dir_config('lonIDsDir'), $envfile); my $current_counter=$env{'form.counter'}; @@ -1776,7 +1787,7 @@ sub print_resources { } else { $rendered =~ s/\\end{document}//; } - $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut '; + $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/'.$number_of_columns.'][b]{\hrulefill}\strut \vskip 0 mm \strut '; } else { my $rendered = &unsupported($res_url,$helper->{'VARS'}->{'LATEX_TYPE'}); if ($remove_latex_header ne 'NO') { @@ -2169,11 +2180,9 @@ CHOOSE_STUDENTS } - my %all_codes = &Apache::lonnet::get('CODEs', - \@names, $cdom,$cnum); my %code_values; my %codes_to_print; - foreach my $key (keys(%all_codes)) { + foreach my $key (@names) { %code_values = &Apache::grades::get_codes($key, $cdom, $cnum); foreach my $key (keys(%code_values)) { $codes_to_print{$key} = 1; @@ -2204,8 +2213,7 @@ CHOOSE_STUDENTS &Apache::lonxml::xmlparse($r, 'helper', < PAGESIZE -
-
Number of anonymous assignments to print? +
Number of anonymous assignments to print: if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && @@ -2218,8 +2226,19 @@ CHOOSE_STUDENTS
- Value of CODE to print? - + Names to store the CODEs under for later: + + +
+ Bubble sheet type: + + + $codechoice + +

+
+ Enter a CODE to print: + if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && @@ -2231,28 +2250,13 @@ CHOOSE_STUDENTS } -
- Choose single code from list - - - $code_selection - -
- Names to store the CODEs under for later: - - -
- Bubble sheet type: - - - $codechoice - -
-
+

Reprint a set of saved CODEs: + $namechoice +

$resource_selector @@ -2300,7 +2304,7 @@ CHOOSE_STUDENTS1 &Apache::lonxml::xmlparse($r, 'helper', < PAGESIZE -
Number of anonymous assignments to print? +
Number of anonymous assignments to print: if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && @@ -2313,8 +2317,19 @@ CHOOSE_STUDENTS1
- Value of CODE to print? - + Names to store the CODEs under for later: + + +
+ Bubble sheet type: + + + $codechoice + +

+
+ Enter a CODE to print: + if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && @@ -2326,28 +2341,13 @@ CHOOSE_STUDENTS1 } -
- Choose single code from list - - - $code_selection - -
- Names to store the CODEs under for later: - - -
- Bubble sheet type: - - - $codechoice - -
-
+

Reprint a set of saved CODEs: + $namechoice +

$resource_selector