--- loncom/interface/lonprintout.pm 2023/03/10 16:05:01 1.627.2.32.2.6 +++ loncom/interface/lonprintout.pm 2023/04/18 18:48:14 1.627.2.32.2.7 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.627.2.32.2.6 2023/03/10 16:05:01 raeburn Exp $ +# $Id: lonprintout.pm,v 1.627.2.32.2.7 2023/04/18 18:48:14 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -453,7 +453,7 @@ sub generate_common_choosers { &get_randomly_ordered_warning($helper, $map); # code for a few states used for printout launched from both - # /adm/navmpas and from a resource by a privileged user: + # /adm/navmaps and from a resource by a privileged user: # - To allow resources to be selected for printing. # - To determine pagination between assignments. # - To determine how many assignments should be bundled into a single PDF. @@ -756,7 +756,7 @@ sub get_print_dates { # get_print_dates but namvaps::course_print_dates are gotten...and not converted # to times either. # -# @param $res - Reference to a resource has from lonnvampas::resource. +# @param $res - Reference to a resource hash from lonnavmaps::resource. # # @return (opendate, closedate) # @@ -770,7 +770,7 @@ sub course_print_dates { my @close_dates; my $navmap = $res->{NAV_MAP}; # Slightly OO dirty. - # Don't bother looping over undefined or empty parts arraY; + # Don't bother looping over undefined or empty parts array; if (@parts) { foreach my $part (@parts) { @@ -796,7 +796,7 @@ sub map_print_dates { my $navmap = $res->{NAV_MAP}; # slightly OO dirty. - # Don't bother looping over undefined or empty parts arraY; + # Don't bother looping over undefined or empty parts array; if (@parts) { foreach my $part (@parts) { @@ -897,8 +897,8 @@ sub master_seq_to_person_seq { my $iterator = $navmap->getIterator($start,$finish,{},1); # Iterate on the resource..select the items that are randomly selected - # and that are in the seq_has. Presumably the iterator will take care - # of the random ordering part of the deal. + # and that are in the seq_hash. Presumably the iterator will take care + # of the random ordering part of the deal. my $curres; while ($curres = $iterator->next()) { # @@ -974,7 +974,7 @@ sub set_font_size { my ($text) = @_; # There appear to be cases where the font directive is empty.. in which - # case the first substituion would insert a spurious \ oh happy day. + # case the first substitution would insert a spurious \ oh happy day. # as this has been the cause of much mystery and hair pulling _sigh_ if ($font_size ne '') { @@ -992,7 +992,7 @@ sub set_font_size { # - The PDF, if necessary, is replicated. # - The PDF is added to the list of files to convert to postscript (along with the images). # - The LaTeX is added to include the final converted postscript in the file as an included -# job. The assumption is that the includedpsheader.ps header will be included. +# job. The assumption is that the includepsheader.ps header will be included. # # Parameters: # pdf_uri - URI of the PDF file to include. @@ -1016,9 +1016,9 @@ sub include_pdf { $file = &Apache::lonnet::filelocation('',$pdf_uri); } - # The file isn ow replicated locally.. or it did not exist in the first place + # The file is now replicated locally ... or it did not exist in the first place # (unlikely). If it did exist, add the pdf to the set of files/images that - # need tob e converted for this print job: + # need to be converted for this print job: my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'}; $file =~ s{(.*)/res/}{$londocroot/res/}; @@ -1155,8 +1155,8 @@ sub printf_style_subst { if ($size ne "") { $subst = substr($subst, 0, $size); - # Here's a nice edge case.. supose the end of the - # substring is a \. In that case may have just + # Here's a nice edge case ... suppose the end of the + # substring is a \. In that case may have just # chopped off a TeX escape... in that case, we append # " " for the trailing character, and let the field # spill over a bit (sigh). @@ -1444,7 +1444,7 @@ sub compare_names { } # Break the tie on the first name, but there are leading (possibly trailing - # whitespaces to get rid of first + # whitespaces to get rid of first) # $f1 =~ s/^\s+//; # Remove leading... $f1 =~ s/\s+$//; # Trailing spaces from first 1... @@ -2535,7 +2535,7 @@ sub load_skips { my ($helper) = @_; - # If this is the first time, unrap the resources and extra spaces: + # If this is the first time, unwrap the resources and extra spaces: if (!$skips_loaded) { @extraspace = (split(/\|\|\|/, $helper->{'VARS'}->{'EXTRASPACE'})); @@ -2842,8 +2842,8 @@ ENDPART my @student_names=(); - # Common settings for the %form has: - # In some cases these settings get overriddent by specific cases, but the + # Common settings for the %form hash: + # In some cases these settings get overridden by specific cases, but the # settings are common enough to make it worthwhile factoring them out # here. # @@ -3312,6 +3312,8 @@ ENDPART ($map, my $id, my $resource) = &Apache::lonnet::decode_symb($helper->{VARS}->{'symb'}); } + } elsif (($helper->{'VARS'}->{'postdata'} eq '/adm/navmaps') && ($perm{'pfo'})) { + $map = $helper->{'VARS'}->{'SEQUENCE'}; } #loop over students @@ -3401,6 +3403,8 @@ ENDPART if ($helper->{VARS}{'symb'}) { ($map, my $id, my $resource) = &Apache::lonnet::decode_symb($helper->{VARS}{'symb'}); + } elsif (($helper->{'VARS'}->{'postdata'} eq '/adm/navmaps') && ($perm{'pfo'})) { + $map = $helper->{'VARS'}->{'SEQUENCE'}; } my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); $moreenv{'problem_split'} = $parmhash{'problem_stream_switch'}; @@ -3799,7 +3803,7 @@ sub print_resources { # nice to put the special in as a postscript comment # e.g. \special{ps:\ENDOFSTUDENTSTAMP} unfortunately, # The special gets passed the \ and dvips puts it in the output file - # so we will just rely on prntout.pl to strip ENDOFSTUDENTSTAMP from the + # so we will just rely on printout.pl to strip ENDOFSTUDENTSTAMP from the # postscript. Each ENDOFSTUDENTSTAMP will go on a line by itself. # @@ -3910,7 +3914,7 @@ sub print_resources { $rendered =~ s/\\end\{document}//; } $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut '; - } elsif($res_url = ~/\.pdf$/) { + } elsif($res_url =~ /\.pdf$/) { my $url = &Apache::lonnet::clutter($res_url); my $rendered = &include_pdf($url); if ($remove_latex_header ne 'NO') { @@ -4824,12 +4828,47 @@ CHOOSE_FROM_SUBDIR '','','','','',''), 'select_sequences_resources_for_anon','CHOOSE_SEQUENCE_ANON2']); if ($escapedSequenceName) { - &generate_common_choosers($r,$helper,$escapedSequenceName,$escapedSequenceName,$isProblem,$symbFilter,$start_new_option); + my ($randomly_ordered_warning,$codechoice,$code_selection,$namechoice) = + &generate_common_choosers($r,$helper,$escapedSequenceName,$escapedSequenceName, + $isProblem,$symbFilter,$start_new_option); + + my $resource_selector = < + + Sort by section then student + Sort by students across sections. + +


