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

foxr foxr@source.lon-capa.org
Mon, 06 Jun 2011 10:53:10 -0000


This is a MIME encoded message

--foxr1307357590
Content-Type: text/plain

foxr		Mon Jun  6 10:53:10 2011 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  BZ 5209:
    - Get incomplete problem printing working from student role.
    - Fix a misunderstanding on my part about the role of the resource chooser's
      value function.
  
  
  
--foxr1307357590
Content-Type: text/plain
Content-Disposition: attachment; filename="foxr-20110606105310.txt"

Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.589 loncom/interface/lonprintout.pm:1.590
--- loncom/interface/lonprintout.pm:1.589	Mon May 23 09:31:21 2011
+++ loncom/interface/lonprintout.pm	Mon Jun  6 10:53:09 2011
@@ -1,8 +1,8 @@
-#
+
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.589 2011/05/23 09:31:21 foxr Exp $
+# $Id: lonprintout.pm,v 1.590 2011/06/06 10:53:09 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -45,7 +45,6 @@
 use File::Basename;
 
 use HTTP::Response;
-
 use LONCAPA::map();
 use POSIX qw(strftime);
 use Apache::lonlocal;
@@ -77,7 +76,146 @@
 
 #----------------------------  Helper helpers. -------------------------
 
-#  Returns the text needd for a student chooser.
+# BZ5209:
+#    Create the states needed to run the helper for incomplete problems from
+#    the current folder for selected students.
+#    This includes:
+#    -  A resource selector limited to problems (incompleteness must be
+#       calculated on a student per student basis.
+#    -  A student selector.
+#    -  Tie in to the FORMAT of the print job.
+#
+# States:
+#   CHOOSE_INCOMPLETE_PEOPLE_SEQ      - Resource selection.
+#   CHOOSE_STUDENTS_INCOMPLETE        - Student selection.
+#   CHOOSE_STUDENTS_INCOMPLETE_FORMAT - Format selection
+# Parameters:
+#    helper - the helper which already contains info about the current folder we can
+#             purloin.
+#    url    - Top url of the sequence
+# Return:
+#     XML that can be parsed by the helper to drive the state machine.
+#
+sub create_incomplete_folder_selstud_helper($helper)
+{
+    my ($helper, $map)  = @_;
+
+
+    my $symbFilter = '$res->shown_symb()';
+    my $selFilter   = '$res->is_problem()';
+
+
+    my $resource_chooser = &generate_resource_chooser('CHOOSE_INCOMPLETE_PEOPLE_SEQ',
+						      'Select problem(s) to print',
+						      'multichoice="1" toponly="1" addstatus="1" closeallpages="1"',
+						      'RESOURCES',
+						      'CHOOSE_STUDENTS_INCOMPLETE',
+						      $map,
+						      $selFilter,
+						      '',
+						      $symbFilter, 
+						      '');
+
+    my $student_chooser = &generate_student_chooser('CHOOSE_STUDENTS_INCOMPLETE',
+						 'student_sort',
+						 'STUDENTS',
+						 'CHOOSE_STUDENTS_INCOMPLETE_FORMAT');
+
+    my $format_chooser = &generate_format_selector($helper,
+						'Format of the print job',
+						'','CHOOSE_STUDENTS_INCOMPLETE_FORMAT'); # end state.
+
+    return $resource_chooser . $student_chooser . $format_chooser;
+}  
+
+
+# BZ 5209
+#     Create the states needed to run the helper for incomplete problems from
+#     the current folder for selected students.
+#     This includes:
+#     - A resource selector limited to problems.  (incompleteness must be calculated
+#       on a student per student basis.
+#     - A student selector.
+#     - Tie in to format for the print job.
+# States:
+#    INCOMPLETE_PROBLEMS_COURSE_RESOURCES - Resource selector.
+#    INCOMPLETE_PROBLEMS_COURSE_STUDENTS  - Student selector.
+#    INCOMPLETE_PROBLEMS_COURSE_FORMAT    - Format selection.
+#
+# Parameters:
+#   helper   - Helper we are creating states for.
+# Returns:
+#   Text that can be parsed by the helper.
+# 
+
+sub create_incomplete_course_helper {
+    my $helper = shift;
+
+    my $filter = '$res->is_problem() || $res->contains_problem() || $res->is_sequence() || $res->is_practice())';
+    my $symbfilter = '$res->shown_symb()';
+    
+    my $resource_chooser = &generate_resource_chooser('INCOMPLETE_PROBLEMS_COURSE_RESOURCES',
+						      'Select problem(s) to print',
+						      'multichoice = "1" suppressEmptySequences="0" addstatus="1" closeallpagtes="1"',
+						      'RESOURCES',
+						      'INCOMPLETE_PROBLEMS_COURSE_STUDENTS',
+						      '',
+						      $filter,
+						      '',
+						      $symbfilter,
+						      '');
+
+    my $people_chooser  = &generate_student_chooser('INCOMPLETE_PROBLEMS_COURSE_STUDENTS',
+						    'student_sort',
+						    'STUDENTS',
+						    'INCOMPLETE_PROBLEMS_COURSE_FORMAT');
+
+    my $format = &generate_format_selector($helper,
+					   'Format of the print job',
+					   '',
+					   'INCOMPLETE_PROBLEMS_COURSE_FORMAT'); # end state.
+
+    return $resource_chooser . $people_chooser . $format;
+
+
+}
+
+# BZ5209 
+#   Creates the states needed to run the print helper for a student
+#   that wants to print his incomplete problems from the current folder.
+# Parameters:
+#   $helper - helper we are generating states for.
+#   $map    - The map for which the student wants incomplete problems.
+# Returns:
+#   XML that defines the helper states being created.
+#
+# States:
+#   CHOOSE_INCOMPLETE_SEQ  - Resource selector.
+#
+sub create_incomplete_folder_helper {
+    my ($helper, $map) = @_;
+
+    my $filter    = '$res->is_problem()';
+    $filter      .= ' && $res->resprintable() ';
+    $filter      .= ' && $res->is_incomplete() ';
+
+    my $symfilter = '$res->shown_symb()';
+
+    my $resource_chooser = &generate_resource_chooser('CHOOSE_INCOMPLETE_SEQ',
+						      'Select problem(s) to print',
+						      'multichoice="1", toponly ="1", addstatus="1", closeallpages="1"',
+						      'RESOURCES',
+						      'PAGESIZE',
+						      $map,
+						      $filter, '', 
+						      $symfilter,
+						      '');
+
+    return $resource_chooser;
+}
+
+
+#  Returns the text neded for a student chooser.
 #  that text must still be parsed by the helper xml parser.
 # Parameters:
 #   this_state   - State name of the chooser.
