--- loncom/interface/lonprintout.pm 2019/02/05 19:03:38 1.627.2.23.2.1 +++ loncom/interface/lonprintout.pm 2018/09/04 14:35:21 1.627.2.24 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.627.2.23.2.1 2019/02/05 19:03:38 raeburn Exp $ +# $Id: lonprintout.pm,v 1.627.2.24 2018/09/04 14:35:21 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -157,7 +157,7 @@ sub create_incomplete_folder_selstud_hel my $resource_chooser = &generate_resource_chooser('CHOOSE_INCOMPLETE_PEOPLE_SEQ', 'Select problem(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', + 'multichoice="1" toponly="1" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'CHOOSE_STUDENTS_INCOMPLETE', $map, @@ -206,7 +206,7 @@ sub create_incomplete_course_helper { my $resource_chooser = &generate_resource_chooser('INCOMPLETE_PROBLEMS_COURSE_RESOURCES', 'Select problem(s) to print', - 'multichoice = "1" suppressEmptySequences="0" addstatus="1" closeallpagtes="1"', + 'multichoice = "1" suppressEmptySequences="0" addstatus="1" closeallpagtes="1" modallink="1"', 'RESOURCES', 'INCOMPLETE_PROBLEMS_COURSE_STUDENTS', '', @@ -252,7 +252,7 @@ sub create_incomplete_folder_helper { my $resource_chooser = &generate_resource_chooser('CHOOSE_INCOMPLETE_SEQ', 'Select problem(s) to print', - 'multichoice="1", toponly ="1", addstatus="1", closeallpages="1"', + 'multichoice="1", toponly ="1", addstatus="1", closeallpages="1" modallink="1"', 'RESOURCES', 'PAGESIZE', $map, @@ -306,7 +306,8 @@ CHOOSE_STUDENTS # 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'" +# "multichoice='1', toponly='1', addstatus='1', +# modallink='1'" # that control the selection and appearance of the # resource selector. # variable - Name of the variable to hold the choice @@ -1237,7 +1238,7 @@ sub is_valid_alpha_code { sub is_code_valid { my ($code_value, $code_option) = @_; my ($code_type, $code_length) = ('letter', 6); # defaults. - my @lines = &Apache::lonnet::get_scantronformat_file(); + my @lines = &Apache::grades::get_scantronformat_file(); foreach my $line (@lines) { next if (($line =~ /^\#/) || ($line eq '')); my ($name, $type, $length) = (split(/:/, $line))[0,2,4]; @@ -3227,7 +3228,7 @@ ENDPART $result .= $print_array[0].' \end{document}'; } elsif (($print_type eq 'problems_for_anon') || ($print_type eq 'problems_for_anon_page') || - ($print_type eq 'resources_for_anon') ) { + ($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'}; @@ -3236,7 +3237,7 @@ ENDPART my $single_code = $helper->{'VARS'}->{'SINGLE_CODE'}; my $selected_code = $helper->{'VARS'}->{'CODE_SELECTED_FROM_LIST'}; my $code_option=$helper->{'VARS'}->{'CODE_OPTION'}; - my @lines = &Apache::lonnet::get_scantronformat_file(); + my @lines = &Apache::grades::get_scantronformat_file(); my ($code_type,$code_length,$bubbles_per_row)=('letter',6,10); foreach my $line (@lines) { chomp($line); @@ -3353,7 +3354,7 @@ ENDPART } &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); $result .= $print_array[0].' \end{document}'; - } elsif ($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'}; @@ -4062,11 +4063,10 @@ sub printHelper { } if ($env{'form.url'}) { $helper->{VARS}->{'symb'} = &Apache::lonnet::symbread($helper->{VARS}->{'postdata'}); + } - if ($helper->{VARS}->{'symb'} ne '') { - $helper->{VARS}->{'symb'}= - &Apache::lonenc::check_encrypt($helper->{VARS}->{'symb'}); - } + $helper->{VARS}->{'symb'}= + &Apache::lonenc::check_encrypt($helper->{VARS}->{'symb'}); my ($resourceTitle,$sequenceTitle,$mapTitle) = &details_for_menu($helper); if ($sequenceTitle ne '') {$helper->{VARS}->{'assignment'}=$sequenceTitle;} @@ -4077,7 +4077,6 @@ sub printHelper { my $subdir; my $is_published=0; # True when printing from resource space. my $res_printable = 1; # By default the current resource is printable. - my $res_error; my $userCanPrint = ($perm{'pav'} || $perm{'pfo'}); my $res_printstartdate; my $res_printenddate; @@ -4099,22 +4098,13 @@ sub printHelper { ($map, $id, $url) = &Apache::lonnet::decode_symb($symb); $helper->{VARS}->{'postdata'} = &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url)); - if (!$userCanPrint) { - my $navmap = Apache::lonnavmaps::navmap->new(); - if (ref($navmap)) { - my $res = $navmap->getBySymb($symb); - if (ref($res)) { - $res_printable = $res->resprintable(); #printability in course context - ($res_printstartdate, $res_printenddate) = &get_print_dates($res); - ($course_open, $course_close) = &course_print_dates($res); - ($map_open, $map_close) = &map_print_dates($res); - } else { - $res_error = 1; - } - } else { - $res_error = 1; - } - } + my $navmap = Apache::lonnavmaps::navmap->new(); + my $res = $navmap->getBySymb($symb); + $res_printable = $res->resprintable() || $userCanPrint; #printability in course context + ($res_printstartdate, $res_printenddate) = &get_print_dates($res); + ($course_open, $course_close) = &course_print_dates($res); + ($map_open, $map_close) = &map_print_dates($res); + } else { # Resource space. @@ -4230,7 +4220,7 @@ sub printHelper { } my $helperFragment = &generate_resource_chooser('CHOOSE_PROBLEMS_PAGE', 'Select Problem(s) to print', - "multichoice='1' toponly='1' addstatus='1' closeallpages='1'", + "multichoice='1' toponly='1' addstatus='1' closeallpages='1' modallink='1'", 'RESOURCES', 'PAGESIZE', $url, @@ -4240,7 +4230,7 @@ sub printHelper { $helperFragment .= &generate_resource_chooser('CHOOSE_RESOURCES_PAGE', 'Select Resource(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', + 'multichoice="1" toponly="1" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'PAGESIZE', $url, @@ -4305,7 +4295,7 @@ sub printHelper { 'CHOOSE_PROBLEMS_HTML']; my $helperFragment = &generate_resource_chooser('CHOOSE_PROBLEMS', 'Select Problem(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', + 'multichoice="1" toponly="1" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'PAGESIZE', $map, @@ -4314,7 +4304,7 @@ sub printHelper { $start_new_option); $helperFragment .= &generate_resource_chooser('CHOOSE_PROBLEMS_HTML', 'Select Resource(s) to print', - 'multichoice="1" toponly="1" addstatus="1" closeallpages="1"', + 'multichoice="1" toponly="1" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'PAGESIZE', $map, @@ -4362,7 +4352,7 @@ ALL_PROBLEMS &Apache::lonxml::xmlparse($r, 'helper', &generate_resource_chooser('ALL_PROBLEMS', 'Select Problem(s) to print', - 'multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1"', + 'multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'PAGESIZE', '', @@ -4371,7 +4361,7 @@ ALL_PROBLEMS $start_new_option) . &generate_resource_chooser('ALL_RESOURCES', 'Select Resource(s) to print', - " toponly='0' multichoice='1' suppressEmptySequences='0' addstatus='1' closeallpages='1'", + " toponly='0' multichoice='1' suppressEmptySequences='0' addstatus='1' closeallpages='1' modallink='1'", 'RESOURCES', 'PAGESIZE', '', @@ -4379,7 +4369,7 @@ ALL_PROBLEMS $start_new_option) . &generate_resource_chooser('ALL_PROBLEMS_STUDENTS', 'Select Problem(s) to print', - 'toponly="0" multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1"', + 'toponly="0" multichoice="1" suppressEmptySequences="0" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'STUDENTS1', '', @@ -4423,7 +4413,7 @@ ALL_PROBLEMS # my $resource_selector= &generate_resource_chooser('SELECT_PROBLEMS', 'Select resources to print', - 'multichoice="1" addstatus="1" closeallpages="1"', + 'multichoice="1" addstatus="1" closeallpages="1" modallink="1"', 'RESOURCES', 'PRINT_FORMATTING', $map, @@ -4434,7 +4424,7 @@ ALL_PROBLEMS 'PRINT_FORMATTING'). &generate_resource_chooser('CHOOSE_STUDENTS_PAGE', 'Select Problem(s) to print', - "multichoice='1' addstatus='1' closeallpages ='1'", + "multichoice='1' addstatus='1' closeallpages ='1' modallink='1'", 'RESOURCES', 'PRINT_FORMATTING', $url, @@ -4501,7 +4491,7 @@ ALL_PROBLEMS } - my @lines = &Apache::lonnet::get_scantronformat_file(); + my @lines = &Apache::grades::get_scantronformat_file(); my $codechoice=''; foreach my $line (@lines) { my ($name,$description,$code_type,$code_length)= @@ -4532,7 +4522,7 @@ ALL_PROBLEMS $namechoice) . &generate_resource_chooser('SELECT_PROBLEMS_PAGE', 'Select Problem(s) to print', - "multichoice='1' addstatus='1' closeallpages ='1'", + "multichoice='1' addstatus='1' closeallpages ='1' modallink='1'", 'RESOURCES', 'PRINT_FORMATTING', $url, @@ -4556,7 +4546,7 @@ ALL_PROBLEMS PRINT_FORMATTING
Select resources for the assignment
+ closeallpages="1" modallink="1"> return $isNotMap; $map return $symbFilter; @@ -4701,7 +4691,7 @@ CHOOSE_FROM_SUBDIR (mark desired resources then click "next" button)
+ closeallpages="1" modallink="1"> PAGESIZE return $isNotMap return '$escapedSequenceName'; @@ -4712,45 +4702,26 @@ CHOOSE_FROM_SUBDIR CHOOSE_FROM_ANY_SEQUENCE } - my $numchoices = 0; - if (ref($printChoices) eq 'ARRAY') { - $numchoices = @{$printChoices}; - } - # Early out if nothing to print - if (!$numchoices) { - $r->print(&Apache::loncommon::start_page('Printing Helper'). - '

