version 1.428, 2006/03/08 22:32:11
|
version 1.429, 2006/03/14 23:24:46
|
Line 41 use Apache::lonnavmaps;
|
Line 41 use Apache::lonnavmaps;
|
use Apache::lonratedt; |
use Apache::lonratedt; |
use POSIX qw(strftime); |
use POSIX qw(strftime); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Carp; |
|
|
my %perm; |
my %perm; |
|
|
Line 238 sub encapsulate_minipage {
|
Line 239 sub encapsulate_minipage {
|
} |
} |
return $text; |
return $text; |
} |
} |
|
# |
|
# The NUMBER_TO_PRINT and SPLIT_PDFS |
|
# variables interact, this sub looks at these two parameters |
|
# and comes up with a final value for NUMBER_TO_PRINT which can be: |
|
# all - if SPLIT_PDFS eq 'all'. |
|
# 1 - if SPLIT_PDFS eq 'oneper' |
|
# section - if SPLIT_PDFS eq 'sections' |
|
# <unchanged> - if SPLIT_PDFS eq 'usenumber' |
|
# |
|
sub adjust_number_to_print { |
|
my $helper = shift; |
|
|
|
my $split_pdf = $helper->{'VARS'}->{'SPLIT_PDFS'}; |
|
|
|
if ($split_pdf eq 'all') { |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} = 'all'; |
|
} elsif ($split_pdf eq 'oneper') { |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} = 1; |
|
} elsif ($split_pdf eq 'sections') { |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} = 'section'; |
|
} elsif ($split_pdf eq 'usenumber') { |
|
# Unmodified. |
|
} else { |
|
# Error!!!! |
|
|
|
croak "bad SPLIT_PDFS: $split_pdf in lonprintout::adjust_number_to_print"; |
|
} |
|
} |
|
|
sub character_chart { |
sub character_chart { |
my $result = shift; |
my $result = shift; |
Line 1407 ENDPART
|
Line 1435 ENDPART
|
# Each element of the students array is of the form: |
# Each element of the students array is of the form: |
# username:domain:section:last, first:status |
# username:domain:section:last, first:status |
# |
# |
|
# Note that student sort is not compatible with printing |
|
# 1 section per pdf...so that setting overrides. |
# |
# |
if ($helper->{'VARS'}->{'student_sort'} eq 1) { |
if (($helper->{'VARS'}->{'student_sort'} eq 1) && |
|
($helper->{'VARS'}->{'SPLIT_PDFS'} ne "sections")) { |
@students = sort compare_names @students; |
@students = sort compare_names @students; |
} |
} |
|
&adjust_number_to_print($helper); |
|
|
if ($helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq '0' || |
if ($helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq '0' || |
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq 'all' ) { |
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq 'all' ) { |
$helper->{'VARS'}->{'NUMBER_TO_PRINT'}=$#students+1; |
$helper->{'VARS'}->{'NUMBER_TO_PRINT'}=$#students+1; |
} |
} |
|
# If we are splitting on section boundaries, we need |
|
# to remember that in split_on_sections and |
|
# print all of the students in the list. |
|
# |
|
my $split_on_sections = 0; |
|
if ($helper->{'VARS'}->{'NUMBER_TO_PRINT'} eq 'section') { |
|
$split_on_sections = 1; |
|
$helper->{'VARS'}->{'NUMBER_TO_PRINT'} = $#students+1; |
|
} |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; |
|
|
#loop over students |
#loop over students |
Line 1428 ENDPART
|
Line 1470 ENDPART
|
if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';} |
if ($helper->{'VARS'}->{'PRINT_DISCUSSIONS'} eq 'yes') {$moreenv{'problem_split'}='yes';} |
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1,'inline','75'); |
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$#students+1,'inline','75'); |
my $student_counter=-1; |
my $student_counter=-1; |
|
my $i = 0; |
|
my ($junku, $junkd, $last_section) = split /:/,$students[0]; |
foreach my $person (@students) { |
foreach my $person (@students) { |
|
|
my $duefile="/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.due"; |
my $duefile="/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.due"; |
Line 1436 ENDPART
|
Line 1480 ENDPART
|
print $temp_file "1969\n"; |
print $temp_file "1969\n"; |
} |
} |
$student_counter++; |
$student_counter++; |
my $i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'}); |
if ($split_on_sections) { |
|
my $this_section; |
|
($junku, $junkd, $this_section) = split /:/,$person; |
|
if ($this_section ne $last_section) { |
|
$i++; |
|
$last_section = $this_section; |
|
} |
|
} else { |
|
$i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'}); |
|
} |
my ($output,$fullname, $printed)=&print_resources($r,$helper, |
my ($output,$fullname, $printed)=&print_resources($r,$helper, |
$person,$type, |
$person,$type, |
\%moreenv,\@master_seq, |
\%moreenv,\@master_seq, |
Line 2200 ALL_PROBLEMS
|
Line 2253 ALL_PROBLEMS
|
</state> |
</state> |
<state name="NUMBER_PER_PDF" title="Number printed at once"> |
<state name="NUMBER_PER_PDF" title="Number printed at once"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<message><hr width='33%' /><b>Number of assignments printed at the same time: </b></message> |
<message><hr width='33%' /><b>How do you want assignments split into PDF files? </b></message> |
|
<choices variable="SPLIT_PDFS"> |
|
<choice computer="all">All assignments in a single PDF file</choice> |
|
<choice computer="sections">Each PDF contains exactly one section</choice> |
|
<choice computer="oneper">Each PDF contains exactly one assignment</choice> |
|
<choice computer="usenumber">Specify Number:</choice> |
|
</choices> |
<string variable="NUMBER_TO_PRINT" maxlength="5" size="5"><defaultvalue>"all"</defaultvalue></string> |
<string variable="NUMBER_TO_PRINT" maxlength="5" size="5"><defaultvalue>"all"</defaultvalue></string> |
</state> |
</state> |
RESOURCE_SELECTOR |
RESOURCE_SELECTOR |
Line 2339 CHOOSE_ANON1
|
Line 2398 CHOOSE_ANON1
|
<choice computer='3'>Add three empty pages/column after each student\'s assignment</choice> |
<choice computer='3'>Add three empty pages/column after each student\'s assignment</choice> |
</choices> |
</choices> |
</state> |
</state> |
<state name="NUMBER_PER_PDF title="Number assingnments per pdf"> |
<state name="NUMBER_PER_PDF" title="Number assignments per pdf"> |
<nextstate>PAGESIZE</nextstate> |
<nextstate>PAGESIZE</nextstate> |
<message><hr width='33%' /><b>Number of assignments printed at the same time: </b></message> |
<message><hr width='33%' /><b>How do you want assignments split into PDF files? </b></message> |
|
<choices variable="SPLIT_PDFS"> |
|
<choice computer="all">All assignments in a single PDF file</choice> |
|
<choice computer="sections">Each PDF contains exactly one section</choice> |
|
<choice computer="oneper">Each PDF contains exactly one assignment</choice> |
|
<choice computer="usenumber">Specify Number:</choice> |
|
</choices> |
<string variable="NUMBER_TO_PRINT" maxlength="5" size="5"><defaultvalue>"all"</defaultvalue></string> |
<string variable="NUMBER_TO_PRINT" maxlength="5" size="5"><defaultvalue>"all"</defaultvalue></string> |
</state> |
</state> |
RESOURCE_SELECTOR |
RESOURCE_SELECTOR |