@@ -258,15 +396,19 @@
 }
 
 sub generate_format_selector {
-    my ($helper,$title,$nextstate) = @_;
+    my ($helper,$title,$nextstate, $thisstate) = @_;
     my $secpdfoption;
+    my $state = 'PRINT_FORMATTING';
+    if ($thisstate) {
+	$state = $thisstate;
+    }
     unless (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon')     ||
             ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon_page') ||
             ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon')  ) {
         $secpdfoption =  '<choice computer="sections">Each PDF contains exactly one section</choice>';
     }
     return <<RESOURCE_SELECTOR;
-    <state name="PRINT_FORMATTING" title="$title">
+    <state name="$state" title="$title">
     $nextstate
     <message><br /><big><i><b>How should the results be printed?</b></i></big><br /></message>
     <choices variable="EMPTY_PAGES">
@@ -1957,6 +2099,8 @@
 #
 sub print_construction_sequence {
     my ($currentURL, $helper, %form, $LaTeXwidth) = @_;
+
+
     my $result;
     my $rndseed=time;
     if ($helper->{'VARS'}->{'curseed'}) {
@@ -2058,12 +2202,45 @@
     return $result;
 }
 
+#
+#  Top level for generating print output.
+#
+#  May call print_resources if multiple resources will be printed.
+#
+#  The main driver is $selectionmade which reflects the type of print out
+#  requested:
+#   Value    Print type:
+#   1        Print resource that's being looked at.
+#   2        Print problems in a map or in a page.
+#   3        Print pages in a map or resources in a page.
+#   4        Print all problems  or all resources.
+#   5        Print problems for seleted students.
+#   6        Print selected problems from a folder.
+#   7        Print print selected resources from some scope.
+#   8        Print resources for selected students.
+#
+#BZ 5209
+#   2        map_incomplete_problems_seq Print incomplete problems from the current
+#            folder in student context.
+#   101      map_incomplete_problems_people_seq Print incomplete problems from the
+#            current folder in privileged context.
+#   102      incomplete_problems_selpeople_course Print incomplete problems for
+#            selected people from the entire course.
+#
+#   Item 101 has much the same processing as 8,
+#   Item 102 has much the same processing as 8.
+#
+#  Differences:  Item 101, 102 require per-student filtering of the resource
+#  set so that only the incomplete resources are printed.
+#  For item 100, filtering was done at the helper level.
+
 sub output_data {
     my ($r,$helper,$rparmhash) = @_;
     my %parmhash = %$rparmhash;
     $ssi_error = 0;		# This will be set nonzero by failing ssi's.
     $resources_printed = '';
     $font_size = $helper->{'VARS'}->{'fontsize'};
+    my $print_type = $helper->{'VARS'}->{'PRINT_TYPE'}; # Allows textual simplification.
     my $do_postprocessing = 1;
     my $js = <<ENDPART;
 <script type="text/javascript">
@@ -2113,7 +2290,7 @@
 
     $env{'form.pagebreaks'}  = $helper->{'VARS'}->{'FINISHPAGE'};
     &set_form_extraspace($helper);
-    $env{'form.lastprinttype'} = $helper->{'VARS'}->{'PRINT_TYPE'}; 
+    $env{'form.lastprinttype'} = $print_type; 
     &Apache::loncommon::store_course_settings('print',
 					      {'pagebreaks'    => 'scalar',
 					       'extraspace'    => 'scalar',
@@ -2163,7 +2340,7 @@
 	&Apache::lonnet::delenv('construct.style');
     }
 
-    if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'current_document') {
+    if ($print_type eq 'current_document') {
       #-- single document - problem, page, html, xml, ...
 	my ($currentURL,$cleanURL);
 
@@ -2325,32 +2502,35 @@
 	    $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'},
 				  $helper->{'VARS'}->{'symb'});
 	}
-    } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems')       or
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') or
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page') or
-             ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
-             ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems')       or
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources')      or # BUGBUG
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') 
+    } elsif (($print_type eq 'map_problems')          or
+	     ($print_type eq 'map_problems_in_page')  or
+	     ($print_type eq 'map_resources_in_page') or
+             ($print_type eq 'map_problems_pages')    or
+             ($print_type eq 'all_problems')          or
+	     ($print_type eq 'all_resources')         or # BUGBUG
+	     ($print_type eq 'select_sequences')      or
+	     ($print_type eq 'map_incomplete_problems_seq')
 	     ) {
 
  
         #-- produce an output string
-	if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems')  or
-	    ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ) {
+	if (($print_type eq 'map_problems')                or
+	    ($print_type eq 'map_incomplete_problems_seq') or
+	    ($print_type eq 'map_problems_in_page') ) {
 	    $selectionmade = 2;
-	} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or
-		 ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page'))
+	} elsif (($print_type eq 'map_problems_pages') or
+		 ($print_type eq 'map_resources_in_page'))
 	{
 	    $selectionmade = 3;
-	} elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') 
+	} elsif (($print_type eq 'all_problems') 
 		 ) {
 	    $selectionmade = 4;
-	} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') {  #BUGBUG
+	} elsif ($print_type eq 'all_resources') {  #BUGBUG
 	    $selectionmade = 4;
-	} elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') {
+	} elsif ($print_type eq 'select_sequences') {
 	    $selectionmade = 7;
 	}
