--- loncom/interface/lonprintout.pm 2009/10/26 09:55:32 1.560.2.7 +++ loncom/interface/lonprintout.pm 2009/09/22 14:28:50 1.561 @@ -1,8 +1,7 @@ -# # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.560.2.7 2009/10/26 09:55:32 foxr Exp $ +# $Id: lonprintout.pm,v 1.561 2009/09/22 14:28:50 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,6 +26,7 @@ # # package Apache::lonprintout; + use strict; use Apache::Constants qw(:common :http); use Apache::lonxml; @@ -74,183 +74,6 @@ my $ssi_retry_count = 5; # Some arbitrar my $font_size = 'normalsize'; # Default is normalsize... -#---------------------------- Helper helpers. ------------------------- - -# Returns the text needd for a student chooser. -# that text must still be parsed by the helper xml parser. -# Parameters: -# this_state - State name of the chooser. -# sort_choice - variable to hold the sorting choice. -# variable - Name of variable to hold students. -# next_state - State after chooser. - - -sub generate_student_chooser { - my ($this_state, - $sort_choice, - $variable, - $next_state) = @_; - my $result = < - Select sorting order of printout - - - Sort by section then student - Sort by students across sections. - - -


- - - -CHOOSE_STUDENTS - - return $result; -} - -# Generate the text needed for a resource chooser given the top level of -# the sequence/page -# -# Parameters: -# this_state - State name of the chooser. -# prompt_text - Text to use to prompt user. -# resource_options - Resource tag options e.g. -# "multichoice='1', toponly='1', addstatus='1'" -# that control the selection and appearance of the -# resource selector. -# variable - Name of the variable to hold the choice -# next_state - Name of the next state the helper should transition -# to -# top_url - Top level URL within which to make the selector. -# If empty the top level sequence is shown. -# filter - How to filter the resources. -# value_func - function. -# choice_func - If not empty generates a with this function. -# start_new_option -# - Fragment appended after valuefunc. -# -# -sub generate_resource_chooser { - my ($this_state, - $prompt_text, - $resource_options, - $variable, - $next_state, - $top_url, - $filter, - $choice_func, - $value_func, - $start_new_option) = @_; - - my $result = < - - $next_state - return $filter; -CHOOSE_RESOURCES - if ($choice_func ne '') { - $result .= "return $choice_func;"; - } - if ($top_url ne '') { - $result .= "$top_url"; - } - $result .= <return $value_func; - $start_new_option - - -CHOOSE_RESOURCES - - return $result; -} -# -# Generate the helper XML for a code choice helper dialog: -# -# Paramters: -# $helper - Reference to the helper. -# $state - Name of the state for the chooser. -# $next_state - Name fo the state to follow the chooser. -# $bubble_types - Populates the bubble sheet type dropt down. -# $code_selections - Provides set of code choices that have been used -# $saved_codes - Provides the list of saved codes. -# -# Returns; -# The Xml of the code chooser. -# -sub generate_code_selector { - my ($helper, - $state, - $next_state, - $bubble_types, - $code_selections, - $saved_codes) = @_; # Unpack the parameters. - - my $result = < - $next_state -

Fill out one of the forms below

-


-

Generate new CODEd Assignments

-
Number of CODEd assignments to print: - - - if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && - !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && - !\$helper->{'VARS'}{'SINGLE_CODE'} && - !\$helper->{'VARS'}{'CODE_SELECTED_FROM_LIST'}) { - return "You need to specify the number of assignments to print"; - } - return undef; - - -
- Names to save the CODEs under for later: - - -
- Bubble sheet type: - - - $bubble_types - -
-
-

Print a Specific CODE