+ + + + + $randomly_ordered_warning + PRINT_FORMATTING + (mark desired resources then click "next" button)
+ + return $isNotMap; + $escapedSequenceName + return $symbFilter; + $start_new_option + +
+RESOURCE_SELECTOR + + my $anon3 = &generate_code_selector($helper, + 'CHOOSE_ANON3', + 'SELECT_RESOURCES', + $codechoice, + $code_selection, + $namechoice) . $resource_selector; + + &Apache::lonxml::xmlparse($r, 'helper',$anon3); } } } if (($subdir eq '') && ($url eq '/adm/navmaps') && ($perm{'pfo'})) { - &Apache::lonxml::xmlparse($r, 'helper', < Select the sequence to print resources from: @@ -4863,7 +4902,7 @@ CHOOSE_FROM_SUBDIR Select the sequence to print resources from: - CHOOSE_STUDENTS + CHOOSE_STUDENTS2 return &Apache::lonprintout::printable_sequence(\$res); return $urlValue; return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0); @@ -4873,7 +4912,7 @@ CHOOSE_FROM_SUBDIR Select the sequence to print resources from: - CHOOSE_ANON1 + CHOOSE_ANON3 return &Apache::lonprintout::printable_sequence(\$res); return $urlValue; return \$res->hasResource(\$res,sub { return !\$_[0]->is_sequence() },0,0);