--- loncom/interface/lonprintout.pm 2003/10/06 13:19:57 1.252
+++ loncom/interface/lonprintout.pm 2003/10/15 18:01:10 1.255
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.252 2003/10/06 13:19:57 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.255 2003/10/15 18:01:10 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -25,17 +25,6 @@
#
# http://www.lon-capa.org/
#
-# (Internal Server Error Handler
-#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
-#
-# 3/1/1 Gerd Kortemeyer)
-#
-# 3/1 Gerd Kortemeyer
-#
-# 9/17 Alex Sakharuk
#
package Apache::lonprintout;
@@ -51,6 +40,7 @@ use Apache::File();
use Apache::lonnavmaps;
use Apache::lonratedt;
use POSIX qw(strftime);
+use Apache::lonlocal;
use GDBM_File;
@@ -656,6 +646,8 @@ sub path_to_problem {
}
}
}
+ } else {
+ $newurlp=$urlp;
}
return '{\small\noindent\verb|'.$newurlp.'|\vskip 0 mm}';
}
@@ -859,6 +851,8 @@ ENDPART
$selectionmade = 3;
} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') {
$selectionmade = 4;
+ } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') {
+ $selectionmade = 7;
}
$form{'symb'}=$master_seq[$i];
my ($sequence)=&Apache::lonnet::decode_symb($master_seq[$i]);
@@ -912,9 +906,13 @@ ENDPART
&Apache::lonnet::delenv('form.counter');
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') {
+ } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') || ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')) {
#-- prints assignments for whole class or for selected students
- $selectionmade=5;
+ if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') {
+ $selectionmade=5;
+ } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students') {
+ $selectionmade=8;
+ }
my @students=split /\|\|\|/, $helper->{'VARS'}->{'STUDENTS'};
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
#loop over students
@@ -934,7 +932,7 @@ ENDPART
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
foreach my $curresline (@master_seq) {
- if ($curresline=~ m/\.(problem|exam|quiz|assess|survey|form|library)$/) {
+ if ((($curresline=~ m/\.(problem|exam|quiz|assess|survey|form|library)$/) && ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students')) || ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')) {
my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
if (&Apache::lonnet::allowed('bre',$res_url)) {
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,
@@ -978,7 +976,7 @@ ENDPART
&Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
- 'last student '.$fullname);
+ &mt('last student').' '.$fullname);
}
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
$result .= '\end{document}';
@@ -995,6 +993,7 @@ ENDPART
}
for (my $i=0;$i<=$#list_of_files;$i++) {
my $urlp = $list_of_files[$i];
+ $urlp=~s|//|/|;
if ($urlp=~/\//) {
my %form;
$form{'grade_target'}='tex';
@@ -1007,7 +1006,7 @@ ENDPART
}
my $texversion=&Apache::lonnet::ssi($urlp,%form);
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
- ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
+ ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
my %form;
$form{'grade_target'}='answer';
$form{'answer_output_mode'}='tex';
@@ -1017,21 +1016,23 @@ ENDPART
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
} else {
- $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- if ($helper->{'VARS'}->{'construction'} ne '1') {
- $texversion.='\vskip 0 mm \noindent ';
- $texversion.=&path_to_problem ($urlp,$LaTeXwidth);
- } else {
- $texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm ';
- my $URLpath=$urlp;
- $URLpath=~s/~([^\/]+)/public_html\/$1\/$1/;
- $texversion.=&path_to_problem ($URLpath,$LaTeXwidth);
+ $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
+ if ($helper->{'VARS'}->{'construction'} ne '1') {
+ $texversion.='\vskip 0 mm \noindent ';
+ $texversion.=&path_to_problem ($urlp,$LaTeXwidth);
+ } else {
+ $texversion.='\vskip 0 mm \noindent\textbf{Prints from construction space - there is no title.}\vskip 0 mm ';
+ my $URLpath=$urlp;
+ $URLpath=~s/~([^\/]+)/public_html\/$1\/$1/;
+ $texversion.=&path_to_problem ($URLpath,$LaTeXwidth);
+ }
+ $texversion.='\vskip 1 mm '.$answer.'\end{document}';
}
- $texversion.='\vskip 1 mm '.$answer.'\end{document}';
- }
}
#this chunck is responsible for printing the path to problem
- my $newurlp=&path_to_problem($urlp,$LaTeXwidth);
+ my $newurlp=$urlp;
+ if ($newurlp=~/~/) {$newurlp=~s|\/~([^\/]+)\/|\/home\/$1\/public_html\/|;}
+ $newurlp=&path_to_problem($newurlp,$LaTeXwidth);
$texversion =~ s/(\\begin{minipage}{\\textwidth})/$1 $newurlp/;
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
@@ -1258,7 +1259,7 @@ sub printHelper {
my $paramHash;
if ($resourceTitle) {
- push @{$printChoices}, ["$resourceTitle (what you just saw on the screen)", 'current_document', 'PAGESIZE'];
+ push @{$printChoices}, ["$resourceTitle (what you just saw on the screen)", 'current_document', 'PAGESIZE'];
}
# $r->print($helper->{VARS}->{'postdata'});
@@ -1284,9 +1285,9 @@ sub printHelper {
$helper->{VARS}->{'postdata'} &&
$helper->{VARS}->{'assignment'}) {
# Allow problems from sequence
- push @{$printChoices}, ["Problems in $sequenceTitle", 'map_problems', 'CHOOSE_PROBLEMS'];
+ push @{$printChoices}, ["Problems in $sequenceTitle", 'map_problems', 'CHOOSE_PROBLEMS'];
# Allow all resources from sequence
- push @{$printChoices}, ["Resources in $sequenceTitle", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML'];
+ push @{$printChoices}, ["Resources in $sequenceTitle", 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML'];
my $helperFragment = <
@@ -1316,9 +1317,9 @@ HELPERFRAGMENT
# If the user is priviledged, allow them to print all
# problems in the course, optionally for selected students
if ($userPriviledged && ($helper->{VARS}->{'postdata'}=~/\/res\//)) {
- push @{$printChoices}, ['Problems from entire course', 'all_problems', 'ALL_PROBLEMS'];
+ push @{$printChoices}, ['Problems from entire course', 'all_problems', 'ALL_PROBLEMS'];
if ($helper->{VARS}->{'assignment'}) {
- push @{$printChoices}, ["Problems from $sequenceTitle for selected students", 'problems_for_students', 'CHOOSE_STUDENTS'];
+ push @{$printChoices}, ["Problems from $sequenceTitle for selected students", 'problems_for_students', 'CHOOSE_STUDENTS'];
}
&Apache::lonxml::xmlparse($r, 'helper', <
Select resources for the assignment
- return $isProblem
+ return $isProblem;
$map
- return $symbFilter
+ return $symbFilter;
How should the results be printed?
@@ -1350,11 +1351,34 @@ HELPERFRAGMENT
CHOOSE_STUDENTS
+
+ if ($helper->{VARS}->{'assignment'}) {
+ push @{$printChoices}, ["Resources from $sequenceTitle for selected students", 'resources_for_students', 'CHOOSE_STUDENTS1'];
+ }
+ &Apache::lonxml::xmlparse($r, 'helper', <
+
+
Select resources for the assignment
+
+ return $isNotMap;
+ $map
+ return $symbFilter;
+
+
How should the results be printed?
+
+ Start each student\'s assignment on a new page/column (add a pagefeed after each assignment)
+ Add one empty page/column after each student\'s assignment
+ Add two empty pages/column after each student\'s assignment
+ Add three empty pages/column after each student\'s assignment
+
+
+CHOOSE_STUDENTS1
+
}
# FIXME: That RE should come from a library somewhere.
if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $ENV{'request.role.adv'} and $subdir ne '/home/httpd/html/res/') {
- push @{$printChoices}, ["Problems from current subdirectory $subdir", 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
+ push @{$printChoices}, ["Problems from current subdirectory $subdir", 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
my $f = '$filename';
my $xmlfrag = <{VARS}->{'construction'}) {
- push @$printChoices, ["Resources from selected sequence in course",
+ push @$printChoices, ["Resources from selected sequence in course",
'select_sequences', 'CHOOSE_SEQUENCE'];
my $escapedSequenceName = $helper->{VARS}->{'SEQUENCE'};
#Escape apostrophes and backslashes for Perl