--- loncom/interface/lonprintout.pm 2005/01/04 22:00:20 1.343.2.2
+++ loncom/interface/lonprintout.pm 2005/01/05 12:07:27 1.350
@@ -1,7 +1,7 @@
-# The LearningOnline Network
+# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.343.2.2 2005/01/04 22:00:20 albertel Exp $
+# $Id: lonprintout.pm,v 1.350 2005/01/05 12:07:27 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -703,7 +703,8 @@ sub print_latex_header {
}
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n".
'\usepackage{longtable}\usepackage{textcomp}\usepackage{makeidx}'."\n".
- '\usepackage[dvips]{graphicx}\usepackage{epsfig}\usepackage{calc}'."\n".
+ '\usepackage[dvips]{graphicx}\usepackage{epsfig}'."\n".
+ '\usepackage{picins}\usepackage{calc}'."\n".
'\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}'."\n".
'\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}'."\n".
'\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}'."\n".
@@ -1013,10 +1014,22 @@ ENDPART
my $flag_latex_header_remove = 'NO';
my $flag_page_in_sequence = 'NO';
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
+ my @page_breaks = split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'};
+ my $page_index = 0;
my $prevassignment='';
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
for (my $i=0;$i<=$#master_seq;$i++) {
+
+ # Note due to document structure, not allowed to put \newpage
+ # prior to the first resource
+
+ if (($master_seq[$i] eq $page_breaks[$page_index])) {
+ $page_index++;
+ if($i != 0) {
+ $result.="\\newpage\n";
+ }
+ }
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]);
$urlp=&Apache::lonnet::clutter($urlp);
$form{'symb'}=$master_seq[$i];
@@ -1103,7 +1116,9 @@ ENDPART
if (&Apache::loncommon::connection_aborted($r)) { last; }
}
&Apache::lonnet::delenv('form.counter');
- if ($flag_page_in_sequence eq 'YES') {$result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;}
+ if ($flag_page_in_sequence eq 'YES') {
+ $result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;
+ }
$result .= '\end{document}';
} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') ||
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')){
@@ -1132,6 +1147,7 @@ ENDPART
$helper->{'VARS'}->{'NUMBER_TO_PRINT'}=$#students+1;
}
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
+
#loop over students
my $flag_latex_header_remove = 'NO';
my %moreenv;
@@ -1142,6 +1158,7 @@ ENDPART
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1,'inline','75');
my $student_counter=-1;
foreach my $person (@students) {
+
my $duefile="/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.due";
if (-e $duefile) {
my $temp_file = Apache::File->new('>>'.$duefile);
@@ -1408,11 +1425,25 @@ sub print_resources {
$namepostfix="\\\\Name: ";
$fullname = "CODE - ".$moreenv->{'CODE'};
}
+ my @page_breaks = split /\|\|\|/,$helper->{'VARS'}->{'FINISHPAGE'};
+ my $page_index = 0;
+ my $i = 0;
#goes through all resources, checks if they are available for
#current student, and produces output
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
foreach my $curresline (@{$master_seq}) {
+ if ($curresline eq $page_breaks[$page_index]) {
+ #
+ # Due to document structure, we cannot put a
+ # page break prior to the first document
+ #
+ if($i != 0) {
+ $current_output.= "\\newpage\n";
+ }
+ $page_index++;
+ }
+ $i++;
if ( !($type eq 'problems' &&
($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) {
my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
@@ -1524,6 +1555,9 @@ sub handler {
# }
# return OK;
+
+
+
&output_data($r,$helper,\%parmhash);
return OK;
}
@@ -1689,6 +1723,7 @@ sub printHelper {
# If we're in a sequence...
if (($helper->{'VARS'}->{'construction'} ne '1') &&
+
$helper->{VARS}->{'postdata'} &&
$helper->{VARS}->{'assignment'}) {
# Allow problems from sequence
@@ -1705,6 +1740,7 @@ sub printHelper {
return $isProblem;
$map
return $symbFilter;
+
@@ -1716,6 +1752,7 @@ sub printHelper {
return $isNotMap;
$map
return $symbFilter;
+
HELPERFRAGMENT
@@ -1727,6 +1764,7 @@ HELPERFRAGMENT
# problems in the course, optionally for selected students
if ($userPriviledged &&
($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) {
+
push @{$printChoices}, ['Problems from entire course', 'all_problems', 'ALL_PROBLEMS'];
&Apache::lonxml::xmlparse($r, 'helper', <
@@ -1737,6 +1775,7 @@ HELPERFRAGMENT
return $isProblemOrMap;
return $isNotMap;
return $symbFilter;
+
ALL_PROBLEMS
@@ -1752,6 +1791,7 @@ ALL_PROBLEMS
return $isProblem;
$map
return $symbFilter;
+
How should the results be printed?
@@ -1814,6 +1854,7 @@ CHOOSE_ANON1
return $isNotMap;
$map
return $symbFilter;
+
How should the results be printed?
@@ -1897,6 +1938,7 @@ CHOOSE_FROM_SUBDIR
CHOOSE_FROM_ANY_SEQUENCE
return \$res->is_sequence;
return $urlValue;
+
@@ -1907,6 +1949,7 @@ CHOOSE_FROM_SUBDIR
return $isProblem
return '$escapedSequenceName';
return $symbFilter;
+
CHOOSE_FROM_ANY_SEQUENCE