+
 	$form{'problem_split'}=$parmhash{'problem_stream_switch'};
 	$form{'suppress_tries'}=$parmhash{'suppress_tries'};
 	$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
@@ -2400,8 +2580,8 @@
                     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')))) {
+                              ($print_type eq 'map_problems_in_page') ||
+                              ($print_type eq 'map_resources_in_page')))) {
                         $flag_latex_header_remove = 'YES';
                     }
 		}
@@ -2541,20 +2721,20 @@
 	    $result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;
 	}	
 	$result .= '\end{document}';
-     } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') ||
-	      ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students_from_page') ||
-	      ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') ||
-	      ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students')){
+     } elsif (($print_type eq 'problems_for_students')           ||
+	      ($print_type eq 'problems_for_students_from_page') ||
+	      ($print_type eq 'all_problems_students')           ||
+	      ($print_type eq 'resources_for_students')){
 
 
      #-- prints assignments for whole class or for selected students  
 	 my $type;
-	 if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') ||
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students_from_page') ||
-	     ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems_students') ) {
+	 if (($print_type eq 'problems_for_students')           ||
+	     ($print_type eq 'problems_for_students_from_page') ||
+	     ($print_type eq 'all_problems_students') ) {
 	     $selectionmade=5;
 	     $type='problems';
-	 } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_students') {
+	 } elsif ($print_type eq 'resources_for_students') {
 	     $selectionmade=8;
 	     $type='resources';
 	 }
