--- loncom/interface/lonprintout.pm 2005/01/05 12:07:27 1.350 +++ loncom/interface/lonprintout.pm 2005/01/31 12:03:08 1.354 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.350 2005/01/05 12:07:27 foxr Exp $ +# $Id: lonprintout.pm,v 1.354 2005/01/31 12:03:08 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -886,6 +886,7 @@ ENDPART if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') || ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) { my %form; + $form{'problem_split'}=$parmhash{'problem_stream_switch'}; $form{'grade_target'}='answer'; $form{'answer_output_mode'}='tex'; $form{'rndseed'}=$rndseed; @@ -948,6 +949,7 @@ ENDPART $form{'grade_target'}='answer'; $form{'answer_output_mode'}='tex'; $form{'rndseed'}=$rndseed; + $form{'problem_split'}=$parmhash{'problem_stream_switch'}; if ($urlp=~/\/res\//) {$ENV{'request.state'}='published';} my $answer=&Apache::lonnet::ssi($urlp,%form); if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { @@ -989,9 +991,10 @@ ENDPART } else { $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'}); } - } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or + } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or - ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') 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')) { #-- produce an output string if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') { @@ -1000,6 +1003,8 @@ ENDPART $selectionmade = 3; } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') { $selectionmade = 4; + } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_resources') { #BUGBUG + $selectionmade = 4; } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'select_sequences') { $selectionmade = 7; } @@ -1014,8 +1019,10 @@ ENDPART my $flag_latex_header_remove = 'NO'; my $flag_page_in_sequence = 'NO'; my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; - my @page_breaks = split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}; - my $page_index = 0; + my %page_breaks; + foreach my $break (split /\|\|\|/, $helper->{'VARS'}->{'FINISHPAGE'}) { + $page_breaks{$break} = 1; + } my $prevassignment=''; &Apache::lonnet::delenv('form.counter'); &Apache::lonxml::init_counter(); @@ -1024,8 +1031,7 @@ ENDPART # Note due to document structure, not allowed to put \newpage # prior to the first resource - if (($master_seq[$i] eq $page_breaks[$page_index])) { - $page_index++; + if (defined $page_breaks{$master_seq[$i]}) { if($i != 0) { $result.="\\newpage\n"; } @@ -1122,6 +1128,8 @@ ENDPART $result .= '\end{document}'; } 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 my $type; if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'problems_for_students') { @@ -1154,6 +1162,7 @@ ENDPART $moreenv{'instructor_comments'}='hide'; $moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); $moreenv{'print_discussions'}=$helper->{'VARS'}->{'PRINT_DISCUSSIONS'}; + $moreenv{'problem_split'} = $parmhash{'problem_stream_switch'}; 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 $student_counter=-1; @@ -1166,7 +1175,10 @@ ENDPART } $student_counter++; my $i=int($student_counter/$helper->{'VARS'}{'NUMBER_TO_PRINT'}); - my ($output,$fullname)=&print_resources($r,$helper,$person,$type,\%moreenv,\@master_seq,$flag_latex_header_remove); + my ($output,$fullname)=&print_resources($r,$helper, + $person,$type, + \%moreenv,\@master_seq, + $flag_latex_header_remove); $print_array[$i].=$output; $student_names[$i].=$person.':'.$fullname.'_END_'; &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,&mt('last student').' '.$fullname); @@ -1183,6 +1195,7 @@ ENDPART my $code_name=$helper->{'VARS'}->{'ANON_CODE_STORAGE_NAME'}; my $old_name=$helper->{'VARS'}->{'REUSE_OLD_CODES'}; my %moreenv = ('textwidth' => &get_textwidth($helper,$LaTeXwidth)); + $moreenv{'problem_split'} = $parmhash{'problem_stream_switch'}; my $seed=time+($$<<16)+($$); my @allcodes; if ($old_name) { @@ -1241,6 +1254,7 @@ ENDPART $urlp=~s|//|/|; if ($urlp=~/\//) { my %form; + $form{'problem_split'}=$parmhash{'problem_stream_switch'}; $form{'grade_target'}='tex'; $form{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); $form{'rndseed'}=$rndseed; @@ -1425,23 +1439,20 @@ sub print_resources { $namepostfix="\\\\Name: "; $fullname = "CODE - ".$moreenv->{'CODE'}; } - my @page_breaks = split /\|\|\|/,$helper->{'VARS'}->{'FINISHPAGE'}; - my $page_index = 0; + my %page_breaks; + foreach my $break (split /\|\|\|/,$helper->{'VARS'}->{'FINISHPAGE'}) { + $page_breaks{$break} = 1; + } my $i = 0; #goes through all resources, checks if they are available for #current student, and produces output &Apache::lonnet::delenv('form.counter'); &Apache::lonxml::init_counter(); foreach my $curresline (@{$master_seq}) { - if ($curresline eq $page_breaks[$page_index]) { - # - # Due to document structure, we cannot put a - # page break prior to the first document - # + if (defined $page_breaks{$curresline}) { if($i != 0) { $current_output.= "\\newpage\n"; } - $page_index++; } $i++; if ( !($type eq 'problems' && @@ -1548,13 +1559,12 @@ sub handler { # return OK; my %parmhash=&Apache::lonnet::coursedescription($ENV{'request.course.id'}); - + # my $key; # foreach $key (keys %parmhash) { # $r->print(' '.$key.'->'.$parmhash{$key}.'<-
'); # } -# return OK; - +# @@ -1760,12 +1770,13 @@ HELPERFRAGMENT &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); } - # If the user is priviledged, allow them to print all - # problems in the course, optionally for selected students + # If the user is privileged, allow them to print all + # problems and resources in the entier course, optionally for selected students if ($userPriviledged && ($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { push @{$printChoices}, ['Problems from entire course', 'all_problems', 'ALL_PROBLEMS']; + push @{$printChoices}, ['Resources from entire course', 'all_resources', 'ALL_RESOURCES']; &Apache::lonxml::xmlparse($r, 'helper', < (mark them then click "next" button)
@@ -1778,6 +1789,17 @@ HELPERFRAGMENT