'.&mt('Unable to determine print context').'

'. - '

'.&mt('Please display a resource, and then click the "Print" button/icon').'

'); - my $prtspool=$r->dir_config('lonPrtDir'); - my $footer = &recently_generated($prtspool); - $r->print($footer.&Apache::loncommon::end_page()); - return OK; - } - # Generate the first state, to select which resources get printed. Apache::lonhelper::state->new("START", "Select Printing Options:"); if (!$res_printable) { + my $now = time; + my $shownprintstart = &Apache::lonlocal::locallocaltime($res_printstartdate); + my $shownprintend = &Apache::lonlocal::locallocaltime($res_printenddate); my $noprintmsg; - if ($res_error) { - $noprintmsg = &mt('Print availability for current resource could not be determined'); - } else { - my $now = time; - my $shownprintstart = &Apache::lonlocal::locallocaltime($res_printstartdate); - my $shownprintend = &Apache::lonlocal::locallocaltime($res_printenddate); - if (($res_printenddate) && ($res_printenddate < $now)) { + if (($res_printenddate) && ($res_printenddate < $now)) { $noprintmsg = &mt('Printing for current resource no longer available (ended: [_1])', $shownprintend); - } else { - if (($res_printstartdate) && ($res_printstartdate > $now)) { - if (($res_printenddate) && ($res_printenddate > $now) && ($res_printenddate > $res_printstartdate)) { - $noprintmsg = &mt('Printing for current resource is only possible between [_1] and [_2]', - $shownprintstart,$shownprintend); - } elsif (!$res_printenddate) { - $noprintmsg = &mt('Printing for current resource will only be possible starting [_1]', - $shownprintstart); - } else { - $noprintmsg = &mt('Printing for current resource is unavailable'); - } + } else { + if (($res_printstartdate) && ($res_printstartdate > $now)) { + if (($res_printenddate) && ($res_printenddate > $now) && ($res_printenddate > $res_printstartdate)) { + $noprintmsg = &mt('Printing for current resource is only possible between [_1] and [_2]', + $shownprintstart,$shownprintend); + } elsif (!$res_printenddate) { + $noprintmsg = &mt('Printing for current resource will only be possible starting [_1]', + $shownprintstart); + } else { + $noprintmsg = &mt('Printing for current resource is unavailable'); } } }