@@ -2639,9 +2819,9 @@
 	 }
 	 &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
 	 $result .= $print_array[0].'  \end{document}';
-     } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon')     ||
-	      ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon_page') ||
-	      ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon')  ) { 
+     } elsif (($print_type eq 'problems_for_anon')      ||
+	      ($print_type eq 'problems_for_anon_page') ||
+	      ($print_type eq 'resources_for_anon')  ) { 
 	 my $cdom =$env{'course.'.$env{'request.course.id'}.'.domain'};
 	 my $cnum =$env{'course.'.$env{'request.course.id'}.'.num'};
 	 my $num_todo=$helper->{'VARS'}->{'NUMBER_TO_PRINT_TOTAL'};
@@ -2703,7 +2883,7 @@
 	     @allcodes=keys(%allcodes);
 	 }
 	 my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
-	 my ($type) = split(/_/,$helper->{'VARS'}->{'PRINT_TYPE'});
+	 my ($type) = split(/_/,$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'
@@ -2734,7 +2914,7 @@
 	 }
 	 &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
 	 $result .= $print_array[0].'  \end{document}';
-     } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_from_directory') {      
+     } elsif ($print_type eq 'problems_from_directory') {      
     #prints selected problems from the subdirectory 
 	$selectionmade = 6;
         my @list_of_files=split /\|\|\|/, $helper->{'VARS'}->{'FILES'};
@@ -2816,7 +2996,13 @@
     # Only post process if that has not been turned off e.g. by a raw latex resource.
 
     if ($do_postprocessing) {
-	$result = &page_format_transformation($papersize,$laystyle,$numberofcolumns,$helper->{'VARS'}->{'PRINT_TYPE'},$result,$helper->{VARS}->{'assignment'},$helper->{'VARS'}->{'TABLE_CONTENTS'},$helper->{'VARS'}->{'TABLE_INDEX'},$selectionmade);
+	$result = &page_format_transformation($papersize,
+					      $laystyle,$numberofcolumns,
+					      $print_type,$result,
+					      $helper->{VARS}->{'assignment'},
+					      $helper->{'VARS'}->{'TABLE_CONTENTS'},
+					      $helper->{'VARS'}->{'TABLE_INDEX'},
+					      $selectionmade);
 	$result = &latex_corrections($number_of_columns,$result,$selectionmade,
 				     $helper->{'VARS'}->{'ANSWER_TYPE'});
 	#if ($numberofcolumns == 1) {
@@ -2977,6 +3163,7 @@
 	$namepostfix .="Name: ";
 	$fullname = "CODE - ".$moreenv->{'CODE'};
     }
+
     #  Fullname may have special latex characters that need \ prefixing:
     #
 
@@ -3006,7 +3193,6 @@
 	}
 	$current_output .= &get_extra_vspaces($helper, $curresline);
 	$i++;
-
 	if ( !($type eq 'problems' && 
 	       ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library|page)$/)) ) {
 	    my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
@@ -3105,7 +3291,7 @@
 		}
 	    }
 	    $remove_latex_header = 'YES';
-	} 
+	}
 	if (&Apache::loncommon::connection_aborted($r)) { last; }
     }
 
@@ -3414,12 +3600,13 @@
     if ($resourceTitle && $res_printable) {
         push @{$printChoices}, ["<b><i>$resourceTitle</i></b> (".&mt('the resource you just saw on the screen').")", 'current_document', 'PAGESIZE'];
     }
+    
 
     # Useful filter strings
 
     my $isPrintable = ' && $res->resprintable()';
 
-    my $isProblem = '(($res->is_problem()||$res->contains_problem||$res->is_practice()))';
+    my $isProblem = '(($res->is_problem()||$res->contains_problem() ||$res->is_practice()))';
     $isProblem .= $isPrintable unless $userCanPrint;
     $isProblem .= ' && !$res->randomout()' if !$userCanSeeHidden;
     my $isProblemOrMap = '($res->is_problem() || $res->contains_problem() || $res->is_sequence() || $res->is_practice())';