-
Enter a CODE to print: - - - if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && - !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && - !\$helper->{'VARS'}{'CODE_SELECTED_FROM_LIST'}) { - return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'}, - \$helper->{'VARS'}{'CODE_OPTION'}); - } else { - return undef; # Other forces control us. - } - - -
- $code_selections -
-

Reprint a Set of Saved CODEs

- Select saved CODEs: - - - $saved_codes - -
- -CHOOSE_ANON1 - - return $result; -} - -#----------------------------------------------------------------------- - # Fetch the contents of a resource, uninterpreted. # This is used here to fetch a latex file to be included @@ -1263,9 +1086,9 @@ sub page_format_transformation { if ($selectionmade eq '4') { if ($choice eq 'all_problems') { - $assignment='Problems from the Whole Course'; + $assignment=&mt('Problems from the Whole Course'); } else { - $assignment='Resources from the Whole Course'; + $assignment=&mt('Resources from the Whole Course'); } } else { $assignment=&Apache::lonxml::latex_special_symbols($assignment,'header'); @@ -1520,7 +1343,7 @@ sub print_page_in_course { if ($mode ne '') {$mode='\\'.$mode} - my $result = &print_latex_header($mode); + my $result.= &print_latex_header($mode); if ($currentURL=~m|^(/adm/wrapper/)?ext/|) { $currentURL=~s|^(/adm/wrapper/)?ext/|http://|; my $title=&Apache::lonnet::gettitle($symb); @@ -1590,6 +1413,9 @@ sub print_page_in_course { my $texversion = &ssi_with_retries($urlp, $ssi_retry_count, %form); + # There seems to be an extraneous \vskip 1mm \\\\ : + + $texversion =~ s/^\\vskip 1mm \\\\\\\\//; # current document with answers.. no need to encap in minipage # since there's only one answer. @@ -1612,7 +1438,7 @@ sub print_page_in_course { if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') { $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/; } else { - $texversion= &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); + $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'}); if ($helper->{'VARS'}->{'construction'} ne '1') { my $title = &Apache::lonnet::gettitle($helper->{'VARS'}->{'symb'}); $title = &Apache::lonxml::latex_special_symbols($title); @@ -1647,14 +1473,6 @@ sub print_page_in_course { $texversion=~s/(\\addcontentsline\{toc\}\{subsection\}\{[^\}]*\})/$1 URL: \\verb|$currentURL| \\strut\\\\\\strut /; } - $texversion = &latex_header_footer_remove($texversion); - - # the first remaining line is a comment from londefdef the second - # line seems to be an extraneous \vskip 1mm \\\\ : - # (imperfect removal from header_footer_remove? - - $texversion =~ s/\\vskip 1mm \\\\\\\\//; - $result .= $texversion; if ($currentURL=~m/\.page\s*$/) { ($result,$numberofcolumns) = &page_cleanup($result); @@ -1742,7 +1560,7 @@ sub recently_generated { # A reference to a page break hash. # # -# use Data::Dumper; +#use Data::Dumper; #sub dump_helper_vars { # my ($helper) = @_; # my $helpervars = Dumper($helper->{'VARS'}); @@ -2144,8 +1962,6 @@ ENDPART $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 @@ -2154,12 +1970,9 @@ ENDPART #-- produce an output string - if (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') or - ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ) { + if ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems') { $selectionmade = 2; - } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') or - ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page')) - { + } elsif ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_pages') { $selectionmade = 3; } elsif (($helper->{'VARS'}->{'PRINT_TYPE'} eq 'all_problems') ) { @@ -2199,10 +2012,11 @@ ENDPART $result.="\\newpage\n"; } } - my ($sequence,$middle_thingy,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); + my ($sequence,$middle_thingy,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]); $urlp=&Apache::lonnet::clutter($urlp); $form{'symb'}=$master_seq[$i]; + my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #title of the assignment which contains this problem if ($selectionmade==7) {$helper->{VARS}->{'assignment'}=$assignment;} @@ -2212,9 +2026,9 @@ ENDPART && $urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)$/) { $resources_printed .= $urlp.':'; &Apache::lonxml::remember_problem_counter(); - $texversion.=&ssi_with_retries($urlp, $ssi_retry_count, %form); if ($urlp=~/\.page$/) { + ($texversion,my $number_of_columns_page) = &page_cleanup($texversion); if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} $texversion =~ s/\\end{document}\d*/\\end{document}/; @@ -2337,7 +2151,6 @@ ENDPART } $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')){ @@ -2345,7 +2158,6 @@ ENDPART #-- 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') ) { $selectionmade=5; $type='problems'; @@ -2385,8 +2197,7 @@ ENDPART my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'}; #loop over students - - my $flag_latex_header_remove = 'NO'; + my $flag_latex_header_remove = 'NO'; my %moreenv; $moreenv{'instructor_comments'}='hide'; $moreenv{'textwidth'}=&get_textwidth($helper,$LaTeXwidth); @@ -2434,7 +2245,6 @@ ENDPART &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') ) { my $cdom =$env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum =$env{'course.'.$env{'request.course.id'}.'.num'}; @@ -2791,6 +2601,7 @@ sub print_resources { # postscript. Each ENDOFSTUDENTSTAMP will go on a line by itself. # + foreach my $curresline (@{$master_seq}) { if (defined $page_breaks{$curresline}) { if($i != 0) { @@ -2809,6 +2620,7 @@ 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(($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. @@ -2836,12 +2648,12 @@ sub print_resources { $rendered = $header.$body; } } + if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') { my $url = &Apache::lonnet::clutter($res_url); my $annotation = &annotate($url); $rendered =~ s/(\\keephidden{ENDOFPROBLEM})/$annotation$1/; } - my $junk; if ($remove_latex_header eq 'YES') { $rendered = &latex_header_footer_remove($rendered); } else { @@ -3115,8 +2927,6 @@ sub printHelper { $subdir = substr($helper->{VARS}->{'filename'}, 0, rindex($helper->{VARS}->{'filename'}, '/') + 1); } else { - # From course space: - if ($symb ne '') { ($map, $id, $url) = &Apache::lonnet::decode_symb($symb); $helper->{VARS}->{'postdata'} = @@ -3126,6 +2936,7 @@ sub printHelper { $is_published=1; # From resource space. } $url = &Apache::lonnet::clutter($url); + if (!$resourceTitle) { # if the resource doesn't have a title, use the filename my $postdata = $helper->{VARS}->{'postdata'}; $resourceTitle = substr($postdata, rindex($postdata, '/') + 1); @@ -3185,102 +2996,79 @@ sub printHelper { "' variable='FINISHPAGE' />"; } - # If not construction space user can print the components of a page: - - my $page_ispage; - my $page_title; - if (!$helper->{VARS}->{'construction'}) { - my $varspostdata = $helper->{VARS}->{'postdata'}; - my $varsassignment = $helper->{VARS}->{'assignment'}; - my $page_navmap = Apache::lonnavmaps::navmap->new(); - my @page_resources = $page_navmap->retrieveResources($url); - if(defined($page_resources[0])) { - $page_ispage = $page_resources[0]->is_page(); - $page_title = $page_resources[0]->title(); - my $resourcesymb = $page_resources[0]->symb(); - my ($pagemap, $pageid, $pageurl) = &Apache::lonnet::decode_symb($symb); - if ($page_ispage) { - push @{$printChoices}, - [&mt('Selected [_1]Problems[_2] from page [_3]', '', '', ''.$page_title.''), - 'map_problems_in_page', - 'CHOOSE_PROBLEMS_PAGE']; - push @{$printChoices}, - [&mt('Selected [_1]Resources[_2] from page [_3]', '', '', ''.$page_title.''), - 'map_resources_in_page', - 'CHOOSE_RESOURCES_PAGE']; - } - my $helperFragment = &generate_resource_chooser('CHOOSE_PROBLEMS_PAGE', - 'Select Problem(s) to print', - "multichoice='1' toponly='1' addstatus='1' closeallpages='1'", - 'RESOURCES', - 'PAGESIZE', - $url, - $isProblem, '', $symbFilter, - $start_new_option); - - - $helperFragment .= &generate_resource_chooser('CHOOSE_RESOURCES_PAGE', - 'Select Resource(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'PAGESIZE', - $url, - $isNotMap, '', $symbFilter, - $start_new_option); - - - - - - &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); - - } - } - - if (($helper->{'VAR'}->{'construction'} ne '1' ) && + if (($helper->{'VARS'}->{'construction'} ne '1' ) && $helper->{VARS}->{'postdata'} && $helper->{VARS}->{'assignment'}) { # Allow problems from sequence - push @{$printChoices}, - [&mt('Selected [_1]Problems[_2] from folder [_3]','','',''.$sequenceTitle.''), - 'map_problems', - 'CHOOSE_PROBLEMS']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3]','','',''.$sequenceTitle.''), 'map_problems', 'CHOOSE_PROBLEMS']; # Allow all resources from sequence - push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3]','','',''.$sequenceTitle.''), - 'map_problems_pages', - 'CHOOSE_PROBLEMS_HTML']; - my $helperFragment = &generate_resource_chooser('CHOOSE_PROBLEMS', - 'Select Problem(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'PAGESIZE', - $map, - $isProblem, '', - $symbFilter, - $start_new_option); - $helperFragment .= &generate_resource_chooser('CHOOSE_PROBLEMS_HTML', - 'Select Resource(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'PAGESIZE', - $map, - $isNotMap, '', - $symbFilter, - $start_new_option); + push @{$printChoices}, [&mt('Selected [_1]Resources[_2] from folder [_3]','','',''.$sequenceTitle.''), 'map_problems_pages', 'CHOOSE_PROBLEMS_HTML']; + + my $helperFragment = < + + PAGESIZE + return $isProblem; + $map + return $symbFilter; + $start_new_option + + + + + + PAGESIZE + return $isNotMap; + $map + return $symbFilter; + $start_new_option + + +HELPERFRAGMENT &Apache::lonxml::xmlparse($r, 'helper', $helperFragment); } # 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)$/)) { + ($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) { push @{$printChoices}, [&mtn('Selected Problems from entire course'), 'all_problems', 'ALL_PROBLEMS']; push @{$printChoices}, [&mtn('Selected Resources from entire course'), 'all_resources', 'ALL_RESOURCES']; push @{$printChoices}, [&mtn('Selected Problems from entire course for selected people'), 'all_problems_students', 'ALL_PROBLEMS_STUDENTS']; -my $suffixXml = < + + PAGESIZE + return $isProblemOrMap; + return $isNotMap; + return $symbFilter; + $start_new_option + + + + + PAGESIZE + return $isNotMap; + return $symbFilter; + $start_new_option + + + + + STUDENTS1 + return $isProblemOrMap; + return $isNotMap; + return $symbFilter; + $start_new_option + + Select sorting order of printout @@ -3290,55 +3078,12 @@ my $suffixXml = <


