Number of CODEd assignments to print: |
- How should the results be printed? How do you want assignments split into PDF files? '); + $output =' '; } if ($zip_result) { - $r->print(' '.&mt('Recently generated printout zip files')."\n" + $output .=''.&mt('Recently generated printout zip files')."\n" .&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() .''.&mt('Download').' | '
@@ -1730,11 +1783,10 @@ sub recently_generated {
.''.&mt('File Size (Bytes)').' | '
.&Apache::loncommon::end_data_table_header_row()
.$zip_result
- .&Apache::loncommon::end_data_table()
- );
+ .&Apache::loncommon::end_data_table();
}
if ($pdf_result) {
- $r->print(''.&mt('Recently generated printouts')."\n" + $output .=''.&mt('Recently generated printouts')."\n" .&Apache::loncommon::start_data_table() .&Apache::loncommon::start_data_table_header_row() .''.&mt('Download').' | '
@@ -1742,9 +1794,9 @@ sub recently_generated {
.''.&mt('File Size (Bytes)').' | '
.&Apache::loncommon::end_data_table_header_row()
.$pdf_result
- .&Apache::loncommon::end_data_table()
- );
+ .&Apache::loncommon::end_data_table();
}
+ return $output;
}
#
@@ -1781,6 +1833,8 @@ sub get_page_breaks {
# This is done as follows:
# POSSIBLE_RESOURCES has the list of possible resources.
# EXTRASPACE has the list of extra space values.
+# EXTRASPACE_UNITS is the set of resources for which the units are
+# mm. All others are 'in'.
#
# The resource is found in the POSSIBLE_RESOURCES to get the index
# of the EXTRASPACE value.
@@ -1792,6 +1846,7 @@ sub get_page_breaks {
my %possible_resources;
+my %extraspace_mm;
my @extraspace;
my $skips_loaded = 0;
@@ -1811,6 +1866,9 @@ sub load_skips {
$possible_resources{$resource} = $i;
$i++;
}
+ foreach my $mm_resource (split(/\|\|\|/, $helper->{'VARS'}->{'EXTRASPACE_UNITS'})) {
+ $extraspace_mm{$mm_resource} = 1;
+ }
$skips_loaded = 1;
}
}
@@ -1829,8 +1887,14 @@ sub get_extra_vspaces {
my $result = '';
if ($skip ne '') {
- $result = '\vskip '.$skip.' mm';
+ my $units = 'in';
+ if (defined($extraspace_mm{$resource})) {
+ $units = 'mm';
+ }
+ $result = '\vskip '.$skip.' '.$units;
}
+
+
return $result;
@@ -1848,10 +1912,12 @@ sub get_extra_vspaces {
# Implicit input:
# $helper->{'VARS'}->{'EXTRASPACE'} - the spaces helper var has the text field
# value.
+# $helper->{'VARS'}->{'EXTRASPACE_UNITS'} - units for the skips (checkboxes).
# $helper->{'VARS'}->{'POSSIBLE_RESOURCES'} - has the list of resources. |||
# separated of course.
# Implicit outputs:
-# $env{'form.extrapsace'}
+# $env{'form.extraspace'}
+# $env{'form.extraspace_units'}
#
sub set_form_extraspace {
my ($helper) = @_;
@@ -1870,6 +1936,7 @@ sub set_form_extraspace {
}
$env{'form.extraspace'} = $result;
+ $env{'form.extraspace_units'} = $helper->{'VARS'}->{'EXTRASPACE_UNITS'};
return $result;
}
@@ -2049,6 +2116,7 @@ ENDPART
&Apache::loncommon::store_course_settings('print',
{'pagebreaks' => 'scalar',
'extraspace' => 'scalar',
+ 'extraspace_units' => 'scalar',
'lastprinttype' => 'scalar'});
my %page_breaks = &get_page_breaks($helper);
@@ -2094,7 +2162,6 @@ ENDPART
&Apache::lonnet::delenv('construct.style');
}
-
if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {
#-- single document - problem, page, html, xml, ...
my ($currentURL,$cleanURL);
@@ -2264,9 +2331,9 @@ ENDPART
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') or
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') or # BUGBUG
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences')
- ) {
-
+ ) {
+
#-- produce an output string
if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or
($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ) {
@@ -2329,7 +2396,13 @@ ENDPART
&Apache::lonxml::remember_problem_counter();
if ($flag_latex_header_remove eq 'NO') {
$texversion.=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); # RF
- $flag_latex_header_remove = 'YES';
+ unless (($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only') ||
+ (($i==0) &&
+ (($urlp=~/\.page$/) ||
+ ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ||
+ ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page')))) {
+ $flag_latex_header_remove = 'YES';
+ }
}
$texversion.=&ssi_with_retries($urlp, $ssi_retry_count, %form);
if ($urlp=~/\.page$/) {
@@ -2337,7 +2410,7 @@ ENDPART
if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;}
$texversion =~ s/\\end{document}\d*/\\end{document}/;
$flag_page_in_sequence = 'YES';
- }
+ }
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
@@ -2349,13 +2422,22 @@ ENDPART
&Apache::lonxml::restore_problem_counter();
my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);
-
+ if ($urlp =~ /\.page$/) {
+ $answer =~ s/\\end{document}(\d*)$//;
+ }
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
- $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ if ($urlp =~ /\.page$/) {
+ my @probs = split(/\\keephidden{ENDOFPROBLEM}/,$texversion);
+ my $lastprob = pop(@probs);
+ $texversion = join('\keephidden{ENDOFPROBLEM}',@probs).
+ $answer.'\keephidden{ENDOFPROBLEM}'.$lastprob;
+ } else {
+ $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+ }
} else {
- if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {
+ if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page)$/) {
$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- $texversion =~ s/\\begin{document}//;
+# $texversion =~ s/\\begin{document}//; # FIXME
my $title = &Apache::lonnet::gettitle($master_seq[$i]);
$title = &Apache::lonxml::latex_special_symbols($title);
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
@@ -2421,7 +2503,11 @@ ENDPART
if ($i > 0) {
$result .= '\cleardoublepage';
}
- $result .= &include_pdf($urlp);
+ my $texfrompdf = &include_pdf($urlp);
+ if ($flag_latex_header_remove ne 'NO') {
+ $texfrompdf = &latex_header_footer_remove($texfrompdf);
+ }
+ $result .= $texfrompdf;
if ($i != $#master_seq) {
if ($numberofcolumns eq '1') {
$result .= '\newpage';
@@ -2444,7 +2530,7 @@ ENDPART
}
$result .= $texversion;
$flag_latex_header_remove = 'YES';
- }
+ }
if (&Apache::loncommon::connection_aborted($r)) {
last;
}
@@ -2545,7 +2631,8 @@ ENDPART
$resources_printed .= ":";
$print_array[$i].=$output;
$student_names[$i].=$person.':'.$fullname.'_END_';
- &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,&mt('last student').' '.$fullname);
+# &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,&mt('last student').' '.$fullname);
+ &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,'last student');
$flag_latex_header_remove = 'YES';
if (&Apache::loncommon::connection_aborted($r)) { last; }
}
@@ -2618,8 +2705,9 @@ ENDPART
my ($type) = split(/_/,$helper->{'VARS'}->{'PRINT_TYPE'});
&adjust_number_to_print($helper);
my $number_per_page=$helper->{'VARS'}->{'NUMBER_TO_PRINT'};
- if ($number_per_page eq '0' || $number_per_page eq 'all') {
- $number_per_page=$num_todo;
+ if ($number_per_page eq '0' || $number_per_page eq 'all'
+ || $number_per_page eq 'section') {
+ $number_per_page=$num_todo > 0 ? $num_todo : 1;
}
my $flag_latex_header_remove = 'NO';
my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Print Status','Class Print Status',$num_todo,'inline','75');
@@ -2919,7 +3007,7 @@ sub print_resources {
$i++;
if ( !($type eq 'problems' &&
- ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) {
+ ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library|page)$/)) ) {
my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
if (&Apache::lonnet::allowed('bre',$res_url)) {
if ($res_url!~m|^ext/|
@@ -2928,6 +3016,18 @@ sub print_resources {
&Apache::lonxml::remember_problem_counter();
my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);
+ if ($res_url =~ /\.page$/) {
+ if ($remove_latex_header eq 'NO') {
+ if (!($rendered =~ /\\begin\{document\}/)) {
+ $rendered = &print_latex_header().$rendered;
+ }
+ }
+ if ($remove_latex_header eq 'YES') {
+ $rendered = &latex_header_footer_remove($rendered);
+ } else {
+ $rendered =~ s/\\end{document}\d*//;
+ }
+ }
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
# Use a copy of the hash so we don't pervert it on future loop passes.
@@ -2945,7 +3045,9 @@ sub print_resources {
my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
- $header =~ s/\\begin{document}//; #<<<<<
+ unless ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only') {
+ $header =~ s/\\begin{document}//; #<<<<<
+ }
my $title = &Apache::lonnet::gettitle($curresline);
$title = &Apache::lonxml::latex_special_symbols($title);
my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
@@ -3006,7 +3108,9 @@ sub print_resources {
if (&Apache::loncommon::connection_aborted($r)) { last; }
}
-
+ if ($syllabus_first) {
+ $current_output =~ s/\\\\ Last updated:/Last updated:/
+ }
my $courseidinfo = &get_course();
my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');
my $header_line =
@@ -3015,11 +3119,8 @@ sub print_resources {
my $header_start = ($columns_in_format == 1) ? '\lhead'
: '\fancyhead[LO]';
$header_line = $header_start.'{'.$header_line.'}';
- if ($current_output=~/\\documentclass/ && (!$syllabus_first)) {
+ if ($current_output=~/\\documentclass/) {
$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent$header_line$namepostfix}\\vskip 5 mm /;
- } elsif ($syllabus_first) {
-
- $current_output =~ s/\\\\ Last updated:/Last updated:/
} else {
my $blankpages =
'\clearpage\strut\clearpage'x$helper->{'VARS'}->{'EMPTY_PAGES'};
@@ -3092,6 +3193,11 @@ sub init_perm {
$perm{'pfo'}=&Apache::lonnet::allowed('pfo',
$env{'request.course.id'}.'/'.$env{'request.course.sec'});
}
+ $perm{'vgr'}=&Apache::lonnet::allowed('vgr',$env{'request.course.id'});
+ if (!$perm{'vgr'}) {
+ $perm{'vgr'}=&Apache::lonnet::allowed('vgr',
+ $env{'request.course.id'}.'/'.$env{'request.course.sec'});
+ }
}
sub get_randomly_ordered_warning {
@@ -3177,6 +3283,7 @@ sub printHelper {
&Apache::loncommon::restore_course_settings('print',
{'pagebreaks' => 'scalar',
'extraspace' => 'scalar',
+ 'extraspace_units' => 'scalar',
'lastprinttype' => 'scalar'});
# This will persistently load in the data we want from the
@@ -3187,11 +3294,14 @@ sub printHelper {
$helper->{VARS}->{FINISHPAGE} = $env{'form.pagebreaks'};
$helper->{VARS}->{EXTRASPACE} = $env{'form.extraspace'};
+ $helper->{VARS}->{EXTRASPACE_UNITS} = $env{'form.extraspace_units'};
} else {
my $state = $env{"form.CURRENT_STATE"};
if ($state eq "START") {
$helper->{VARS}->{FINISHPAGE} = $env{'form.pagebreaks'};
$helper->{VARS}->{EXTRASPACE} = $env{'form.extraspace'};
+ $helper->{VARS}->{EXTRASPACE_UNITS} = $env{'form.extraspace_units'};
+
}
}
@@ -3311,10 +3421,14 @@ sub printHelper {
$start_new_option =
"before selected').
"' variable='FINISHPAGE' />".
- "before selected').
+ "before selected').
"' variable='EXTRASPACE' type='text' />" .
"";
+ "' variable='POSSIBLE_RESOURCES' type='hidden' />".
+ "check for mm').
+ "' variable='EXTRASPACE_UNITS' type='checkbox' />"
+ ;
+
}
@@ -3493,30 +3607,18 @@ ALL_PROBLEMS
'multichoice="1" addstatus="1" closeallpages="1"',
'RESOURCES',
'PRINT_FORMATTING',
- '',
+ $map,
$isProblem, '', $symbFilter,
$start_new_option);
- $resource_selector .= <How should the results be printed? How do you want assignments split into PDF files? How should the results be printed? How do you want assignments split into PDF files? Generate new CODEd Assignments
|