@@ -3430,7 +3617,6 @@
     my $isMap = '$res->is_map()';
     $isMap .= $isPrintable unless $userCanPrint;
     my $symbFilter = '$res->shown_symb() ';
-    $symbFilter .= $isPrintable unless $userCanPrint;
     my $urlValue = '$res->link()';
 
     $helper->declareVar('SEQUENCE');
@@ -3510,6 +3696,34 @@
     if (($helper->{'VAR'}->{'construction'} ne '1' ) &&
 	$helper->{VARS}->{'postdata'} &&
 	$helper->{VARS}->{'assignment'}) {
+
+	# BZ 5209 - Print incomplete problems from sequence:
+	# the exact form of this depends on whether or not we are privileged or a mere
+	# plebe of s student:
+
+	my $printSelector = 'map_incomplete_problems_seq';
+	my $nextState     = 'CHOOSE_INCOMPLETE_SEQ';
+	my $textSuffix    = '';
+
+	if ($userCanPrint) {
+	    $printSelector = 'map_incomplete_problems_people_seq';
+	    $nextState     = 'CHOOSE_INCOMPLETE_PEOPLE_SEQ';
+	    $textSuffix    = ' for selected students';
+	    my $helperStates =
+		&create_incomplete_folder_selstud_helper($helper, $map); 
+	    &Apache::lonxml::xmlparse($r, 'helper', $helperStates);
+	} else {
+	    my $helperStates = &create_incomplete_folder_helper($helper, $map); # Create needed states for student.
+	    &Apache::lonxml::xmlparse($r, 'helper', $helperStates);
+	}
+
+	push(@{$printChoices},
+	     [&mt('Selected Incomplete  [_1]Problems[_2] from folder [_3]' . $textSuffix,
+		  '<b>', '</b>',
+		  '<b><i>'. $sequenceTitle . '</b></i>'),
+	      $printSelector,
+	      $nextState]);
+
         # Allow problems from sequence
         push @{$printChoices}, 
 	    [&mt('Selected [_1]Problems[_2] from folder [_3]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>'), 
@@ -3544,9 +3758,21 @@
     # If the user has pfo (print for others) allow them to print all 
     # problems and resources  in the entire course, optionally for selected students
     my $post_data = $helper->{VARS}->{'postdata'};
+    
     if ($perm{'pfo'} &&  !$is_published  &&
         ($post_data=~/\/res\// || $post_data =~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { 
 
+	# BZ 5209 - incomplete problems from entire course:
+
+	push(@{$printChoices},
+	     [&mtn('Selected incomplete <b>Problems</b> from <b>entire course</b> for selected people'),
+	      'incomplete_problems_selpeople_course', 'INCOMPLETE_PROBLEMS_COURSE_RESOURCES']);
+	my $helperFragment = &create_incomplete_course_helper($helper); # Create needed states.
+
+	&Apache::lonxml::xmlparse($r, 'helper', $helperFragment);
+
+	#  Selected problems/resources from entire course:
+
         push @{$printChoices}, [&mtn('Selected <b>Problems</b> from <b>entire course</b>'), 'all_problems', 'ALL_PROBLEMS'];
 	push @{$printChoices}, [&mtn('Selected <b>Resources</b> from <b>entire course</b>'), 'all_resources', 'ALL_RESOURCES'];
 	push @{$printChoices}, [&mtn('Selected <b>Problems</b> from <b>entire course</b> for <b>selected people</b>'), 'all_problems_students', 'ALL_PROBLEMS_STUDENTS'];
@@ -3632,7 +3858,7 @@
 							  $isProblem, '', $symbFilter,
 							  $start_new_option);
         my $secpdfoption;
-        unless (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon')     ||
+        unless (($helper->{'VARS'} eq 'problems_for_anon')     ||
                 ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_anon_page') ||
                 ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'resources_for_anon')  ) {
             $secpdfoption =  '<choice computer="sections">Each PDF contains exactly one section</choice>';
@@ -3749,6 +3975,9 @@
 
 
 	if ($helper->{VARS}->{'assignment'}) {
+
+	    # Assignment printing:
+
 	    push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]selected people[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'resources_for_students', 'CHOOSE_STUDENTS1'];
 	    push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3] for [_4]CODEd assignments[_5]','<b>','</b>','<b><i>'.$sequenceTitle.'</i></b>','<b>','</b>'), 'resources_for_anon', 'CHOOSE_ANON2'];
 	}

--foxr1307357590--