+ ALL_PROBLEMS - &Apache::lonxml::xmlparse($r, 'helper', - &generate_resource_chooser('ALL_PROBLEMS', - 'SelectProblem(s) to print', - 'multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'PAGESIZE', - '', - $isProblemOrMap, $isNotMap, - $symbFilter, - $start_new_option) . - &generate_resource_chooser('ALL_RESOURCES', - 'Select Resource(s) to print', - " toponly='0' multichoice='1' suppressEmptySequences='0' addstatus='1' closeallpages='1'", - 'RESOURCES', - 'PAGESIZE', - '', - $isNotMap,'',$symbFilter, - $start_new_option) . - &generate_resource_chooser('ALL_PROBLEMS_STUDENTS', - 'Select Problem(s) to print', - 'toponly="0" multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'STUDENTS1', - '', - $isProblemOrMap,'' , $symbFilter, - $start_new_option) . - $suffixXml - ); if ($helper->{VARS}->{'assignment'}) { - - # If we were looking at a page, allow a selection of problems from the page - # either for selected students or for coded assignments. - - if ($page_ispage) { - push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from page [_3] for [_4]selected people[_5]', - '', '', ''.$page_title.'', '', ''), - 'problems_for_students_from_page', 'CHOOSE_TGT_STUDENTS_PAGE']; - push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from page [_3] for [_4]CODEd assignments[_5]', - '', '', ''.$page_title.'', '', ''), - 'problems_for_anon_page', 'CHOOSE_ANON1_PAGE']; - } - push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]selected people[_5]', - '','',''.$sequenceTitle.'','',''), - 'problems_for_students', 'CHOOSE_STUDENTS']; - push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]CODEd assignments[_5]', - '','',''.$sequenceTitle.'','',''), - 'problems_for_anon', 'CHOOSE_ANON1']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]selected people[_5]','','',''.$sequenceTitle.'','',''), 'problems_for_students', 'CHOOSE_STUDENTS']; + push @{$printChoices}, [&mt('Selected [_1]Problems[_2] from folder [_3] for [_4]CODEd assignments[_5]','','',''.$sequenceTitle.'','',''), 'problems_for_anon', 'CHOOSE_ANON1']; } my $randomly_ordered_warning = @@ -3353,15 +3098,20 @@ ALL_PROBLEMS # with one state, and use REGEXPs at inclusion time to set state names # and next states for better mix and match capability # - my $resource_selector= &generate_resource_chooser('SELECT_PROBLEMS', - 'Select resources to print', - 'multichoice="1" addstatus="1" closeallpages="1"', - 'RESOURCES', - 'PRINT_FORMATTING', - '', - $isProblem, '', $symbFilter, - $start_new_option); - $resource_selector .= < + $randomly_ordered_warning + + PRINT_FORMATTING +
Select resources for the assignment
+ + return $isProblem; + $map + return $symbFilter; + $start_new_option + +
How should the results be printed?
@@ -3381,31 +3131,19 @@ ALL_PROBLEMS
RESOURCE_SELECTOR - $resource_selector .= &generate_resource_chooser('CHOOSE_STUDENTS_PAGE', - 'Select Problem(s) to print', - "multichoice='1' addstatus='1' closeallpages ='1'", - 'RESOURCES', - 'PRINT_FORMATTING', - $url, - $isProblem, '', $symbFilter, - $start_new_option); - - -# Generate student choosers. - - - &Apache::lonxml::xmlparse($r, 'helper', - &generate_student_chooser('CHOOSE_TGT_STUDENTS_PAGE', - 'student_sort', - 'STUDENTS', - 'CHOOSE_STUDENTS_PAGE')); - &Apache::lonxml::xmlparse($r, 'helper', - &generate_student_chooser('CHOOSE_STUDENTS', - 'student_sort', - 'STUDENTS', - 'SELECT_PROBLEMS')); - &Apache::lonxml::xmlparse($r, 'helper', $resource_selector); + &Apache::lonxml::xmlparse($r, 'helper', < + Select sorting order of printout + + Sort by section then student + Sort by students across sections. + +


+ + + $resource_selector +CHOOSE_STUDENTS my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -3463,31 +3201,63 @@ RESOURCE_SELECTOR if ($codechoice eq '') { $codechoice='Default'; } - my $anon1 = &generate_code_selector($helper, - 'CHOOSE_ANON1', - 'SELECT_PROBLEMS', - $codechoice, - $code_selection, - $namechoice) . $resource_selector; - - - &Apache::lonxml::xmlparse($r, 'helper',$anon1); - - my $anon_page = &generate_code_selector($helper, - 'CHOOSE_ANON1_PAGE', - 'SELECT_PROBLEMS_PAGE', - $codechoice, - $code_selection, - $namechoice) . - &generate_resource_chooser('SELECT_PROBLEMS_PAGE', - 'Select Problem(s) to print', - "multichoice='1' addstatus='1' closeallpages ='1'", - 'RESOURCES', - 'PRINT_FORMATTING', - $url, - $isProblem, '', $symbFilter, - $start_new_option); - &Apache::lonxml::xmlparse($r, 'helper', $anon_page); + &Apache::lonxml::xmlparse($r, 'helper', < + SELECT_PROBLEMS +

Fill out one of the forms below

+


+

Generate new CODEd Assignments

+
Number of CODEd assignments to print: + + + if (((\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'}+0) < 1) && + !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && + !\$helper->{'VARS'}{'SINGLE_CODE'} && + !\$helper->{'VARS'}{'CODE_SELECTED_FROM_LIST'}) { + return "You need to specify the number of assignments to print"; + } + return undef; + + +
+ Names to save the CODEs under for later: + + +
+ Bubble sheet type: + + + $codechoice + +
+
+

Print a Specific CODE


+
Enter a CODE to print: + + + if(!\$helper->{'VARS'}{'NUMBER_TO_PRINT_TOTAL'} && + !\$helper->{'VARS'}{'REUSE_OLD_CODES'} && + !\$helper->{'VARS'}{'CODE_SELECTED_FROM_LIST'}) { + return &Apache::lonprintout::is_code_valid(\$helper->{'VARS'}{'SINGLE_CODE'}, + \$helper->{'VARS'}{'CODE_OPTION'}); + } else { + return undef; # Other forces control us. + } + + +
+ $code_selection +
+

Reprint a Set of Saved CODEs

+ Select saved CODEs: + + + $namechoice + +
+ + $resource_selector +CHOOSE_ANON1 if ($helper->{VARS}->{'assignment'}) { @@ -3499,6 +3269,7 @@ RESOURCE_SELECTOR $resource_selector=< $randomly_ordered_warning + PRINT_FORMATTING
Select resources for the assignment
- NUMBER_PER_PDF
How should the results be printed?