[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

sakharuk lon-capa-cvs@mail.lon-capa.org
Mon, 23 Sep 2002 21:09:58 -0000


sakharuk		Mon Sep 23 17:09:58 2002 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  Corrections to print sequences with closed or unopen problems.
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.73 loncom/interface/lonprintout.pm:1.74
--- loncom/interface/lonprintout.pm:1.73	Fri Sep 20 16:32:42 2002
+++ loncom/interface/lonprintout.pm	Mon Sep 23 17:09:58 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.73 2002/09/20 20:32:42 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.74 2002/09/23 21:09:58 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -342,7 +342,8 @@
 
     my $choice = $ENV{'form.choice'};
     my $layout = $ENV{'form.layout'};
-    my $numberofcolumns = $ENV{'form.numberofcolumns'};               
+    my $numberofcolumns = $ENV{'form.numberofcolumns'};  
+    my $papersize = $ENV{'form.papersize'};          
     my $laystyle = 'book';
     my $result = '';
     my $number_of_columns = 1; #used only for pages to determine the width of the cell
@@ -369,10 +370,9 @@
       #-- minimal sequence to which the current document belongs
         #-- where is the primary sequence containing file?
 	my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
-	$symbolic =~ m/([^_]+)_/;
-	my $primary_sequence = '/res/'.$1;   
- 	$symbolic =~ m/^([^_]+__)/;
-	my @master_seq = &coming_from_hash($primary_sequence,$1);
+	my @sequence = split('___',$symbolic);
+	my $primary_sequence = '/res/'.$sequence[0];   
+	my @master_seq = &coming_from_hash($primary_sequence,$sequence[0]);
         #-- produce an output string
 	my $flag_latex_header_remove = 'NO';
 	my $flag_page_in_sequence = 'NO';
@@ -385,6 +385,7 @@
 		    my %moreenv;
 		    $moreenv{'form.grade_target'}='tex';
 		    &Apache::lonnet::appenv(%moreenv);
+		    &Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
 		    my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
 		    &Apache::lonnet::delenv('form.grade_target');
 		    if ($flag_latex_header_remove ne 'NO') {
@@ -424,7 +425,7 @@
         # where is the main sequence of the course?
 	$selectionmade = 4;
 	my $main_seq = '/res/'.$ENV{'request.course.uri'};
-	my @file_seq = &coming_from_hash($main_seq); 
+	my @file_seq = &coming_from_hash_whole($main_seq);
 	my $flag_latex_header_remove = 'NO';
         #-- produce an output string
 	for (my $i=0;$i<=$#file_seq;$i++) {
@@ -434,16 +435,16 @@
 		my %moreenv;
 		$moreenv{'form.grade_target'}='tex';
 		&Apache::lonnet::appenv(%moreenv);
-		my $texversion=&Apache::lonnet::ssi($urlp);
+		my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
 		&Apache::lonnet::delenv('form.grade_target');		    
 		if ($flag_latex_header_remove ne 'NO') {
 		    $texversion = &latex_header_footer_remove($texversion);
 		} else {
 		    $texversion =~ s/\\end{document}//;
 		}
-		$result .= $texversion;        
+		$result .= $texversion;  
+		$flag_latex_header_remove = 'YES';
 	    }		
-	    $flag_latex_header_remove = 'YES';  
 	}	    
 	$result .= '\end{document}';
     } elsif ($choice eq 'All class print') { 
@@ -457,10 +458,9 @@
 	}
 	#where is the primary sequence containing current resource (the same for all students)?
 	my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
-	$symbolic =~ m/([^_]+)_/;
-	my $primary_sequence = '/res/'.$1; 	
-	$symbolic =~ m/^([^_]+__)/;
-	my @master_seq = &coming_from_hash($primary_sequence,$1); 
+	my @sequence = split('___',$symbolic);
+	my $primary_sequence = '/res/'.$sequence[0]; 	
+	my @master_seq = &coming_from_hash($primary_sequence,$sequence[0); 
         #loop over students
 	my $flag_latex_header_remove = 'NO';  
 	foreach my $person (@students) {
@@ -526,7 +526,56 @@
 	}
 	$result .= '\end{document}';      	
     }
-#-- corrections for the different page formats
+#-------------------------------------------------------- corrections for the different page formats
+#    my ($textwidth,$textheight,$offset) = (0,0,0);
+#    if ($papersize=~/Letter/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/Legal/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/Ledger/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/Executive/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/A4/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/A3/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/A2/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/A5/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#    } elsif($papersize=~/A6/) {
+#	$textwidth = ;
+#        $textheight = ;
+#        $offset = ;
+#                                           <option selected> Letter [8 1/2x11 in] </option>
+#                                            <option> Legal [8 1/2x14 in] </option>
+#                                            <option> Ledger/Tabloid [11x17 in] </option>
+#                                            <option> Executive [7 1/2x10 in] </option>
+#                                            <option> A2 [420x594 mm] </option>
+#                                            <option> A3 [297x420 mm] </option>
+#                                            <option> A4 [210x297 mm] </option>
+#                                            <option> A5 [148x210 mm] </option>
+#                                            <option> A6 [105x148 mm] </option>
+#
+#    }
+
     if ($layout eq 'CBI' and $numberofcolumns eq '1') {
 	$result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;
 	$result =~ s/\$number_of_columns/$number_of_columns/g;
@@ -609,14 +658,29 @@
     my $current_resource = $mapstart;
     while ($current_resource ne $mapfinish) {
 	if ($hash{'src_'.$current_resource}=~/\.sequence$/) {
-
+	    push @resourcelist,&coming_from_hash_whole($hash{'src_'.$current_resource});
 	} else {
-
+            $mainsequence =~ /\/res\/(.*)$/;
+	    my $presymb = $1;
+	    my $rid = $hash{'ids_'.$hash{'src_'.$current_resource}};
+            if ($rid=~/,/) {
+		my @rid = split /,/, $rid;
+		foreach my $rid_element (@rid) {
+		    if ($rid_element =~ m/^$mapid\.(\d*)/) {
+			$rid = $1; 
+			last;
+		    }
+		}
+	    } else {
+		$rid =~ m/^$mapid\.(\d*)/;
+                $rid = $1;  
+	    }
+	    $hash{'src_'.$current_resource} =~ m/\/res\/(.*)$/;
+	    my $symb = $presymb.'___'.$rid.'___'.$1;	    
+	    push @resourcelist,$hash{'src_'.$current_resource}.'&&'.$symb;
 	}
+	$current_resource = $hash{'goesto_'.$hash{'to_'.$current_resource}};
     }
-
-
-    push @resourcelist,$mapid,$mapstart,$mapfinish;
     return @resourcelist;
 }